ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:24.82KB ,
资源ID:4771623      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4771623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子钟密码锁设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子钟密码锁设计.docx

1、电子钟密码锁设计单片机课程设计报告 设计题目 :电子钟、密码锁学生姓名 :专 业 :班 级 :学 号 :同组人 :指导老师 : 摘 要 数字电子时钟 在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表. 即使现在钟表千奇百怪,但是它们都只是完成一种功能计时功能,只是工作原理不同而已.本次课程设计之一-电子时钟设计,基于D8255AC芯片和LED数码管为核心,辅以必要的电路,并以汇编为程序设计为基础,构成一个简单的单片

2、机数字电子时钟。由5.0V直流电源供电,通过数码管能够准确显示时间,时、分、秒,并且可以通过键盘进行校时。本报告主要介绍了数字电子时钟的软、硬件部分及在设计调试过程中遇到的问题及解决方案。 关键字:D8255AC芯片 数字电子时钟 校时简易电子计算器随着社会的发展,计算器的用途越来越广泛,不断可以进行简单的加、减、乘、除,还可以用来做所有简单的计算,一些复杂的科学计算,单位换算,以及提供各种物理常数。本次课程设计之二的选做实验,作者选择的就是简易电子计算器的设计。主要利用键输入数据和运算符号,用LED显示运算过程和结果,实现简单的加、减运算。关键字:电子计算器 LED 加、减运算 前言第一章

3、数字电子时钟1.1.设计要求1.2设计思路.1.3设计框图1.4硬件设计原理图及说明1.5软件设计 1.5.1.设计流程图 1.5.2. 调试过程与说明 1.6小结第二章 简易计算器2.1.设计要求2.2.设计思路.2.3.设计框图2.4. 硬件设计原理图及说明 2.5.软件设计 2.5.1.设计流程图 2.5.2.程序模块设计2.5.3调试过程与说明 2.6.小结第三章 总结与体会参考文献附录一 数字电子时钟程序清单附录二 简易计算器程序清单 前言课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术

4、发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。单片机是智能仪器、计算机外部设备、生产过程控制的控制核心。单片机已经是一项十分成熟的技术,因其具有小型化、廉价、简单可靠和稳定性好等优点,在工业测控、电子仪器、汽车电子系统、日用家电、电子通信、办公自动化设备和尖端武器(如雷达、火炮的控制系统)等方面都有广泛的应用。在本次设计中使用的是STC89C52单片机,它是一种新型的价格便宜而性能优良的单片机系统,结构简单,布局合理,适用于多种程序功能调试和模拟。本次设计用单片机开发系统来模拟密码锁的各

5、种功能,在开发系统中输入编译好的程序,使用其键盘作为数字输入键和各功能键.通过这次课程设计,进一步掌握了如何利用接口电路进行硬件系统的设计,如何进行软件的设计,同时增强了学习兴趣及动手能力。在报告中,详细地记述了整个设计过程的各个环节,其中的不足欢迎师生们指出或给予更好的建议。 第一章 数字电子时钟 1.1设计任务1.1.1设计要求用单片机开发系统,设计一个电子时钟,从左到右依次以时分秒的顺序显示时间。并且可以在程序代码中修改时间初始值。提高要求: 1、可以加入闪烁显示,每过一秒使时和分,分和秒间的两点闪烁一次。2、应用键盘扫描程序,能随时在键盘上修改时钟的初始值。 1.1.1设计思路本课题的

6、数字电子时钟设计采用单片机定时器产生100MS的时,并开定时中断。设计出一个1S的定时程序。每进入一个定时中断,在其中断服务程序中计算分钟,时钟、钞钟。预先资源定义:时分秒的存放空间 1.2设计框图及简要说明 主程序数码动态扫描模块当前时间计时模块当前时间调整模块 数值转换模块计时单元由单片机内部的定时器来实现;时间显示采用LED数码管动态扫描方式;LED数码管的段码输入,由并行口P1低四位输入。 1.3硬件设计原理图及说明一、 原理图图 1.3.1数字电子时钟设计原理图 二、应用原理该原理图以8255为接口芯片。8255是intel公司生产的可编程输入输出接口芯片,它是具有3个8位的并行I/

