《51单片机课程设计秒表.doc》由会员分享,可在线阅读,更多相关《51单片机课程设计秒表.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微控制器技术课程设计报告设计题目:秒表专业: 供用电技术 班级: 供电141 学号: 姓名: 王晨铭 指导教师: 李昊 设计时间: 2016.6.21 微控制器技术课程设计任务书设计题目: 秒表 设计时间: 2016.6.20 设计任务: 在单片机开发板或软件仿真,编制程序,实现以下功能 1、利用定时器实现秒表功能,精确到0.1S; 2、数码管显示当前计时时间; 3、设定三个键,计时开始,停止计时和复位清零。 背景资料: 1、单片机原理与应用 2、检测技术 3、计算机原理与接口技术 进度安排: 1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务; 2、第3天,规划设计软硬件,编制程序流程、
2、绘制硬件电路。 3、第5天,动手制作硬件电路,或编写软件,并调试。 4、第7天,中期检查。 5、第9天,完善设计内容,书写设计报告。 6、第13天,提交设计报告,整理设计实物,等待答辩。 7、第14天,设计答辩。目录一、 设计任务和要求.3(1)设计任务.3(2)设计要求.3二、 设计方案与论证.3三、 单元电路设计与参数计算.4(1)时钟电路.4(2)按钮电路.4(3)显示电路.5(4)单片机.5四、 原理图及器件清单.6( 1 )总原理图.6(2)PCB图.7(3)Proteus仿真图.7(4)元器件清单.8五、 安装与调试.8(1)安装.8(2)调试.8六、 性能测试和分析.9七、 结论
3、和心得.9八、 参考文献.9题目:秒表二、方案设计与论证本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一
4、般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。 但根据显示方式的不同选择,我们可以有几种方案:方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位
5、的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略)单片机AT89C51显示电路按钮电路时钟电路三、单元电路设计与参数计算注:/单元电路设计中的网络标号的数字即为单片机的管脚/(1)时钟电路 图3-1 时钟电路如图3-1所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。该电容的的大少会影响振荡器频率的高低、振荡器的稳定性和起振的快速
6、性。(2)按钮电路 图3-2a 图3-2bA、复位按钮根据计算容抗的公式以及并联电阻变小的性质,可以知道,当S13断开时,C3的容抗大,管脚9处的电位U9为电阻R3上的压降,因而U9为低电平,复位键无效。当S13按下时,R2与C3的并联阻抗变小,R3上的压降增大,U9为高电平,复位键有效,实现复位功能。本设计中C3取值22uF,电阻R2取值100欧姆,R3取值1K欧姆。具体电路如图3-2a所示。B、开始,停止、翻页按钮 电路如图3-2b所示(3)显示电路P1口控制显示的是十位,p0口控制显示的是个位,P2口控制显示的是十分位。不同的数码管显示方式,对应的最适合的共阴或者共阳级的数码管也不同。静
7、态显示的适宜选共阳的数码管,动态显示的适宜选共阴的数码管。如果动态显示方式下选择共阳的数码管,位选端直接用单片机驱动则数码管的亮度不够,因而应该在位选端使用上拉电阻以提高数码管的驱动电流,但因为显示那个的数据段选的数目不同,故而需要用电阻对各段进行限流,以保证显示的每个数据亮度相同。相同情况下,静态显示的数码管的亮度要比动态的亮。(4)单片机单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言了编写程序主程序流程图如下所示,具体程序见电子档。主程序流程图:程序开始程序初始化P1.7=?0开各中断P3.3=?0计五次?翻页调用显示子程序关定时器复位四、总原理图及
8、元器件清单(1)总原理图(2) PCB图 (3)Proteus仿真图 (4)元器件清单1) AT89C51的引脚图和数码管5101BS的引脚图 图4-3a AT89C51引脚图 图4-3b 5101引脚图2)元器件总清单元件名称数量备注元件名称数量备注5101B3块AT89C511块按钮4个排阻1个8个引脚拨动开关1个电容2个33pF发光二极管1个红色电容1个100uF电阻2个1K晶振1个12MHz电阻1个100殴连接器con2五、安装与调试(1)安装制板的顺序依次是:画原理图、做封装、在原理图中添加元器件对应的封装、布PCB板、改焊盘大少、打印PCB图、用快速制板机将PCB图烤制到铜板上、腐
9、蚀铜板、钻孔、放置元器件、烙铁焊好器件。一块电路板就安装完毕了。(2)调试 将外部电源接至电路板上,检验电路板是否完全实现设计要求。本设计中,发现按钮功能完全符合设计要求,但是数码管的显示中有些段码不亮,从而显示的数据乱码,用万用表检测对应的管脚是否有电压,发现焊盘有虚焊,引脚与引脚之间有短路,排查后电路板实现设计要求。六、性能测试与分析 所制电路板虽然能实现设计中要求的功能,但是在实际使用中还是存在着许多缺陷。这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。七、结论与心得 单片机是我所学专业的主
10、要课程之一,不仅培养了我综合运用所学知识,发现,提出,分析和解决实际问题的能力,而且提高了我实际动手操作能力.现实生活中,单片机在应用可以说得是无处不在。因此在大学中说掌握单片机的开发技术是十分重要的,也是十分必要的。我在刚刚拿到课程设计题目时有点迷惘,毕竟在前八周的理论学习中没有扎实的掌握单片机的理论知识,面对一块块的芯片和五颜六色的导线,不知道如何下手,好在通过上网和图书馆查阅相关资料,自己认真钻研以及虚心询问同学,终于咸鱼大翻身,游逆而上,解决了一个又一个的困难和障碍,成功完成了任务。 通过本次的单片机课程设计,不仅丰富了我的理论知识,而且在实践过程中更令我学会了坚持、耐心和努力。此次单
11、片机课程设计需要运用到许多之前所学过的知识,令我认识到自己以前学习的一些不足之处,例如对以前所学知识的理解不够深刻,掌握得不够牢固,运用不够灵活。这让我懂得了认真学习的重要性,以及要孜孜不倦地钻研所学过的知识,做得融会贯通,不能一览而过,不求甚解。在边学习边动手的过程中,我对89C51单片机的构造以及原理有了进一步的了解,同时也加深和巩固了我对单片机汇编语言的认识。除此之外,由于是第一次做单片机,因此在此次课程设计的过程中,无论是电路绘制还是汇编语言编写都难免遇到了不少困难和障碍,例如汇编语言编写出错、电路元件无从入手等。在面对困难和障碍时,我庆幸自己没有选择退缩和逃避,而是通过各种方法,迎难
12、而上,以坚持、耐心和努力勇敢无畏地面对困难,克服困难,解决困难。让我发现问题、分析问题、解决问题以及动手实践的能力都有了很大的提高,并了解到理论知识与实践相结合的重要意义。 从这次的课程设计中,我才真正明白理论结合实际的道理,在以后的学习中,更要把理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机即是如此,出色的程序最终用实际操作来实现才是完美。十分庆幸拥有这次课程设计,让我受益匪浅。八、参考文献(1)单片机原理及接口技术 张毅刚 彭喜元著 人民邮电出版社(2)单片机课程设计实例指导 李光飞等编著 北京航空航天大学出版社(3)51系列单片机原理、开发与应用实例 孙进平等编著 (4)单
13、片机程序设计实例 先锋工作室编著 清华大学出版社(5)电子工程师之家 、豆丁网 、百度、搜狗、电子工程专辑 等等附程序如下: D EQU 60H E EQU 61H F EQU 62H G EQU 63H H EQU 64H I EQU 65H ORG 0000H LJMP MAIN ORG 000BH ;定时器T0的入口地址LJMP DINGSHIORG 0013H ;外部中断1的入口地址LJMP STOP1 ORG 0030H ;主程序入口地址MAIN: MOV P0,#0C0H ;置初值MOV P2,#0C0H MOV P1,#0C0HMOV DPTR,#TABLE ;数据指针指向表头地
14、址SETB EA ;开中断 SETB EX0 SETB EX1 SETB ET0SETB PX0 ;设中断优先级SETB PX1MOV TMOD,#01H ;工作方式为方式1START: MOV R0,#40H MOV R1,#50H MOV R2,#00HCLR P1.0 MOV TH0,#0D8H ;置计数初始值 MOV TL0,#0F0H MOV R3,#00H MOV R4,#00HMOV R7,#00H MOV B,#10 MOV SP,#30HMOV D,#60HMOV E,#61HMOV F,#62HMOV G,#63HMOV I,#65HMOV R5,#05XUNHUAN: J
15、B P1.7,START1 ;p1.7=0是开始 LCALL DELAY10;按键消抖 JB P1.7,XUNHUAN JNB P1.7,$ LJMP GN1 LJMP XUNHUAN START1: JB P3.0,XUNHUAN LCALL DELAY10 JB P3.0,XUNHUAN JNB P3.0,$ LCALL FANYE LJMP XUNHUAN FANYE: MOV A,R0 MOV R3,A MOV A,R1 MOV R4,ADEC R5 CJNE R5,#04,LOP1 MOV A,D MOV R7,ALJMP L1LOP1:CJNE R5,#03,LOP2MOV A,E
16、 MOV R7,ALJMP L1LOP2:CJNE R5,#02,LOP3MOV A,F MOV R7,ALJMP L1LOP3:CJNE R5,#01,LOP4MOV A,G MOV R7,ALJMP L1LOP4:CJNE R5,#00,FANYEMOV A,I MOV R7,ALJMP L1L1: INC R0 INC R1 INC R2 CJNE R2,#5,LOOP2 MOV R0,#40H MOV R1,#50H MOV R2,#00H LOOP2:LCALL XIANSHI RETGN1: SETB TR0 LOOP:CJNE R2,#05H,LOOP MOV R0,#40H M
17、OV R1,#50H MOV R2,#00H CLR EA AJMP XUNHUAN DELAY1: MOV R6,#2DL1: MOV H,#248 DJNZ H,$ DJNZ R6,DL1 RETDELAY10: MOV R6,#20DL2: MOV H,#248 DJNZ H,$ DJNZ R6,DL2 RETSTOP1 : PUSH ACC PUSH PSW LCALL DELAY10;延时10毫秒消抖 JB P3.3, FAN1 JNB P3.3,$ MOV A, R3 MOV R0 , A MOV A, R4 MOV R1, ADEC R5CJNE R5, #04, LOP5 MO
18、V A, R7 MOV D, ALJMP L4LOP5: CJNE R5, #03, LOP6 MOV A, R7 MOV E, A LJMP L4LOP6: CJNE R5, #02, LOP7 MOV A, R7 MOV F, A LJMP L4LOP7: CJNE R5, #01, LOP8 MOV A, R7 MOV G, A LJMP L4LOP8: CJNE R5, #00, STOP1 MOV A, R7 MOV I,A LJMP L4 L4: INC R0 INC R1 INC R2FAN1: POP PSW POP ACC RETIXIANSHI: MOV A ,R3 ;扫描
19、十分位上的数字 MOV DPTR ,#TABLE MOVC A ,A+DPTR MOV P2 ,A MOV A ,R4 ;扫描个位上的数字 MOV DPTR ,#TABLE MOVC A ,A+DPTR MOV P0 ,A MOV A ,R7 ;扫描十位上的数字 MOV DPTR ,#TABLE MOVC A ,A+DPTR MOV P1 ,A RETDINGSHI:PUSH ACC PUSH PSW DJNZ B,DH1 MOV B,#10 AJMP COUNTCOUNT: INC R3 CJNE R3,#0AH,DH2 MOV R3,#00H INC R4 CJNE R4,#0AH,DH2 MOV R4,#00H INC R7 CJNE R7,#0AH,DH2 MOV R7,#00H DH1: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0DH2: POP PSW POP ACC LCALL XIANSHI RETITABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
限制150内