拉幕显示.docx
- 文档编号:5878990
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:11
- 大小:188.04KB
拉幕显示.docx
《拉幕显示.docx》由会员分享,可在线阅读,更多相关《拉幕显示.docx(11页珍藏版)》请在冰豆网上搜索。
拉幕显示
拉幕显示
一、项目描述
数字密码锁实现知道开锁密码即可开锁的功能。
在输入密码正确后,还可以修改密码,在输入密码的过程中,不显示密码,只显示无规律的提示某位密码是否输入完毕,防止了密码的泄漏,大大加强了密码锁的保密性。
开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯。
否则系统进入“错误”状态,并发出提示信号。
开锁程序由设计者确定,并锁内给定的密码是可调的,且预置方便,保密性好。
二.项目目的
1.掌握51系列单片机的输入输出口的控制使用。
2.掌握共阴LED数码功能的使用。
3.掌握单片机的储存、中断与控制的使用。
4.掌握单片机中断系统的C51语言基本编程方法,单片机应用系统的程序加载仿真与调试。
三.骤及设备
用KeilμVision2编写的拉幕程序加载到ProteusISIS软件画的拉幕电路原理图中经仿真成功实现预期后;把相关元件依据电路原理图插装到面包板上进行功能调试实现相关功能;后在把元件插装到万能板上进行焊接,焊接完后进行电路功能调试成功后,得到相关电路参数。
一台装有KeilμVision2和ProteusISIS的计算机、芯片AT89C51、74LS138译码器、面包板、8个LED共阴数码管等
四.理硬件设计
(1)该电路由时钟电路、复位电路、8个LED共阴极数码管等电路模块组成。
经AT89C51单片机核心控制、中断、处理、储存、后经38译码器输出驱动将会点亮8个LED共阴数码,实现电路功能。
(2)拉幕电路原理图如下:
拉幕电路原理图一
(3).元器件清单:
序号
名称
规格
数量
用途
1
51单片机
AT89C51
1个
控制芯片
2
晶振
12M立式
1个
晶振电路
3
电阻
3k3
7个
驱动电路
电阻
1k
1个
复位电路
4
瓷片电容
30PF
3个
晶振、复位
5
译码器
74LS138
1个
6
7段共阴数码显示管
1个
显示
7
电源
+5V/0.5A
1个
提供+5V
五.软件设计:
#include
#defineucharunsignedchar
#defineuintunsignedint
/*右移与左移的段码显示*/
/*----------------------------------------*/
ucharduan[]=
{0,0,0,0,0,0,0,
0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0,0,0,0,0,0,0,0};
/*两边往中间的段码显示*/
/*----------------------------------------*/
ucharsheet1[8]={0x06,0,0,0,0,0,0,0x06};
ucharsheet2[8]={0x5b,0x06,0,0,0,0x06,0x5b};
ucharsheet3[8]={0x4f,0x5b,0x06,0,0,0x06,0x5b,0x4f};
ucharsheet4[8]={0x66,0x4f,0x5b,0x06,0x06,0x5b,0x4f,0x66};
uintwei[8]={0,1,2,3,4,5,6,7};
/*----------------------------------------*/
voiddelay(uintms)/*延时子程序*/
{
uintt0,t1;
for(t0=ms;t0>0;t0--)
for(t1=15;t1>0;t1--);
}
voidmain()
{uinti,j,k,m,cnt,ci;
k=10;
m=7;
while
(1)
{
/*----------------------------------------*/
/*左移程序段*/
for(ci=4;ci>0;ci--)/*控制循环4次*/
for(i=0;i<16;i++)/*总共查16组段码*/
{for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止闪烁*/
{for(j=0;j<8;j++)
{P2=wei[j];/*位选信号*/
P0=duan[j+i];/*段选信号*/
delay(20);/*延时*/
}
}
}
/*----------------------------------------*/
/*----------------------------------------*/
/*右移程序段*/
for(ci=4;ci>0;ci--)/*控制循环4次*/
for(i=0;i<16;i++)/*总共查16组段码*/
{for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止闪烁*/
{for(j=0;j<=7;j++)
{P2=wei[j];/*位选信号*/
P0=duan[m+i];/*段选信号*/
m--;
delay(20);/*延时*/
}
m=7;
}
}
/*----------------------------------------*/
/*----------------------------------------*/
/*两边往中间的程序段*/
for(ci=4;ci>0;ci--)/*控制循环4次*/
{
for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止闪烁*/
{for(j=0;j<=7;j++)/*位选信号*/
{P2=wei[j];/*段选信号*/
P0=sheet1[j];/*查第一张表*/
delay(15);/*延时*/
}
}
for(cnt=10;cnt>0;cnt--)
{for(j=0;j<=7;j++)
{P2=wei[j];/*查第二张表*/
P0=sheet2[j];
delay(15);
}
}
for(cnt=10;cnt>0;cnt--)
{for(j=0;j<=7;j++)
{P2=wei[j];/*查第三张表*/
P0=sheet3[j];
delay(15);
}
}
for(cnt=10;cnt>0;cnt--)
{for(j=0;j<=7;j++)
{P2=wei[j];/*查第四张表*/
P0=sheet4[j];
delay(15);
}
}
}
/*----------------------------------------*/
}
}
3中断服务框图:
图二
六.系统仿真及调试如下图:
拉幕从右开始1~9,显示‘1’图三
拉幕从右开始1~9,显示‘12’图四
拉幕从右开始1~9,显示‘123’图五
拉幕从右开始1~9,显示‘1234’图六
拉幕从右开始1~9,显示‘12345’图七
拉幕从右开始1~9,显示‘123456’图八
拉幕从右开始1~9,显示‘1234567’图九
拉幕从右开始1~9,显示‘12345678’图十
拉幕从左开始1~9,显示‘1’图十一
拉幕从左开始1~9,显示‘21’图十二
拉幕从左开始1~9,显示‘321’图十三
拉幕从左开始1~9,显示‘4321’图十四
拉幕从左开始1~9,显示‘54321’图十五
拉幕从左开始1~9,显示‘654321’图十六
拉幕从左开始1~9,显示‘7654321’图十七
拉幕从左开始1~9,显示‘87654321’图十八
拉幕从两边到中间显示‘11’图十九
拉幕从两边到中间显示‘321123’图二十
拉幕从两边到中间显示‘43211234’图二十一
实训总结
通过这次拉幕制作实训;分析了拉幕电路并知道了其工作原理。
经过了软件的编制设计,硬件的仿真调。
后在面包板上排线组装实现该功能,最后在电路板子进行焊接
这次实训增强了我们对单片机的核心控制中断、处理、储存有了的进一步了解。
更增强了我们的动手能力与独立思考实践能力。
在老师的指导下组长的带领下,组员都表现的很优秀,认真完成分配给自己的任务。
这样的项目练习不仅能够提升我们每个人的能力,更能提高一个团队的协作能力。
在项目练习中,也出现了困难,有得是程序代码写错误,有得是画图软件使用不熟练,才使得实验完成所用的时间大大拉长,虽然有着很多的困难,但我们都能够把困难克服,完成该项目。
总体来说这次项目练习很成功,我们也希望在以后多去做一些项目的练习,这不仅是锻炼我们自身的动手能力,更是锻炼团队的动手协作能力。
很感谢老师给我们这次实训的机会。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 显示