7、O端口,具有三种工作方式,被广泛地使用于单片机的并行I/O端口。 工作方式0:基本输入输出方式 工作方式1:选通输入输出方式 工作方式2:双向传送方式 8255的读/写控制逻辑电路接受CPU发来的控制口号RD、WR、RESET和地址信号A1A0。然后根据命令端口,控制信号的要求,将端口的数据读出选信CPU或者将CPU送来的数据写入端口,各端口的工作状态。如表1所示。 AIA0RDWRCS工作状态10010A口数据送入数据总线01010B口数据送入数据总线10010C口数据送入数据总线00110数据总线送入A口01100数据总线送入B口10100数据总线送入C口11100数据总线送入控制字寄存器

8、表1-1 1.4软件设计 1.4.1程序设计流程图(主程序、中断服务子程序及修改时间) 一、主程序框图开 始设计初始化 初始化显示(调显) 调键盘扫描子程序 有键按下否 修改初值按键错误开始计时定时中断开定时中断显示错误调键扫 修改键否? 调修改子程序 返 回 图1.4.1 数字电子时钟主程序流程图 二、中断服务子程序框图中断入口 中断保护 秒+1 调显示程序 秒59 秒清零送显缓 分+1 分59 分清零送显缓 时+1 时清零送显缓 时23 时的数量存进显缓 秒的数量存进显缓 中断返回 分的数量存进显缓 图1.4.2 数字电子时钟中断服务子程序流程图 三、修改时间子程序 开 始设计初始化 初始

9、化显示(调显) 调键盘扫描子程序 有键按下否 修改初值按键错误开始计时定时中断开定时中断显示错误调键扫 修改键否? 调修改子程序 返 回 图1.4.3 数字电子时钟修改时间子程序流程图 1.4.2调试过程与说明在调试数字电子时钟程序时出现了数码管所显示时间重叠模糊的情况。通过对程序代码和对数码管显示原理的分析,得出了出现上述情况的原因是由于8个数码管显示的数码变化速度很快,受人眼视觉暂留的影响,人眼无法分辨前后两次所显示的数码。为解决这个问题所采取的措施是,在每显示一个数码管的内容后加一个延迟程序来减缓所显示数码的变换速度。改进后再调试程序时8个数码管所显示的时间十分清晰。 1.5小结在本次课

10、程设计中遇到的最大的困难是如何利用软、硬件配合的方式产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,最后在指导老师和同学们的帮助下,作者这个小组一起共同完成了该实验,实现了数字电子时钟的基本功能。 第二章 简易电子计算器 2.1 设计要求设计一个可以进行简易加减运算的计算器,要求:1、 键输入数和运算符号;2、 LED显示运算过程和结果(十进制数);3、 有清零和复位功能; 提高要求能显示位输入和位输出。 2.2 设计思路 显示设备采用八片七段共阴极LED显示器,共设置16 个键,其中数字键09 共十个,接下来依次是加号键、减号

11、键、等于号键、清除键。利用C52的定时器中断以给定的时间间隔扫描键盘,检测出键盘输入的信号,然后送至单片机进行处理,完成简单的加减的计算器功能,然后将结果送至LED的显示器,显示输出结果 2.3设计框图及简要说明 2.4硬件设计原理图及说明由于本次课程设计以软件设计部分为主,简易电子计算器是继数字电子时钟的训练和巩固。所以在应用硬件方面的原理和设计和数字电子时钟相同。详细工作原理请见第一章1.3节硬件设计原理图及说明 2.5.软件设计2.5.1程序设计流程图开 始初始化提示输入一个数 调键盘子程序 保存该数据 提示输入另一个数 键盘子程序 保存该数据提示输入运算符 加法子程序 减法子程序判断运

