找回密码
 注册
关于网站域名变更的通知
查看: 330|回复: 1
打印 上一主题 下一主题

stc51单片机做的六位密码锁控制54步进电机自动开门 源程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-30 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
stc51单片机做的六位密码锁控制54步进电机自动开门 源程序/ `9 M9 q% I; a7 y) k

; e: j$ K- |( S

: X. E- y9 Z+ L5 l单片机源程序:# I( q$ f. a* s& L# ]" Q& W) S2 n
#include"reg52.h"
- B& }  ~% p5 T% @7 I! q#include"1602.h"3 _0 V( ?* ?5 b* Y
#include"key.h"
( _* t+ b) e  J* ~# D% ]#include"54power.h"
# B2 X) s, R5 `( @& s3 f4 m- g' I5 [4 [$ }9 m8 v8 m4 G
#define uint unsigned int
* k! p1 `6 i3 r% n' ]' m5 Q#define uchar unsigned char, W5 o" I4 u' b( s- @) F% ^: c
, N! V8 }6 u, [7 f8 K
void UsartInit()                                    //串口初始化函数
! _1 R5 p" y1 O& z( O  B{
$ ~  {6 G9 c" |1 q        SCON=0X50;                                                           //设置为工作方式1
' U! x$ h7 P7 t: k; T& ^2 P. O        TMOD=0X20;                                                          //设置计数器工作方式2
$ I' [& a9 J8 ]        PCON=0X80;                                                                //波特率加倍
+ ^+ G1 p! e& B) S        TH1=0XF3;                                                                        //计数器初始值设置,波特虑4800
& `1 B( J0 g3 B8 l        TL1=0XF3;
# Z( s% b8 `. _  n3 r; _        ES=1;                                                                                        //打开接收中断
+ U2 k/ h$ a2 g- ^) l        EA=1;                                                                                        //打开总中断( q9 E: @8 n5 c, k; s2 N2 ?
        TR1=1;        
2 {9 h1 z' f8 n; ^! p}9 ^* O3 `! `9 {, G

+ R8 y/ d) c, |( Zvoid main()
# h8 D3 q2 U+ k# f) ^# f2 F{: D! h! @5 M+ Z9 p4 i+ p, U0 K. J  a5 C
        int i = 0;        
; q+ O. x- g" n/ W  e, y& e        UsartInit();                                  //中断初始化
. I6 g* o- [0 A1 H1 F7 R* v        init();                                 //1602初始化
: r  u/ j9 S8 u$ S& r        while(n)( V% j: `' C$ |- b
        {" A$ L$ {# C% w) d9 q% N6 j) J
                t = 0;
3 G6 G, H( m2 O0 j/ g5 Q: D                printfstart();                        //1602第一行输出“Welcome back ! "* ]; z- ^  I3 W1 C8 P) j$ [- k# p
                printf();                             //通过串口1602显示屏显示输入的六位密码( n) E& L( O) u$ V' y
                write_com(0x0C);                      //开显示屏,光标不显示7 c  ^( ?' W2 S/ k0 a+ [
                check();                                    //检测输入的六位密码,正确灯亮
- _2 h" l! r) `                write_com(0x0F);                      //开显示屏,光标显示4 \5 ~7 }8 u, j# e5 P, X0 S
                write_com(0x01);
5 L4 O; U+ W, e0 f        }
& W. w% L: Z' v        while(1);' w; k; n' g: N1 A9 p6 |
}
3 p. @9 P% t: N+ I" J8 Y! m) E0 v. U5 V
void timeint(void) interrupt 1
+ e8 k5 [: C$ t. D# {{
  b7 p: m; z& }2 `3 O  U) y        TH0=0xFE;8 g( O/ ]4 |2 ?1 X, Y
        TL0=0x0C;                     //设定时每隔0.5ms中断一次
+ K" N' N" J" \- P% {        count++;
7 h" a1 P4 o& Y$ K        spcount--;
# H) F1 B* q+ |        if(spcount<=0)
" y8 u6 l, i- S2 \        {2 g' L/ W/ Y' N$ p5 g
                spcount = speedlevel;) ^8 j" [8 k0 a: A
                gorun();
! A7 ?$ V5 S0 g! G; j7 r        }" D2 }: g. p" m- G2 l# G/ |- B
//        turn = 1;
! ]: `5 L: ^) R# b4 q5 C5 r0 ^0 m) p//        step_index = 7;* x  F6 o" f! x; l% S) M) ?- a6 i/ c
//        gorun();% D* K# l4 _( {0 ~
//                        step_index = 7;4 G9 k* g* e7 y- O+ ?5 E- Y% }
//                gorun();$ M$ Z8 G& I: B; r3 _0 V5 N* L0 Z
}
! C8 r- \) {# ?% j! o- S6 k/ h0 n( i) [0 e! E1 k6 }# O# |8 t
void Usart() interrupt 4/ D4 \' q. M+ g  g5 F
{+ f- H6 `* z" |9 l7 t6 |' t
        receiveData[t++] = SBUF;
' v% o$ p5 k6 a6 p        RI = 0;
" Q! Q* f) [+ P9 C. ]* A  R& P        SBUF = receiveData[t-1];                      //将接收到的数据放入发送寄存器5 o* M/ D) f: j8 A
        while(!TI);                                   //等待数据发送完成# A6 P* M$ u4 H; S& p, Q

! ~5 P( @$ j) l9 h: ^% V6 y
! T2 {6 B  O! s9 d2 s3 Y…………限于本文篇幅 余下代码请从论坛下载附件…………2 }6 L3 f4 n) y; Z/ T
游客,如果您要查看本帖隐藏内容请回复

+ W' ?, p& ~9 k( G

9 c0 w$ |, b1 S$ \# J& P* K% r# i, Q

该用户从未签到

2#
发表于 2018-11-30 09:49 | 只看该作者
路过 学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 19:40 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表