等级:湖南工程学院应用技术学院课程设计课程名称单片机原理与应用课题名称电子表专业电气工程及其自动化班级学号姓名指导教师周向红、李晓秀、汪超、肖峰2014年月日湖南工程学院应用技术学院课程设计任务书课程名称单片机原理与应用课题电子表专业班级学生姓名学号指导老师周向红、李晓秀、汪超、肖峰审批任务书下达日期2014年月日任务完成日期2014 年月日设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个多功能电子表,具有电子时钟、时钟设置和跑表功能。
做时钟时在6位LED 显示器上显示时、分、秒,做跑表时显示范围000.0秒~999.9秒,并具有时钟启动、时钟停止、跑表启动、跑表复位、时钟调整功能键。
要求焊接好开发板,在开发板上进行调试。
设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件1、MCS-51单片机实验箱1台;2、PC机及单片机调试软件,仿真软件proteus;3、开发板1块;4、制作工具1套;5、系统设计所需的元器件。
说明书格式封面课程设计任务书目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章开发板焊接及其测试第5章软件设计与说明(包括流程图)第6章调试步骤、结果、使用说明第7章设计总结第8章参考文献附录:系统电路原理图(用PROTEL99制作)、系统程序清单。
电气与信息工程系课程设计评分表进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。
下午:借阅有关资料,总体方案讨论。
星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。
星期四、各部分方案设计,各部分设计。
星期五、设计及上机调试。
星期六、设计并调试第二周星期一:设计及上机调试。
星期二:调试,中期检查。
星期三:调试、写说明书。
星期四--星期五上午:写说明书、完成电子版并打印成稿。
星期五下午:答辩。
参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.6、周向红编《51系列单片机应用与实践教程》[M].北航出版社目录第一章绪论 (1)第二章系统总体方案设计 (2)2.1 课程设计内容要求 (2)2.2 设计思路分析 (2)第三章硬件设计 (3)3.1 系统框图 (3)3.2 单片机型号的选择 (3)3.3 显示器选择 (4)3.4 时钟电路 (4)3.5 显示电路 (5)3.6 总体电路原理图 (5)第四章开发板焊接及测试................... 错误!未定义书签。
第五章软件设计与说明. (6)5.1 软件总体框图 (6)5.2 主程序设计 (6)5.3 子程序设计 (7)5.4 跑秒程序设计框图 (7)第六章调试和使用说明 (8)使用说明 (8)第七章总结与体会 (9)参考文献 (10)附录 (10)电路图 (10)系统程序清单 (11)第一章绪论单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
通过本次课程设计对51单片机的学习以及应用,已经对单片机有了初步的了解和简单的应用能力。
数字电子表是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字表的精度,远远超过老式的钟表,钟表的数字化给人们生产带来了极大的方便,而且大大的拓展了钟表的报时功能。
数字表已经成为人们日常生活中的必须品,广泛应用于家庭,车站,码头,剧院,办公场所等,给我们的生活和学习,工作带来了极大的方便。
本课程设计设计了一个基于AT89C51单片机的电子表。
并且通过一个控制按键来实现时间的调节和是否进入省电模式,并且在数码管上显示相应的时间。
应用Proteus的ISIS软件实现了单片机电子表系统的设计与仿真。
此方法仿真效果真实、准确,并且节省了硬件资源。
第二章系统总体方案设计2.1 课程设计内容要求本课题要求以单片机为核心设计一个多功能电子表,具有电子时钟、时钟设置和跑表功能。
做时钟时在6位LED显示器上显示时、分、秒,做跑表时显示范围000.0秒~999.9秒,并具有时钟启动、时钟停止、跑表启动、跑表复位、时钟调整功能键。
要求焊接好开发板,在开发板上进行调试。
2.2 设计思路分析电子表的电路由多个部分组成,如控制按键的输入电路,单片机的时钟电路,复位电路,LED显示器段码驱动电路,LED显示器位码驱动电路,显示器电路和跑表时钟电路组成。
然后通过对以上电路的产生和调整设计出总的电路框图。
所以可根据上述条件作出相应的实时时钟电路总的框图。
然后开始设计内部驱动程序,按照相应的程序实现特定的功能个,之后按照程序的设计,将相应的管脚连接调试,看是否能实现预定的功能。
利用MCS-51内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
配合软件监控实现运行,停止,调时,调分,调秒。
该方案节省硬件成本,软件设计做够灵活,且能够使人在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,能够准确走时并实现多功能。
因此,本课题采用该方案。
第三章硬件设计3.1 系统框图图3.13.2 单片机型号的选择通过对多种单片机性能的分析,最终认为89C51是最理想的电子表开发芯片。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。
图3.23.3 显示器选择LED显示器的选择,在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。
在我们的设计中,选择6位一体的时钟型LED显示器。
6位7段共阳显示器:六位是同时显示六位阿拉伯数字,而每一个数字又是七段码显示的;七段是指一个数码显示的阿拉伯数字是由七位二进制数控制的,共阳是指相应的二进制为1时不亮,为0时亮。
在实验中显示器的作用是显.示时间。
3.4 时钟电路图3.43.5 显示电路图3.53.6 总体电路原理图图3.4第五章软件设计与说明5.1 软件总体框图图5.15.2 主程序设计主程序的初始化内容:所谓初始化,是对将要用到的51系列单片机内部部件或扩展芯片进行初始工作设定。
51系列单片机复位后,设置特殊功能寄存器。
5.3 子程序设计子程序包括了:时钟暂停显示程序,时钟运行显示程序,时钟溢出入口程序,跑秒暂停及循环显示程序,跑秒运行循环显示程序等等。
代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入,输出以及显示都采用二进制编码的十进制数或ASCII码。
因此,在程序设计时常常要代码转换。
LED动态显示程序:采用动态扫描方式时,要使得LED显示得比较均匀和有足够的亮度,需要设置适当的扫描频率。
扫描频率在70Hz左右时,能够产生足够的图形和较好的显示效果。
5.4 跑秒程序设计框图图5.4第六章调试和使用说明本系统可以先在电脑上使用Proteus仿真软件进行电路的仿真进行仿真,编程使用keil、调试工具并生成可执行文件加载到单片机中,在Proteus 中点击运行,查看运行结果是否与预期要求相符,如果仿真成功,便可以到实验板上进行实物实验。
使用说明按钮开关图如下图6.1仿真按下开始后时钟开始计时时间设定点击PAUSE/START后进入设定模式,点击SEC/MIN RESET TIMER进行设置,点击一下增加一。
完成以后点击PAUSE/START,即可保存并进行下一项设置,依次下去便可以设置秒、分和时。
设置秒设置分设置时设置时间后,程序继续将在设置时间的基础上继续运行跑秒功能第七章总结与体会在这一次课程设计当中,我进行了多方面的学习和实践,虽然当中遇到了许多的困难,但最终还是把它们一一地克服了。
学习就是这样的,要做好每一件事,都有很多的因素影响制约着我们,我们必须快速准确的适应这样的环境,通过改变自己来更快的融入社会。
有了这份经历,我觉得自己少了一分浮躁,多了一份沉稳。
我深深地感到要有科学的思维方法和学习方法是极其重要的。
刚刚拿到课程设计的题目时真不知道从哪里开始动手,课题名称里的芯片根本就没听说过。
通过上网查找资料,弄清楚了它的功能,才真正开始了设计。
但这个东西包括了几个部分,所以一定要把握好它的整体设计思路,在其框架之下,对各部分的单元电路进行分析和设计,最后经过电路的修改,参数的确定,将各个部分连接起来,形成总的电路图。
书到用时方恨少,在这次课程设计过程中遇到了很多大大小小的难题,这时才发现在知识的海洋里自己是多么的渺小,但这也激起了我学习的热情,我进行了多方面的学习和实践,最终还是把它们都克服了。
在这次课程设计过程中我还学会了与同学交流和沟通,这样才能把自己在设计过程中学到的知识进行交流,在交流中进一步巩固自己的知识。
这次课程设计只有两个星期的时间,时间比较紧张,提高工作、学习效率是唯一的办法。
有了这份经历,更让我觉得知识海洋的广博,驱使怀着好奇之心的我进一步努力学习告诉我为了填满好奇心,无时无刻不需要学习。
每一次新的认识,总是疑问重重,不断的分析解决问题、解决问题,等到最后回想起来都是如此的简单。
能学习能提高不容易,更重要的是我学会了如何解决问题,这次课程设计让我增加了自信心,懂得的越来越多,又感觉在以后的路上明白了很多知识。
同时也感谢老师的指导和共同探讨研究问题的同学们,希望在以后的学习和工作中能够进一步提高对单片机的认识和应用能力。
参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.6、周向红编《51系列单片机应用与实践教程》[M].北航出版社附录电路图系统程序ORG 0000HLJMP STARTORG 000BHLJMP INIT0START: MOV R0,#70H ;主程序开始MOV R7,#0CHINIT: MOV @R0,#00HINC R0DJNZ R7,INITMOV 72H,#10 ;对连字符进行装值MOV 75H,#10MOV TMOD,#01H ;选择定时器/计数器T0的方式1MOV TL0,#0B0H ;对低位赋初值MOV TH0,#03CH ;高位赋初值SETB EASETB ET0SETB TR0START1: LCALL SCANLCALL KEYSCANSJMP START1DL1MS: MOV R6,#14H ;延时1子程序DL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RETDL20MS: ACALL SCAN ;延时20ms子程序ACALL SCANACALL SCANRET ;数码管显示程序开始SCAN: MOV A,78HMOV B,#0AHDIV AB ;时间秒的十位送给A,时间秒的个位送BMOV 71H,A ;时间秒要显示的十位MOV 70H,B ;时间秒要显示的个位MOV A,79HMOV B,#0AHDIV AB ;时间分的十位送给A,时间分的个位送BMOV 74H,A ;时间分要显示的十位送地址MOV 73H,B ;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB ;时间时的十位送给A,时间时的个位送BMOV 77H,A ;时间时显示的十位送地址MOV 76H,B ;时间时要显示的个位送地址MOV R1,#70HMOV R5,#0FEHMOV R3,#08HSCAN1: MOV A,R5 ;数码管的显示程序MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTR ;对字段表取值显示MOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET ;"0~9"和"-"的字段表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;定时/计数器T0中断程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0 ;50ms是否到20次,没有到就继续执行50ms的延时MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ;一秒的延时是否计到60次,没有就继续执行MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0 ;60分钟的延时是否计到24次,没有就继续执行程序MOV 7AH,#00OUTT0:SETB ET0 ;启动定时器T0POP PSWPOP ACCRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序JNB P1.1,KEYSCAN1 ;P1.1有按键按下则跳转到子程序JNB P1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETB EARETKEYSCAN0:LCALL DL20MS ;20ms的延时消抖JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0 ;判断按键是否松手,松手就往下执行程序INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定MOV 7CH,#00 ;按下第三次时就启动计时SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11 ;如果功能键按下则对时加一调整INC 79HCJNE A,#3CH,KEYOUT ;如果加到60则清零MOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AH ;如果功能键是按下第二次则对分进行加一调整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MS ;延时消抖程序JB P1.2,KEYOUTWAIT2: JNB P1.2,WAIT2 ;判断是否放开按键MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能键是按下第一次对时进行减一DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH ;如果功能键是按下第二次则对分进行减一CJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUT END课程设计评分表评价项目优良中及格差设计方案合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果*(10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综合评分指导教师签名:________________日期:________________注:①表中标*号项目是硬件制作或软件编程类课题必填内容;②此表装订在课程设计说明书的最后一页。