12、算符类型 图2.5.1 简易电子计算器程序流程图 2.5.2程序模块设计1、主程序的设计主程序主要是用来进行初始化的,调用自检程序,清空各个标志位,清空缓存区,给定定时器0工作方式。在等待定时器0中断时主程序在以下程序段内循环:LP1: MOV PCON,#01HSJMP LP12、中断模块的程序设计进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出中断程序。3、显示模块的程序设计由于使用的是静态显示,故先要对SCON进行相关设

13、置,让串口工作在方式0下,使用指令MOV SCON,#00H就可以了。首先从高位开始进行灭零显示,并将最后一个灭零的位,标志为负号位,然后判断负数标志位是否为一,是则将标志为负号位的送出显示负号(笔形码0FEH),否则直接送出显示 2.5.3 调试过程与说明在上机实践中,作者发现运算结果与实际结果不相符合,经过单步运行发现,原来是调用BCD码转二进制码子程序错误,于是作者调用成了二进制转BCD码子程序,原因是因为两个子程序的标号很接近,一不小心就会调用错误,说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,充分使用了结构化的思想,这样程序检查起来

14、也比较方便,调试时也给了我很大方便,只要一个模块一个模块进行调适就可以了,充分体现了结构化编程的优势。一开始,设计只支持正整数的运算,并没有加入负数运算,因为时间问题,只是大概想了思路,并没实现。最后在班上同学的帮助下。终于实现了计算器的基本功能。 2.6 小结由于简易电子计算器是继数字电子时钟的练习和巩固,大多数模块都已经熟悉。虽然在编程的过程中遇到了一些问题,但在同组人的共同努力下。完成了本次课程设计的基本要求 第三章 总结与体会经过这次单片机专业课程设计,训练了作者的动手能力和理论实践相结合的能力,从中还体会到了团队的合作精神,因为一个人的能力毕竟有限,惟有善于合作的团队才能发挥出最大的

15、能量。在这次课程设计中,作者真正体会到了合作的重要性,作者这个班级在这次程序设计中总在一起,从要实现的功能到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚了我们班级的力量。在遇到棘手的问题时,大家总是一起讨论,一起把问题解决;在作者遇到不很明白的程序时,是同学们耐心地帮助讲解;在面对有错的程序不知所措时,也是同学们帮助作者一步步地调试,耐心的指导,直至程序能正常运行。总的来说,这次单片机课程设计对我们来说是很有意义的,以往在老师讲课时不是很明白的问题在这次课程设计中通过大家一起学习,一起动手,很多问题都迎刃而解。而且加强了作者班级同学之间的凝聚力 参

16、考文献1 于海生微型计算机控制技术M 清华大学出版社1999-62 孙涵芳MCS-51系列单片机原理及应用M 北京航空航天大学出版社1996-43 黄正谨综合电子设计与实践M 东南大学出版社2002-34 杨欣等电子设计从零开始M 清华大学出版社2005-10 附录一:数字电子时钟程序清单DEDA EQU 33H ;50MS记数常数,满200次为1S(T0)NUM EQU 34H ;0.3S记数常数,满6次为0.3S(T1)SEC EQU 30H ;秒数据存储区MIN EQU 31H ;分数据存储区HOU EQU 32H ;时数据存储区SEC0 EQU 40H ;秒显缓区低位SEC1 EQU

17、41H ;秒显缓区高位MIN0 EQU 42H ;分显缓区低位MIN1 EQU 43H ;分显缓区高位HOU0 EQU 44H ;时显缓区低位HOU1 EQU 45H ;时显缓区高位SSEC0 EQU 60H ;秒显缓区低位字型码SSEC1 EQU 61H ;秒显缓区高位字型码SMIN0 EQU 62H ;分显缓区低位字型码SMIN1 EQU 63H ;分显缓区高位字型码SHOU0 EQU 64H ;时显缓区低位字型码SHOU1 EQU 65H ;时显缓区高位字型码GW BIT 06H ;个位标志SW BIT 07H ;十位标志HAL EQU 47H FUNCKEY EQU 0E7HHOUKE

