赞
踩
( proteus仿真+程序+设计报告+讲解视频)
仿真图proteus8.16(有低版本)
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:P10
基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)
基于51单片机的简易密码锁设计数码管显示
以单片机为核心,设计一个六位电子密码锁。利用矩阵键盘输入密码,8位数码管显示输入的内容,要求如下:
1、初始状态数码管为熄灭状态,不显示内容,系统等待按键按下。
2、矩阵键盘按下,数码管按顺序显示被按下的按键数字,共六位。
3、每按下六次按键,系统判断一次密码。密码正确,数码管显示open,然后回到初始状态;密码错误,数码显示------,持续2秒,然后回到初始状态。
4、密码错误3次以上,禁止输入,如需再输入,需按下复位按键。
4、密码为六位,初始密码为000 000。
5、使用keil编程,proteus仿真调试,普中开发板完成实物演示。
(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
P系列单片机设计下载链接(复制到浏览器打开)
https://docs.qq.com/doc/DS2pPenNRaHB6SlR1
以下为本设计资料展示图:
开始仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。
#include<reg52.h> 完整代码在文章开头下载链接 #define uchar unsigned char #define uint unsigned int uchar old1,old2,old3,old4,old5,old6; //原始密码000000 uchar new1,new2,new3,new4,new5=1,new6=1; //每次MCU采集到的密码输入 uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量 uchar wei,key,temp,num1; uint tt=100; uchar allow,wanbi,cwflag; //各个状态位 sbit beep=P1^7; sbit jdq=P1^0; uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, //数码管段码 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40, 0x3f,0x73,0x79,0x37 //open }; // uchar code table[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; //数码管位选 void delay(unsigned int i) //延时 { uint j,k; for(j=i;j>0;j--) for(k=125;k>0;k--); } void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f) //数码管显示 { P0=0x00; //数码管关闭 P0=led[a]; //段选 P2=table[7]; //位选 delay(5); //延时 P0=0x00; P0=led[b]; P2=table[6]; delay(5); P0=0x00; P0=led[c]; P2=table[5]; delay(5); P0=0x00; P0=led[d]; P2=table[4]; delay(5); P0=0x00; P0=led[e]; P2=table[3]; delay(5); P0=0x00; P0=led[f]; P2=table[2]; delay(5); } void delay_uint(uint i)//延时 { while(i--); } uchar scan_key=0; uchar Matrix_buttons_scan(){ uchar i,j; i=0; j=0; P1=0x0f; if(P1!=0x0f) //检测有无按下 { delay_uint(10000); if(P1!=0x0f) //检测有无按下 { switch(P1)//检测行 { case 0x0e:i=3;break; case 0x0d:i=2;break; case 0x0b:i=1;break; case 0x07:i=0; } P1=0xf0; switch(P1)//检测列 { case 0xe0:j=13;break; case 0xd0:j=9;break; case 0xb0:j=5;break; case 0x70:j=1; } } } if(scan_key!=i+j) { scan_key=i+j; return scan_key; }else{ return 0; } } //按键扫描子函数 void keyscan() { uchar i=0; i=Matrix_buttons_scan();//按键检测 if(i==1) { key=0; //按键0定义 wei++; //输入位数+1 }else if(i==2) { key=1; //按键1定义 wei++; //输入位数+1 }else if(i==3) { key=2; //按键2定义 wei++; //输入位数+1 }else if(i==4) { key=3; //按键3定义 wei++; //输入位数+1 }else if(i==5) { key=4; //按键4定义 wei++; //输入位数+1 }else if(i==6) { key=5; //按键5定义 wei++; //输入位数+1 }else if(i==7) { key=6; //按键6定义 wei++; //输入位数+1 }else if(i==8) { key=7; //按键7定义 wei++; //输入位数+1 }else if(i==9) { key=8; //按键8定义 wei++; //输入位数+1 }else if(i==10) { key=9; //按键9定义 wei++; //输入位数+1 } }
6198字设计报告,内容包括目录,硬件设计、软件设计、软硬件框图、调试、结论等
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、仿真图
2、程序源码注释
3、功能要求
4、开题报告
5、设计报告
6、软硬件流程框图
7、烧录工具
8、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus简易使用教程
单片机学习资料
普中-2&普中-3&普中-4开发板原理图.pdf
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。