单片机课程项目实训报告.docVIP

  • 20
  • 0
  • 约4.63千字
  • 约 8页
  • 2017-10-10 发布于江苏
  • 举报
单片机课程项目实训报告

单片机课程项目4实训报告 项目名称: 密码锁 系别: 信息技术系 班级: 通信3112 组别: 第22组 姓名: 张龙斌 37号 郑友冻45号 指导教师: 林志谋 报告日期: 2013 年 5月6 日 1.预期功能 4A3 思考:依次按四次按键后,这四个按键的键号在四位LED数码管上按顺序同时显示出来。密码正确时发出“滴”声并开锁,密码不正确则发出“嘀-嘀-嘀” 2.设计方案 依次按四次按键后,这四个按键的键号在四位LED数码管上按顺序同时显示出来。密码正确时发出“滴”声并开锁,不正确密码则发出“嘀-嘀-嘀” 3.硬件部 分 由C52芯片LED显示灯、行列式键盘、蜂鸣器构成 4.软件部分 利用编程软件跟与单片机控制机台连接的软件实现控制 4.1.程序流程图 4A3 4.2.程序设计说明 4A3 #include reg52.h #define uchar unsigned char uchar table[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, //0,1,2,3,4,5,6 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF};//7,8,9,A,B,C,D,E,F,- sbit bee = P1^0; //蜂鸣器驱动线 uchar temp; uchar count=0; //用于统计按键的次数 uchar key,hang,lie; uchar shu=0; //key用于保存按键号 hang用于保存按键行号;lie用于保存按键列号; uchar keynum[4]={0xBF,0xBF,0xBF,0xBF};//用于保存键号对应的段码 uchar mima[]={0,1,2,3}; uchar baocun[4]={0xBF,0xBF,0xBF,0xBF}; void beep(); //函数用于驱动音频电路发音 void delay(unsigned int x); void keyscan();//函数用于扫描键所在行号和列号,并获取键号。 void key_down(); //查询键是否按下,统计按键次数 void display();//LED数码管显示函数 /**************************************主函数*********************************/ void main(void) { while(1) { if(P1^2==1) { key_down(); if(count3 baocun[0]==mima[0] baocun[1]==mima[1] baocun[2]==mima[2] baocun[3]==mima[3]) { P0=0xc0; P2=0XF0; count=0; key=0; hang=0; lie=0; shu=0; key_down(); if(count3) { mima[0]=baocun[0]; mima[1]=baocun[1]; mima[2]=baocun[2]; mima[3]=baocun[3]; display(); count=0; key=0; hang=0; lie=0; shu=0; } } } key_down(); if(count3 baocun[0]==mima[0] baocun[1]==mima[1] baocun[2]==mima[2] baocun[3]==mima[3]) { beep(); delay(100); while(P1^3==

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档