数字电子时钟课程设计[1].doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流数字电子时钟课程设计1.精品文档.课程设计(论文)题 目 名 称 数字电子时钟 课 程 名 称 单片机原理及应用 学 生 姓 名 学 号 系 、专 业 电气工程系 电气自动化 指 导 2009年06 月29 日邵阳学院课程设计(论文)任务书年级专业电气自动化学生姓名学 号题目名称数字电子时钟设计时间09年6月8日7月1日课程名称单片原理及其接口技术课程编号121200105设计地点数字控制与PLC实验室一、 课程设计(论文)目的通过课程设计,使学生巩固和加深对单片机基本知识的理解,学生查询资料、方案设计、方案比较,以及单元电路设计计算环节,进一步提高学生综合运用所学知识的能力,提高分析理解解决实际问题的能力。锻炼分析、解决电子电路问题的实际本领,通过此综合训练,为以后毕业设计打下基础。二、 已知技术参数和条件1 .89c51单片机2 .LED数码显示管3 74LS373芯片4 74LS21芯片任务和要求(1) 设计一个基于单片机的电子时钟,并且能够实现分秒的现实和调节。(2) 设计出硬件电路(3) 设计出软件编程方法,并写出源代码(4) 用proteus进行仿真(5) 用汇编用汇编语言编实现程序设计(6) 利用查表,中断等方式实现目的邵阳学院课程设计(论文)评阅表学生姓名 学 号 074 系 电气工程系 专业班级 题目名称 数字电子时钟 课程名称 单片机原理及应用 一、学生自我总结通过这次单片机课程设计,我能够很好地应用单片机理论知识,将其应用于实践,并且这是一次小组的合作,从中更好培养了小组合作的默契。通过课程设计,让我加深了对单片机课程的理解,而且也巩固了数字电路有关知识的理解,特别是关于芯片的连线,以及proteus反真软件的使用,我觉得这是一次宝贵的经验。 学生签名: 2009年 06 月29日二、指导教师评定评分项目综合成绩权 重单项成绩指导教师评语: 指导教师(签名): 年 月 日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。摘要单片计算机即单片微型计算机。由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。基于单片机课程的学习,本小组成员利用单片机实现时钟的显示,利用键盘和门电路控制时间的调整,充分利用单片机的资源和空间,较大限度的实现了功能,设计时主要应用了一个基于AT89C51单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。关键词:AT89C51单片机 、 键盘控制 、 Proteus仿真目录摘要1 方案选取.51.1 总体方案介绍6.1.2 多功能电子表计时方案61.3 多功能电子表键盘显示方案.62 电路设计.72.1 键盘的设计.72.2门电路的设计.72.3显示电路.83 软件设计.103.1 程序流程图.103.2 汇编源程序114 系统仿真.175 结束语.18参考文献.18附录191 方案选取1.1 总体方案介绍本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。而单片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种设计方案的考虑:1.2 多功能电子表计时方案方案一:采用实时时钟芯片实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。计算机可通过中断或查询方式读取计时数据进行显示,因此计时功能的实现无需占用CPU的时间,程序简单。此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来存放需长期保存但有时也需变更的数据。由于功能完善,精度高,软件程序设计相对简单,且计时不占用CPU时间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。方案二: 软件控制。利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时及秒表计时。该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入的了解,从而掌握单片机应用技术MCS-51汇编语言程序设计方法,因此,本系统设计采用此种软件控制方法来实现计时。而由于ATMEL公司的AT89S51单片机是低功耗的具有4KB在线可编程Flash存储器的单片机。它与通用80C51系列单片机的指令系和引脚兼容。片内的Flash可允许在线重新编程,也可使用通用非易失性存储器编程。它将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。它的功能强大,而且也较容易购买,故本设计中所选的单片机为AT89S51单片机。1.2 多功能电子表键盘显示方案方案一: 8279扩展。该方案方框图如图1.2.1所示,8279是一种可编程的键盘/显示接口专用芯片,它含有键盘输入和显示输出两种功能,键扫描程序和动态显示程序全由8279硬件自动完成,此种方案能以比较简单的硬件 电路和较少的软件开销实现单片机与键盘、LED显示器的接口。方案二: 8155扩展,LED动态显示。 该方案方框图如图1.2.2所示,8155是一块可编程的接口芯片,与单片机的接口非常简单,它的键盘、显示共用一个接口电路,可节省I/O口。但动态扫描方式需占用CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。方案三: 串口扩展,LED静态显示。该方案方框图如图1.2.3所示,独立式键盘配置灵活,软件结构简单,按键较多时不宜采用。静态显示占用口资源少,采用串口传输实现静态显示, LED数码管与单片机之间通过6个移位寄存器相连,显示亮度有保证,但此方案的硬件开销大,电路复杂,信息刷新速度慢,比较适用于并行口资源较少的场合。方案四: 独立式按键,LED动态显示。 该方案方框图如图1.2.4所示,独立式按键直接与单片机I/O口相连构成键盘,每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘不会浪费I/O口线,所以本系统采用独立式键盘。动态显示的亮度虽然不如静态显示,但其硬件电路较简单,可节省硬件成本,虽然动态扫描需占用CPU较多的时间,但本系统中的单片机没有很多实时测控任务,因此,本系统采用此种方案。 2 电路设计2.1 键盘的设计考虑到时间误差的存在以及调整时间的方便性,采用独立式键盘。提高CPU的工作效率,采用中断工作方式四个键盘接于P1口,用74ls21与门接于外部中断0,实现了调整时间的快速性,当四个键盘有中断发生,首先判断四个键哪个按下,向CPU发一个中断请求信号,然后调用相应的中断程序。参考电路如下:键盘的工作过程可分为两步:第一步是CPU首先检测键盘上是否有按键被按下,第二步是识别哪一个减按下。检查键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。查询工作方式(例如用8155扩展I/O组成的行列式键盘):键盘上有无键按下是有列线送出全扫描字,然后读入行线状态来识别的。其方法是PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中,如果有键按下,总会有一根行线拉置低电平,从而使行输入状态不全为“1”。键盘中哪一个键按下是有列线逐列置低电平后,检查行输入状态,称为逐列扫描。方法是:从PC口读入行线状态,如果全为“1”,则所按下之键不在此列,如果不全为“1”,则在此列,并且是与“0”电平行线相交的交点上的那个键。2.2 门电路的设计为了达到调整时间的快速性与准确性,采用中断方式,四个键盘采用与门芯片74LS21。当四个键盘有一个按下后就会向CPU申请中断。2.3 显示电路设计显示采用led动态显示方式,共阴极端由P2口线控制,分为段选线和位选线,利用人的视觉停留达到显示的效果,段选线控制字符选择,位选线控制显示位的亮或暗。从段选线I/O口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,为选通不显示字符(保持熄灭)。这样,对各位显示就是一个循环过程。从计算机工作来看,在一个瞬间只有一位显示字符,而其他位都是熄灭的。但由于人的视觉停留,这种动态变化是察觉不到的。从效果上看,各位显示器能连续而稳定地显示不同的字符。3 软件设计3.1 程序流程图 开始有键按下否?调用延时子程序调用延时子程序有键按下否?否?判断闭合键,键码入栈保护闭合键释放否?键码 A返回3.2 汇编源程序 ORG 0000H AJMP START ORG 0003H LJMP ST1 ORG 000BH AJMP TT0 ORG 0030HSTART: MOV 30H,#00H ;秒个位内存单元 MOV 31H,#00H ;秒十位内存单元 MOV 32H,#00H ;分个位内存单元 MOV 33H,#00H ;分十位内存单元 MOV 34H,#00H ;时个位内存单元 MOV 35H,#00H ;时十位内存单元 MOV TMOD,#01H ;定时器T0,工作方式1, MOV TH0,#3CH ;定时50MS MOV TL0,#0B0H ; MOV R0,#30H ;指针指向显示单元 MOV R5,#0FEH ;选中秒个位 MOV R1,#20 ; MOV 36H,#00H ;时位键盘判断时用 MOV R3,#6 ;秒十位判断时用 MOV R2, #6 ;分十位判断时用 MOV R4,#10 ; MOV 40H,#10 MOV IE, #81H ; SETB EA ;开中断 SETB ET0 ;开T0中断 SETB TR0 ;记时开始MAIN: LCALL DIS LJMP MAIN;#显示子程序#DIS: MOV A,R5 ;先位码 MOV DPTR,#7FFFH ;位码选择p2.7 MOVX DPTR,A MOV A,R0 ;再段码 MOV DPTR,#TAB ;表地址 MOVC A,A+DPTR ;查表 MOV DPTR,#0BFFFH ;段码选择p2.6;#显示小数点# CJNE R0,#32H,GO111 ;小数点选择(R0)=/=32H转移 ORL A,#80H GO111: CJNE R0,#34H,MIN ORL A,#80HMIN: MOVX DPTR,A ;送出去显示 LCALL DELAY ;1MS延时 LCALL DELAY LCALL DELAY INC R0 ;修改指针指向下一显示单元 MOV A,R5 ;也可写为XCH A,R5 JNB ACC.5,LH ;判断显示完否? RL A ;也可写为XCH R5,A MOV R5,A AJMP ENR ;返回循环显示LH: MOV R0,#30H ;重心定义显示指针 MOV R5,#0FEH ;重设位码,形成循环ACC.0-ACC.3ENR: RET;#定时中断#TT0: MOV TH0,#3CH ; MOV TL0,#0B0H ; DJNZ R1,FANHUI ;判断1秒到否?未到跳转 MOV R1,#20 ; INC 30H ;秒个位加一 DJNZ R4,FANHUI ;判断10秒到否?未到跳转 MOV R4,#10 ; MOV 30H,#00H ; INC 31H ; DJNZ R3,FANHUI ; MOV R3,#6 ; MOV 31H,#00H ; INC 32H DJNZ 40H,FANHUI ; MOV 40H,#10 MOV 32H,#00H INC 33H DJNZ R2,FANHUI MOV R2,#6 MOV 33H,#00H INC 36H ;时位判断时用MOV A,36HCJNE A,#24,JUMPMOV 36H,#00HJUMP: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AFANHUI: RETI ;*键盘处理程序* ST1: CLR EX0 ;键盘1判断时用 PUSH B PUSH ACC JB P1.0,ST2 LCALL DELAY111 JNB P1.0,$ LCALL DELAY111 DJNZ R3,GO MOV R3,#6GO: INC 31H MOV A,31H CJNE A,#6,$+3 JNB P1.0,$ JC ST2 MOV 31H,#00H MOV A,31HST2: JB P1.1,ST3 ;键盘2判断时用 LCALL DELAY111 JNB P1.1,$ LCALL DELAY111 DJNZ 40H,GO1 MOV 40H,#10GO1: INC 32H MOV A,32H CJNE A,#10,$+3 JNB P1.1,$ JC ST3 MOV 32H,#00H MOV A,32HST3: JB P1.2,ST4 ;键盘3判断时用 LCALL DELAY111 JNB P1.2,$ LCALL DELAY111 DJNZ R2,GO2 MOV R2,#6GO2: INC 33H MOV A,33H CJNE A,#6,$+3 JNB P1.2,$ JC ST4 MOV 33H,#00H MOV A,33HST4: JB P1.3,ST6 ;键盘4判断时用 LCALL DELAY111 JNB P1.3,$ LCALL DELAY111 INC 36H MOV A,36H CJNE A,#24,JUMP1 MOV 36H,#00HJUMP1: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AST6: POP ACC ;键盘中断返回 POP B SETB EX0 RETI;#延时1MS子程序#DELAY: MOV R7,#02HDE1: MOV R6,#0FEHDE2: DJNZ R6,DE2 DJNZ R7,DE1 RET;#键盘延时消抖程序#DELAY111:MOV 50H,#2 ;键盘消抖程序DE1111: MOV 51H,#255 DJNZ 51H,$ DJNZ 50H,DE1111 RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H END4 系统仿真5 结束语我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。参考文献1. 参考文献李建忠编著,单片机原理及应用西安电子科技大学出版社,2008。胡汉才编著,单片机原理及其接口技术清华大学出版社,2004。贾金铃等编著,微型计算原理及应用重庆大学出版社,2006。吴清秀,周荷琴编著,微型计算机原理与接口技术中国科学技术大学出版社,2004。吴向军、罗源明等编著汇编语言程序设计高等教育出版社,2001。2 附录 (AT89C51) (74LS373) (74LS21)