18、Y EQU 0C7HMINKEY EQU 077HSECKEY EQU 87HKEY EQU 52H;-ORG 0000HLJMP MAINORG 000BHLJMP INTT0 ;T0中断程序ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行;-;主程序;-MAIN: MOV SEC,#0 MOV HOU,#23 MOV MIN,#59 MOV DEDA,#00H MOV NUM,#06H ; 0.3秒定时用初值 MOV SP,#0F0H MOV TMOD,#11H ;定时器0为方式1 MOV TH0,#50H ;赋初值 MOV TL0,#0C3H MOV

19、 TL1,#50H ;装定时器T1定时初值 MOV TH1,#0C3H SETB TR0 ;启动T0 MOV IE,#82H LCALL ROLL MOV SEC, #0 MOV HOU, #23 MOV MIN, #59 S: LCALL DISP LCALL KEY_SCAN ;键扫 LCALL DISP SJMP S ;-;显示程序;- DISP:MOV A, SECMOV B,#10 ;S转换送显缓区DIV ABMOV SEC0,BMOV SEC1,AMOV A, MINMOV B,#10 ;MIN转换送显缓区DIV ABMOV MIN0,BMOV MIN1,AMOV A, HOUMO

20、V B,#10 ;H转换送显缓区DIV ABMOV HOU0,BMOV HOU1,AMOV R5 ,#6MOV R0,#40HMOV R1 ,#60HLOOP:MOV A,R0MOV DPTR ,#TAB;MOVC A,A+DPTRMOV R1,AINC R0INC R1DJNZ R5, LOOPJBC SW ,LOPP0 MOV 59H,#00H; MOV 58H,#00H; SJMP DISP0LOPP0:MOV 59H,#09H; -MOV 58H,#09H; - DISP0:MOV A,#80H;写8255显示状态字MOV DPTR,#0A003HMOVX DPTR,AMOV A,#0

21、FEHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SHOU1 ;HOURHMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0FDHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SHOU0 ;HOURLMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0FBHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,58H ;-MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0

22、F7HMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SMIN1 ;MINATEHMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0EFHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SMIN0 ;MINSTELMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0DFHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,59H ;-MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV

23、A,#0BFHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SSEC1 ;SECONDHMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#7FHMOV DPTR,#0A001H;输出片选信号MOVX DPTR,AMOV A,SSEC0 ;SECONDLMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSRETDELAY:PUSH 02HDELAY1:PUSH 02HDELAY2:PUSH 02HDELAY3:DJNZ R2,DELAY3POP 02HDJNZ R2,DELAY2POP 02HD

24、JNZ R2 ,DELAY1POP 02HDJNZ R2,DELAYRETDE10MS: ;延时子程序DL1: MOV R7,#14H ;DL2: MOV R6,#17HDL3:DJNZ R6,DL3 DJNZ R7,DL2 RET TAB: ;共阴0-9字行码 DB 3FH ;0 DB 06H ;1 DB 5BH ;2 DB 4FH ;3 DB 66H ;4 DB 6DH ;5 DB 7DH ;6 DB 07H ;7 DB 7FH ;8 DB 6FH ;9 DB 00H ;熄灭符SEG:;-;键盘扫描程序;-KEY_SCAN:MOV DPTR,#0A003H;设置状态字 MOV A,#89H MOVX DPTR,A LP51:MOV DPTR,#0A001H;设置端口B MOV A,#00H MOVX DPTR,A MOV DPTR,#0A002H MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,XD AJMP OVERXD: MOV R7,#80DEL1: MOV R6,#123DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,JKEY AJMP LP

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1