




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硬件部件设计与调试实践报告题目:基本内容电子钟的设计扩展内容秒表的设计 班级:计本093班 姓名: 姜博 学号:2009021096 指导教师:王海珍2012年6月1日硬件部件设计与调试实践评分表班级计本093班姓名姜博指导教师王海珍题目:基本内容电子钟的设计扩展内容秒表的设计评分标准评分标准分数权重评分的依据得分AC工作态度10态度端正,能主动认真完成各个环节的工作,不迟到早退,出勤好。能够完成各环节基本工作,出勤较好。独立工作能力10能够独立完成各环节的工作,分析、解决问题能力强,有一定的创造性。能够在老师指导下完成各环节工作,有一定的分析、解决问题能力。硬件设计能力10电路设计合理,简捷,元器件、连线排列整齐、有序。电路设计基本合理,元器件、连线排列较整齐。软件调试能力20能够独立完成软件的设计与调试工作,程序结构清晰,逻辑严谨,功能完善。能够在老师指导下完成软件的设计与调试工作,程序功能较完善。成果演示及答辩20整体工作情况稳定,运行情况过程中无故障发生,能准确回答老师提出的问题。整体工作情况较好,能够完成各项功能,回答问题基本正确。实习报告30格式规范,层次清晰,设计思想明确,解决问题方法合理,体会深刻。格式较规范,设计思想基本明确,解决问题方法较合理。总分指导教师(签字):注:介于A和C之间为B级,低于C为D级和E级。按各项指标打分后,总分在90100为优,8089为良,7079为中,6069为及格,60分以下为不及格。 硬部件设计与调试实践报告 基于单片机的电子钟和秒表的设计一、实践的目的与意义 二十多年来,电子计算机技术已广泛应用于测试领域中。电子计算机对人类社会的进步和发展有着阶层的飞跃,它是现代化社会的象征,是人们工作、学习、生活不可缺少的。在近几年发展起来的智能仪器,无论是在测量的灵敏度、准确度、可靠性、功能等方面,还是在解决测试技术问题的深度及广度方面都有了巨大的发展,它以一种崭新的面貌展现在人们的面前。随着大规模集成电路及计算机技术的迅速发展,智能仪器将会有更广阔的应用前景。而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得以在智能仪器中被广泛的应用。本次设计是用51系列单片机中的AT89S51制作简易电子钟。电子钟是智能化仪器仪表的一种,它可广泛应用于工业、农业、日常生活等领域。它以微控制器为核心,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表发展的新方向,具有一定的实用价值。本次采用的AT89S51 是一种低功耗,高性能的CMOS 8位微型计算机,与工业上标准的80C51和8051的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。正因为它有这么多特点,所以在实现本次设计的简易电子钟系统中不需外部资源扩展。简易电子钟能正确反映实际时间值,能完成时、分、秒的显示调整。本次简易电子钟课程设计采用ASM51软件完成用汇编语言编写。通过本次设计能让我们对专业的电子画图软件(AUTOCADl)、51系列单片机的工作原理、对汇编语言编写程序有更深刻的了解。本次设计由于时间仓促以及设计者水平有限,难免存在着一些不足和错漏之处,诚肯和大家一起研究探讨,在此特别感谢老师提出的宝贵意见和一直以来的耐心指导。二、硬件电路原理Dais系列单片机仿真实验系统的MCS51单片机实验与仿真由管理CPU89C52系统单元、目标CPU8032或438单元、接口实验单元和内置稳压电源组成,通过RS232C串行接口与PC微机相连。1. 89C51引脚图: 图3 89C51引脚图2.单片机内部结构图:图4单片机内部结构图3.实验系统硬件布局:图2.1 Dais-52PH+单片机实验系统硬件布局示意图该系统自带6个8段共阴极数码管,同时该系统还自带一个4*8的32自定义键盘,下面介绍显示和控制硬件原理图。(1)显示电路原理图(数码管)图2.2 显示电路原理图LED数码管是由发光二极管构成的,亦称半导体数码管。将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成“8”字,再把发光二极管另一电极作笔段电极,就构成了LED数码管。若按规定使某些笔段上的发光二极管发光,就能显示从09的系列数字。同荧光数码管(VFD)、辉光数码管(NRT)相比,它具有:体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL、CMOS电路兼容等的数显器件。+、-分别表示公共阳极和公共阴极。ag是7个笔段电极,DP为小数点。另有一种字高为76mm的超小型LED数码管,管脚从左右两排引出,小数点则是独立的。本系统利用6位LED数码管显示时间,共阴极结构。(2)控制电路原理图(键盘)图2.3 键盘原理图本实验中A为初始化按键,B为秒表功能。三、软件设计思想及流程图本次硬部件设计涉及到的功能为电子钟,秒表及倒计时,所以首先得设定各种数据在内存单元中的存储位置,方便在编程时调用内存单元简单明了,不会出现调用错误而导致程序出错。内存单元的设置如下:堆栈60H7FH显示缓冲区50H55H计时区40H:0.1秒,41H43H:秒分时,48H4AH:秒表计时,4BH4DH:倒计时 键值30H秒表状态31H00H:设置时分秒 , 01H:显示时分秒04H:秒表状态, 05H:显示倒计时时间 09H:设置倒计时初,0AH:倒计时结束 这些内存单元中,除了位地址和输入缓冲区中的数据是十进制外,其余的内存单元中存储的都是BCD码,所以用于显示和存入数据时一定要转换为相应的进制,例如取出用于显示时就得拆分BCD码,从缓冲区中写入数据时又要合并为BCD码。(1)主程序流程图(2)秒表功能流程图YYYYNNNN开始是否按功能切换键系统初始化是否按秒表暂停键是否按秒表启动键是否按秒表清零键切换秒表秒表计时暂停秒表显示时间 图3.2 秒表程序流程图定时器1有两个功能,实现秒表的控制和倒计时定时器1用于定时10ms=0.01s,用于实现秒表的控制。本设计所用的单片机内部晶振为6MHz,因此一个机器周期为2s,要得到10ms,应该计数5000次。因此计数初值=65536-5000=60536=EC78。这是在主程序中应该设定的,但由于计数初值大于255,所以不能采用自动重装计数初值的工作方式,只能在中断服务程序中重新装入初值,为了保证定时的尽量精确,采用在当前计数器值的基础上加上计数初值。 (3)中断服务程序流程图中断服务程序开始保护现场,设置工作寄存器为2组中断是否十次,R7-1=0? 否 是重新设定计数器R7=10调用时间调整子程序判断闹钟时间是否到达否 是调用响铃子程序重新装入定时器计数初值恢复现场图3.3 定时器0服务程序流程图开始保护现场设置为第1组工作寄存器中断满10次?重新给软件计数器赋初值秒单元加1秒单元=60?秒单元清0分单元加1NNYY分单元=60?N分单元清0时单元加1时单元=24?时单元清0N重新给定时器/计数器赋初值返回恢复现场YY定时器1 中断服务程序流程图重新写入计数初值的方法:在当前计数器值的基础上加上计数初值;0.1s定时(50000个机器周期)计数器为0申请中断计数器为0申请中断重新开始计数ABC已知fosc=6MHz,则一个机器周期为2s,定时0.1S的计数值为50000A修改计数器和秒分时单元(X个机器周期)B重装计数初值(七个机器周期)C按新初值计数时间(Y个机器周期)X+7+Y=50000计数值Y=50000-X-7计数初值=65536-Y=15536+X+7=3CB0H+X+7 =3CB7H+X重新装计数初值程序段:CLR TR1 MOV A,#0B7H ADD A,TL1 MOV TL1,AMOV A,#3CHADDC A,TH1MOV TH1,A SETB TR1开始R63R0显示缓冲区首地址R1秒单元地址R1低4位送R0R0 R0+1R1高4位送R0R0 R0+1R1 R1+1(R6-1)=0?调用显示子程序2返回NY图6-7 显示子程序1时间值拆分送显示缓冲区(4)显示子程序开始设置位扫描码初值(20H)设置显示缓冲区末地址(7EH)设置循环次数(数码管个数:6)位扫描码从8155A口输出从显示缓冲区中取出要显示数字查表求出七段码七段码从8155B口输出位扫描码右移一位全扫描完?延时返回NY图6-8 显示子程序2动态显示程序(5)键盘模块扫描法的思想是,先把某一列置低电平,其余各列置高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被按下。在扫描之前,首先要确定要有按键按下,否则扫描法做无用功。检测是否有按键按下的方法是,让行线为0,读列线的值,然后取反,如果最后的值等于0,则说明又按键被按下,否则没有。当确定有键被按下时,再调用扫描程序检测出具体被按下的键的编号。通过对键盘的编码,可以设计出键盘上每一个按键代表的数值。由于使用的实验箱上已经标明每一个按键代表的数值,因此按照标明的数值,设定一个键值表(按键编号与实际输入的关系)如下所示。键值表按键编号01234567实际输入值748596AB按键编号89101112131415实际输入值102F3ECHA为初始化按键,B为秒表功能,C为倒计时功能。(6)倒计时流程图进入定时器中断服务程序保护现场,设置工作寄存器组秒减1分减1时减1低四位是否有向高四位借位否 是低四位为9,高位不变重新装入定时器计数初值恢复现场退出是否到达1秒否 是是否工作在秒表状态否 是取秒单元秒是否为0否 是秒等于59,取分单元分是否为0 否 是分等于59,取时单元时是否为0 否 是倒计时结束四、软件设计过程中遇到的问题及解决方法本次课程设计与我们以往的相比难度有所增加,主要是此次设计对知识的要求较为复杂,我们用到了单片机的综合知识,所以,才开始时,我们不知道从何下手。不过后来在老师的帮助下,以及自己不断的查找资料,和同学商量,终于开始有点头目了,慢慢的便进入了状态。有一个问题就是将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多是平时的实验遇到过的,例如:输入的分号格式不正确,零和字母O弄混淆了,CJNE写成了CJNZ等等,幸好这些错误在平时的实验中遇到了,所以改错误很容易,但同时也说明了,平时的错误现在还在犯,证明错误我还没有完全的改正,这点我们以后一定要注意了。争取错误犯了两次就不能在犯了。经过多次的修改和向别人请教,错误都排除了,编译通过了,但功能没有达到设计的要求,最后,经过几天在机房的努力,终于实现了时钟的全部要求。程序代码: ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 ORG 001BH LJMP INTT1 ORG 0100HMAIN: MOV SP,#60H MOV 31H,#0 MOV 20H,#0FEH ;(00H)=0 MOV 21H,#0FFH MOV P1,20H LCALL SHEZHI1 MOV 20H,#0FDH MOV P1,20H MOV 40H,#10 SETB EA SETB ET0 MOV TMOD,#11H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0LL: LCALL KEY LCALL KEYC SJMP LL; T0中断服务程序 功能:计时INTT0: PUSH ACC PUSH PSW SETB RS1 SETB RS0 DJNZ 40H,DOWN MOV 40H,#10 MOV R0,#41H MOV A,R0 ; 判秒是否到60 ADD A,#1 DA A MOV R0,A CLR C SUBB A,#60H JC DOWN MOV R0,#0 INC R0 MOV A,R0 ; 判分是否到60 ADD A,#1 DA A MOV R0,A CLR C SUBB A,#60H JC DOWN MOV R0,#0 INC R0 MOV A,R0 ; 判时是否到24 ADD A,#1 DA A MOV R0,A CLR C SUBB A,#24H JC DOWN MOV R0,#0 INC R0 MOV A,R0 MOV R4,A ;月份送R4,本月天数送R5DOWN: CLR 07HDOWN2: JB 06H,DOWN4DOWN4: CLR TR0 MOV A,#0B7H ADD A,TL0 MOV TL0,A MOV A,#3CH ADDC A,TH0 MOV TH0,A SETB TR0 POP PSW POP ACC RETI;T1中断服务程序工作寄存器第2组功能:04H=0:秒表计时,05H0:倒计时INTT1: PUSH ACC PUSH PSW CLR RS0 SETB RS1 MOV R0,#48H MOV A,R0 ADD A,#1 DA A MOV R0,A JNC DOWN1 JNB 04H,INTM JNB 05H,INTD SJMP DOWN1INTM: MOV R0,#49H MOV A,R0 ADD A,#1 DA A MOV R0,A CLR C SUBB A,#60H JC DOWN1 MOV R0,#0 INC R0 MOV A,R0 ADD A,#1 DA A MOV R0,A CLR C SUBB A,#60H JC DOWN1INTD: MOV R0,#4BH MOV A,R0 JZ INTD1 CLR C SUBB A,#1 JNB AC,INTD2 ANL A,#0F9H SJMP INTD2INTD1: MOV R0,#59H SJMP INTD3INTD2: MOV R0,A JNC DOWN1INTD3: INC R0 MOV A,R0 JZ INTD4 CLR C SUBB A,#1 JNB AC,INTD5 ANL A,#0F9H SJMP INTD5INTD4: MOV R0,#59H SJMP INTD6INTD5: MOV R0,A JNC DOWN1INTD6: INC R0 MOV A,R0 JZ INTD7 CLR C SUBB A,#1 JNB AC,INTD8 ANL A,#0F9H SJMP INTD8INTD7: CLR 0AH CLR TR1 SJMP DOWN3INTD8: MOV R0,ADOWN1: CLR TR1 MOV A,#07FH ADD A,TL1 MOV TL1,A MOV A,#0ECH ADDC A,TH1 MOV TH1,A SETB TR1DOWN3: POP PSW POP ACC RETI;动态显示程序工作寄存器第1组段选口:FFDCH位选口:FFDDH 显示缓冲区:50H53HDISP: PUSH ACC PUSH PSW SETB RS0 CLR RS1 LCALL DISP1 MOV R2,#6 MOV R3,#01H MOV R0,#50HLP2: MOV DPTR,#LEDTAB MOV A,R0 INC R0 MOVC A,A+DPTR MOV DPTR,#0FFDCH MOVX DPTR,A MOV DPTR,#0FFDDH MOV A,R3 MOVX DPTR,A RL A MOV R3,A MOV R7,#0 DJNZ R7,$ DJNZ R2,LP2 POP PSW POP ACC RET;数字分离程序 R0:计时单元地址 R1:显示缓冲区地址DISP1: PUSH ACC PUSH PSW JNB 00H,LNN JNB 02H,LNN JNB 09H,LNN JNB 0BH,LNN JB 01H,LN1 MOV R0,#41H ;显示时分秒 SJMP LN4LN1: JB 03H,LN2 MOV R0,#44H ;显示年月日 SJMP LN4LN2: JB 04H,LN3 MOV R0,#48H ;显示秒表 SJMP LN4LN3: JB 05H,LN4 MOV R0,#4BH ;显示倒计时LN4: MOV R1,#50H MOV R2,#3LP1: MOV A,R0 ANL A,#0FH MOV R1,A INC R1 MOV A,R0 SWAP A ANL A,#0FH MOV R1,A INC R1 INC R0 DJNZ R2,LP1LNN: POP PSW POP ACC RET;键盘扫描程序 行线口:0FFDDH 列线口:0FFDEH 键值:30H单元KEY: LCALL DISP MOV DPTR,#0FFDDH MOV A,#0 MOVX DPTR,A INC DPTR MOVX A,DPTR CPL A ANL A,#0FH JZ KEY LCALL DISP LCALL DISP MOV DPTR,#0FFDDH MOV A,#0 MOVX DPTR,A INC DPTR MOVX A,DPTR CPL A ANL A,#0FH JZ KEY JB 06H,LP4 SETB 07HLP4: MOV R2,#0FEH MOV R3,#8 MOV R4,#0LP3: MOV DPTR,#0FFDDH MOV A,R2 MOVX DPTR,A RL A MOV R2,A INC DPTR MOVX A,DPTR CPL A ANL A,#0FH JNZ SCAN INC R4 DJNZ R3,LP3 SJMP KEYSCAN: JNB ACC.0,TKEY0 MOV A,#0 SJMP ENDLPTKEY0: JNB ACC.1,TKEY1 MOV A,#8 SJMP ENDLPTKEY1: JNB ACC.2,TKEY2 MOV A,#10H SJMP ENDLPTKEY2: JNB ACC.3,RETKEY MOV A,#18HENDLP: ADD A,R4 MOV DPTR,#KEYTAB MOVC A,A+DPTR MOV 30H,ARETKEY: MOV DPTR,#0FFDDH MOV A,#0 MOVX DPTR,A INC DPTR MOVX A,DPTR CPL A ANL A,#0FH JNZ RETKEY RET;键处理程序A设置时间初值 B秒表方式C倒计时方式KEYC: PUSH ACC MOV A,30H CLR C SUBB A,#10 JNC CULI LJMP KEYCRETCULI: MOV DPTR,#CULITAB RL A JMP A+DPTRCULITAB:SJMP CULIA SJMP CULIB SJMP CULICCULIA: ORL 20H,#0BFH ;设置时间初值 ANL 20H,#0FEH MOV P1,20H LCALL SHEZHI1 MOV 20H,#0FDH MOV P1,20H SJMP KEYCRETCULIB: JNB 04H,CD1 MOV 32H,20H ;秒表CD1: ORL 20H,#0BFH ANL 20H,#0EFH MOV P1,20H LCALL MIAOBIAO SJMP KEYCRETCULIC: ORL 20H,#0BFH ;倒计时 ANL 20H,#0DFH CLR 09H MOV P1,20H LCALL SHEZHI1 SETB 09H MOV 48H,#0 MOV TL1,#78H MOV TH1,#0ECH SETB TR1 SETB ET1 SJMP KEYCRETKEYCRET:POP ACC RET;设置时间,倒计时初值;00H0,设置时间初值 05H0,设置倒计时初值SHEZHI1:LCALL QING MOV R0,#55H MOV R7,#6SZ11: LCALL KEY MOV R0,30H DEC R0 DJNZ R7,SZ11 MOV R0,#50H MOV R6,#3 JB 00H,SZ12 MOV R1,#41H SJMP SZ13SZ12: JB 09H,SZ14 MOV R1,#4BHSZ13: MOV A,R0 MOV R5,A INC R0 MOV A,R0 SWAP A ADD A,R5 MOV R1,A INC R0 INC R1 DJNZ R6,SZ13SZ14: RET;秒表程序 31H单元秒表状态0:非秒表状态或退出秒表状;1:进入秒表状态,显示6个0 2:启动秒表计时 3:停止计时MIAOBIAO:PUSH ACC MOV R7,31H CJNE R7,#00,MI2 MOV R0,#48H MOV R2,#3MI1: MOV R0,#0 INC R0 DJNZ R2,MI1 INC R7 SJMP MIRETMI2: CJNE R7,#01,MI3 MOV TL1,#78H MOV TH1,#0ECH SETB TR1 SETB ET1 INC R7 SJMP MIRETMI3: CJNE R7,#02H,MI4 CLR TR1 CLR ET1 INC R7 SJMP MIRETMI4: MOV 20H,32H MOV P1,20H MOV R7,#0 MIRET: MOV 31H,R7 POP ACC RET;清除显示缓冲区程序QING: MOV R0,#50H MOV R7,#6QC: MOV R0,#10H INC R0 DJNZ R7,QC RET;七段码表LEDTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH DB 0FFH,0CH,89H,7FH,0BFH;键值表KEYTAB: DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH END五、心得与体会通过本次设计,我们系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了89C51定时器的使用和中断处理器程序的编程方法。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。在调试电路的过程中也积累了一些宝贵的经验。此次单片机课程设计,从选题到定稿,从理论到实践,在整整两个星期里,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次的课程设计还让我学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,不轻言放弃。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版食品销售合同签订与食品安全监管流程图
- 2025年铁路车辆运输合同标准模板
- 2025版三亚地下综合管廊非开挖顶管监理合同
- 诺如病毒知识培训的意义
- 2025年度房贷合同样本及注意事项
- 2025年度电子商务合作保密协议范本(含数据安全)
- 2025年艺术品贷款居间服务专项协议
- 说课稿课件制作要点
- 语音机器人知识培训课程课件
- 2025深圳市商品房预售合同范本
- 2025年机关事务管理局招聘考试大纲
- 中老年唱歌教学课件下载
- 主城区积水易涝点排水防涝管网更新改造工程可行性分析报告(参考模板)
- 早期现代舞课件
- 碳固持效应研究-洞察及研究
- 2025年北师大新版数学三年级上册第六单元《乘除法的应用(二)》教案
- 口腔医保政策解读
- 2024浙江艺术职业学院单招《数学》模拟题库附答案详解(精练)
- 油菜病虫害防治课件
- 小学一年级体育上册教案表格式
- 基于主题语境的高中英语以读促写教学设计研究
评论
0/150
提交评论