c语言编程 设计密码锁,单片机控制安全密码锁的设计(附程序,pcb,原理图)

单片机控制安全密码锁的设计(附程序,pcb,原理图)(含开题报告,中期检查表,毕业论文13900字)

摘 要:普通机械密码锁的密码容易被破译,因此其安全性已受到严重的威胁。而电子密码锁因为较安全可靠而具有广泛的应用前景。本文介绍的电子密码锁由矩阵键盘、AT89C2051单片机、发光二极管显示和报警系统组成。系统能完成密码开锁、错误警示、超次锁定、密码修改等密码锁的基本功能。除上述密码锁的基本功能外,还具有掉电保护、远程报警等功能,该密码锁具有安全、实用、成本低等特点,符合住宅用锁的要求,具有一定的实用价值。

关键词: 密码锁 ; 2051单片机 ; 远程报警;

Abstract: General machinery combination lock password is easy to crack, therefore its security has been a serious threat. While the electronic combination lock because more safe and reliable and has wide application prospects. This paper introduces the electronic keyboard, AT89C2051 by matrix combination lock MCU, leds display and alarm systems. System can accomplish password lock, error warning, super times lock, such as password changing the basic function of combination lock. In addition to the combination lock the basic function of the outside, still have off electrical protection, remote alarm functions, this combination lock is safe, practical and low costs, accord with the request, with lock residence is of certain practical value.

Key words: electronic coded lock ; AT89C2051 ; remote warning

研究目的:实现家庭防盗

研究内容:(1)完成与本课题有关的近期报道的论文及相关技术资料的查询与整理;

(2)完成密码锁电路设计及单片机控制的电子线路原理图设计;并利用Protel完成硬件电路板的PCB图设计;

(3)完成相应的控制软件设计;

(4)完成该系统的硬、软件调试;

(5)完成毕业设计论文的撰写工作(包括论文与中英文摘要)。

密码锁设计所具有的功能

(1) 可设置5位密码,密码两次输入相同方可确认开门;

(2) 修改密码必须在门内按修改键(用开关代替)且输入正确原密码后方可执行;

(3) 密码三次输入错误,会报警(预设远程报警);

(4) 附加正确钥匙时,可使用救急密码,以防密码忘记时急用;

(5) 掉电密码不丢失;

5730602c26053d6b1b3100b5651d4a48.png

c0f194b676d708be9a9de5bf1aeb005b.png

4be2fbe65196912931f61e3d56b8103f.png

afe3217e3733167972b3d55089eed917.png

目  录

摘  要…………………………………………………………………………………1

关键词…………………………………………………………………………………1

1引 言…………………………………………………………………………………2

2 密码锁总体设计方案………………………………………………………………3

2.1 密码锁设计所具有的功能………………………………………………………3

2.2 方案的选择………………………………………………………………………3

2.3 密码锁系统基本结构……………………………………………………………3

2.4 各个模块功能分析………………………………………………………………4

3 电子密码锁的硬件组成及其说明…………………………………………………7

3.1 电路原理…………………………………………………………………………7

3.2 AT89C2051芯片的介绍…………………………………………………………8

3.3 键盘简介………………………………………………………………………12

3.4 AT24C02简介…………………………………………………………………14

3.5 MAX1232芯片的介绍……………………………………………………………18

3.6 PCB制版…………………………………………………………………………20

4 电子密码锁的软件设计及相关说明……………………………………………22

4.1 软件编程概述…………………………………………………………………22

4.2 系统资源分配…………………………………………………………………23

4.3 几个主要模块的流程…………………………………………………………25

4.4 24C02 E2PROM的读写程序……………………………………………………31

4.5 4*4矩阵键盘处理程序…………………………………………………………32

5 系统调试和分析…………………………………………………………………34

5.1 硬件检测………………………………………………………………………34

5.2 软件部分的调试………………………………………………………………34

5.3 系统的优化与改进方案………………………………………………………34

6结 论……………………………………………………………………………………35

参考文献……………………………………………………………………………………35

致 谢………………………………………………………………………………………36

附 录…………………………………………………………………………………37

自己做的基于单片机密码锁设计c语言设计系统说明 该系统如图所示使用了80C51单片机、普通键盘、排阻、1602液晶。 该系统的功能: ①该系统输入正确的密码LED灯会亮(其实就是很多操作都可以,用LED只是代表作用,主要是操作简单,效果明显。) ②系统可以修改密码;(系统断电后重启后必须用初始密码(初始密码是:000000)重新改密,当然修改的密码可以与掉电前的一样。)http://www.elecfans.com/member/article_add.php 具体操作: ①系统开机时显示请输入密码的提示,直接输入密码#键确认 ②系统会自动提醒密码错误,数秒后系统会再次提醒重新输密码。 ③在系统提醒输入密码的界面可以按*键修改密码系统会提醒输入两次密码,并且会检查两次密码是否相同。同则修改成功。否则在数秒后可以重新按*键修改。 ④在改密前(就是按了*键后系统)会提醒身份识别,请输入旧密码系统判断旧密码正确方可更改密码。 源程序 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit lcdrs=P3^0; sbit lcdrw=P3^1; sbit lcden=P3^2; sbit h1=P1^0; sbit h2=P1^1; sbit h3=P1^2; sbit sa=P1^3; sbit sb=P1^4; sbit sc=P1^5; sbit sd=P1^6; sbit kd=P3^7; uchar code table[]=" PLEASE INPUT "; uchar code table1[]="CODE: "; uchar code table2[]=" *****WIN*****"; uchar code table3[]=" PLEASE AFFIRM"; uchar code table4[]=" *****FAIL*****"; uchar code table5[]=" MODIFICATION"; uchar code table6[]=" IDENTITY LIMITS "; uchar unm,M1,M2,M3,M4,M5,M6,sex,k1,k2,k3,k4,k5,k6,flge,flge1; uchar q1,q2,q3,q4,q5,q6,w1,w2,w3,w4,w5,w6,g; void delay(int z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay1(int z) { int x,y; for(x=z;x>0;x--) for(y=20000;y>0;y--); } void writen_com(uchar com) //1602写命令 { lcdrs=0; P0=com; delay(1); lcden=1; delay(1); lcden=0; } void writen_dat(uchar dat) //1602写数据 { lcdrs=1; P0=dat; delay(1); lcden=1; delay(1); lcden=0; } void main(); void cheak_mima() //检查第二次确认密码是否与第一次相同 { if(q1==w1) { if(q2==w2) { if(q3==w3) { if(q4==w4) { if(q5==w5) { if(q6==w6) { writen_com(0x01); writen_com(0x0f); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table5[unm]); delay(5); } writen_com(0x80+0x40+1); for(unm=0;unm<14;unm++) { writen_dat(table2[unm]); delay(5); } M1=w1; M2=w2; M3=w3; M4=w4; M5=w5; M6=w6; delay1(6); main(); } /*-----------------------------------*/ //密码确认错误返回 writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } /*------------------------------------*/ //第二次确认密码 void affirm_code() { P1=0x07; if(P1!=0x07) delay(1); if(P1!=0x07) { P1=0x77; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=1;break; case 1:w2=1;break; case 2:w3=1;break; case 3:w4=1;break; case 4:w5=1;break; case 5:w6=1;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=2;break; case 1:w2=2;break; case 2:w3=2;break; case 3:w4=2;break; case 4:w5=2;break; case 5:w6=2;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=3;break; case 1:w2=3;break; case 2:w3=3;break; case 3:w4=3;break; case 4:w5=3;break; case 5:w6=3;break; } sex++; } } /*-------------------------------*/ P1=0x6f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=4;break; case 1:w2=4;break; case 2:w3=4;break; case 3:w4=4;break; case 4:w5=4;break; case 5:w6=4;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=5;break; case 1:w2=5;break; case 2:w3=5;break; case 3:w4=5;break; case 4:w5=5;break; case 5:w6=5;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=6;break; case 1:w2=6;break; case 2:w3=6;break; case 3:w4=6;break; case 4:w5=6;break; case 5:w6=6;break; } sex++; } } /*--------------------------------*/ P1=0x5f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=7;break; case 1:w2=7;break; case 2:w3=7;break; case 3:w4=7;break; case 4:w5=7;break; case 5:w6=7;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=8;break; case 1:w2=8;break; case 2:w3=8;break; case 3:w4=8;break; case 4:w5=8;break; case 5:w6=8;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=9;break; case 1:w2=9;break; case 2:w3=9;break; case 3:w4=9;break; case 4:w5=9;break; case 5:w6=9;break; } sex++; } } /*-----------------------------------*/ P1=0x3f; if(h2==0) //0键扫描 { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:w1=0;break; case 1:w2=0;break; case 2:w3=0;break; case 3:w4=0;break; case 4:w5=0;break; case 5:w6=0;break; } sex++; } } if(h3==0) //#键扫描 { delay(1); if(h3==0) { while(!h3); while(!flge1) cheak_mima(); } } } } /*--------------------------------------*/ //修改密码 void set_mima() { P1=0x07; if(P1!=0x07) delay(1); if(P1!=0x07) { P1=0x77; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=1;break; case 1:q2=1;break; case 2:q3=1;break; case 3:q4=1;break; case 4:q5=1;break; case 5:q6=1;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=2;break; case 1:q2=2;break; case 2:q3=2;break; case 3:q4=2;break; case 4:q5=2;break; case 5:q6=2;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=3;break; case 1:q2=3;break; case 2:q3=3;break; case 3:q4=3;break; case 4:q5=3;break; case 5:q6=3;break; } sex++; } } P1=0x6f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=4;break; case 1:q2=4;break; case 2:q3=4;break; case 3:q4=4;break; case 4:q5=4;break; case 5:q6=4;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=5;break; case 1:q2=5;break; case 2:q3=5;break; case 3:q4=5;break; case 4:q5=5;break; case 5:q6=5;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=6;break; case 1:q2=6;break; case 2:q3=6;break; case 3:q4=6;break; case 4:q5=6;break; case 5:q6=6;break; } sex++; } } P1=0x5f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=7;break; case 1:q2=7;break; case 2:q3=7;break; case 3:q4=7;break; case 4:q5=7;break; case 5:q6=7;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=8;break; case 1:q2=8;break; case 2:q3=8;break; case 3:q4=8;break; case 4:q5=8;break; case 5:q6=8;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=9;break; case 1:q2=9;break; case 2:q3=9;break; case 3:q4=9;break; case 4:q5=9;break; case 5:q6=9;break; } sex++; } } P1=0x3f; if(h2==0) //0键扫描 { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:q1=0;break; case 1:q2=0;break; case 2:q3=0;break; case 3:q4=0;break; case 4:q5=0;break; case 5:q6=0;break; } sex++; } } if(h3==0) //#键扫描 { delay(1); if(h3==0) { while(!h3); writen_com(0x01); writen_com(0x0f); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table3[unm]); delay(5); } writen_com(0x80+0x40); for(unm=0;unm<5;unm++) { writen_dat(table1[unm]); delay(5); } sex=0; while(!flge1) affirm_code(); } } } } void init(); void cheak_identity2() { if(k1==M1) { if(k2==M2) { if(k3==M3) { if(k4==M4) { if(k5==M5) { if(k6==M6) { sex=0; init(); while(!flge1) set_mima(); } writen_com(0x01); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x01); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } } writen_com(0x01); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } void cheak_identity() { P1=0x07; if(P1!=0x07) delay(1); if(P1!=0x07) { P1=0x77; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=1;break; case 1:k2=1;break; case 2:k3=1;break; case 3:k4=1;break; case 4:k5=1;break; case 5:k6=1;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=2;break; case 1:k2=2;break; case 2:k3=2;break; case 3:k4=2;break; case 4:k5=2;break; case 5:k6=2;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=3;break; case 1:k2=3;break; case 2:k3=3;break; case 3:k4=3;break; case 4:k5=3;break; case 5:k6=3;break; } sex++; } } /*-------------------------------*/ P1=0x6f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=4;break; case 1:k2=4;break; case 2:k3=4;break; case 3:k4=4;break; case 4:k5=4;break; case 5:k6=4;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=5;break; case 1:k2=5;break; case 2:k3=5;break; case 3:k4=5;break; case 4:k5=5;break; case 5:k6=5;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=6;break; case 1:k2=6;break; case 2:k3=6;break; case 3:k4=6;break; case 4:k5=6;break; case 5:k6=6;break; } sex++; } } /*--------------------------------*/ P1=0x5f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=7;break; case 1:k2=7;break; case 2:k3=7;break; case 3:k4=7;break; case 4:k5=7;break; case 5:k6=7;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=8;break; case 1:k2=8;break; case 2:k3=8;break; case 3:k4=8;break; case 4:k5=8;break; case 5:k6=8;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=9;break; case 1:k2=9;break; case 2:k3=9;break; case 3:k4=9;break; case 4:k5=9;break; case 5:k6=9;break; } sex++; } } /*-----------------------------------*/ P1=0x3f; if(h2==0) //0键扫描 { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=0;break; case 1:k2=0;break; case 2:k3=0;break; case 3:k4=0;break; case 4:k5=0;break; case 5:k6=0;break; } sex++; } } if(h3==0) //#键扫描 { delay(1); if(h3==0) { while(!h3); while(!flge1) cheak_identity2(); } } } } /*---------------------------------------*/ //键盘扫描 void keyscan() { P1=0x07; if(P1!=0x07) delay(1); if(P1!=0x07) { P1=0x77; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=1;break; case 1:k2=1;break; case 2:k3=1;break; case 3:k4=1;break; case 4:k5=1;break; case 5:k6=1;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=2;break; case 1:k2=2;break; case 2:k3=2;break; case 3:k4=2;break; case 4:k5=2;break; case 5:k6=2;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=3;break; case 1:k2=3;break; case 2:k3=3;break; case 3:k4=3;break; case 4:k5=3;break; case 5:k6=3;break; } sex++; } } /*-------------------------------*/ P1=0x6f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=4;break; case 1:k2=4;break; case 2:k3=4;break; case 3:k4=4;break; case 4:k5=4;break; case 5:k6=4;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=5;break; case 1:k2=5;break; case 2:k3=5;break; case 3:k4=5;break; case 4:k5=5;break; case 5:k6=5;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=6;break; case 1:k2=6;break; case 2:k3=6;break; case 3:k4=6;break; case 4:k5=6;break; case 5:k6=6;break; } sex++; } } /*--------------------------------*/ P1=0x5f; if(h1==0) { delay(1); if(h1==0) { while(!h1); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=7;break; case 1:k2=7;break; case 2:k3=7;break; case 3:k4=7;break; case 4:k5=7;break; case 5:k6=7;break; } sex++; } } if(h2==0) { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=8;break; case 1:k2=8;break; case 2:k3=8;break; case 3:k4=8;break; case 4:k5=8;break; case 5:k6=8;break; } sex++; } } if(h3==0) { delay(1); if(h3==0) { while(!h3); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=9;break; case 1:k2=9;break; case 2:k3=9;break; case 3:k4=9;break; case 4:k5=9;break; case 5:k6=9;break; } sex++; } } /*-----------------------------------*/ P1=0x3f; if(h1==0) //*键扫描 { delay(1); if(h1==0) { while(!h1); writen_com(0x0f); writen_com(0x06); writen_com(0x80); for(unm=0;unm<16;unm++) { writen_dat(table6[unm]); delay(5); } while(!flge1) cheak_identity(); } } if(h2==0) //0键扫描 { delay(1); if(h2==0) { while(!h2); writen_com(0x80+0x45+sex); writen_dat('*'); switch(sex) { case 0:k1=0;break; case 1:k2=0;break; case 2:k3=0;break; case 3:k4=0;break; case 4:k5=0;break; case 5:k6=0;break; } sex++; } } if(h3==0) //#键扫描 { delay(1); if(h3==0) { while(!h3); flge=1; } } } } /*-------------------------------------*/ //密码检查 void init(); void check_code() { if(k1==M1) { if(k2==M2) { if(k3==M3) { if(k4==M4) { if(k5==M5) { if(k6==M6) { writen_com(0x01); kd=0; writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table2[unm]); delay(5); } delay1(6); kd=1; main(); writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } } writen_com(0x0c); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table4[unm]); delay(5); } delay1(6); main(); } void now_mima() { M1=0; M2=0; M3=0; M4=0; M5=0; M6=0; g=0; } void init() { if(g==0) now_mima(); g=1; flge1=0; flge=0; sex=0; lcdrw=0; lcden=0; writen_com(0x01); writen_com(0x38); writen_com(0x0f); writen_com(0x06); writen_com(0x80); for(unm=0;unm<14;unm++) { writen_dat(table[unm]); delay(5); } writen_com(0x80+0x40); for(unm=0;unm<5;unm++) { writen_dat(table1[unm]); delay(5); } } void main() { while(1) { init(); set_mima(); while(!flge) keyscan(); check_code(); } } 电路图请链接:http://user.qzone.qq.com/549116355/infocenter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值