当前位置:文档之家› 单片机工程实践报告

单片机工程实践报告

单片机工程实践报告LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】学校代码:10128单片机工程实践(第五组)题目:电子秒表组长:组员:指导教师:设计时间:2016年3月7日——2016年3月18日内蒙古工业大学课程设计(论文)任务书课程名称:单片机系统综合设计与实践学院:信息工程学院班级:学生姓名:学号:指导教师:、学生姓名:学号:学生姓名:学号:一、题目电子秒表二、目的与意义本课程为培养学生计算机应用能力的实践性课程,也是一门重要的专业技术课程。

它将使学生不仅理论上掌握单片微型计算机的基本原理、单片机应用系统的构成、系统程序设计,进一步加强学生单片机应用系统软、硬件开发的能力,并能将电路、模拟电子技术、数字电子技术和微机原理等课程的知识有机地结合起来,做到学用结合。

一、设计目的 (1)二、设计任务分析 (1)1.题目:电子秒表 (1)2.任务可行性分析 (1)3.任务分工 (2)4.使用软件环境使用简介 (2)5.硬件自检报告 (2)(1)蜂鸣器自检硬件编程框图及相关说明 (2)(2)键盘自检硬件编程框图及相关说明 (4)(3)LED自检硬件编程框图及相关说明 (8)(4)电子秒表硬件编程框图以及相关说明 (12)三、任务框图分析 (13)四、程序清单 (13)五、设计体会 (21)六、参考资料 (23)一、设计目的通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有蜂鸣器自检、七段LED 显示自检、键盘自检等接口电路的单片机应用系统的设计思想和方法。

学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。

通过上述过程提高学生工程实践能力和素质。

二、设计任务分析1.题目:电子秒表2.任务可行性分析功能:(1)显示时间范围0~59分59秒(2)跑表时间范围0~59秒99毫秒电子秒表具有时钟显示和秒表计时功能,时钟显示时间范围为00分00秒至59分59秒,秒表计时范围为00秒00毫秒至59秒99毫秒。

当显示时钟时,具有设置时间的功能。

按一下K1键进入秒位的设置模式,此时按K2键可实现秒位加1,按K3键可实现秒位减1,使秒位在00至59范围内自由切换;按两下K1键进入分位的设置模式,此时按K2键可实现分位加1,按K3键可实现分位减1,使分位在00至59范围内自由切换,以此来实现对时钟显示时间的设置。

时钟显示功能与秒表计时可以通过K4键实现功能切换(当处于时钟显示功能时,可以通过按K4键进入秒表功能;当处于秒表计时功能时,可以通过按K4键进入时钟显示功能)。

当处于秒表计时时,不影响时钟的正常走时。

当单片机运行在秒表计时功能时,可以通过按下K1键使得秒表开始计时,通过按下K2键使得秒表计时暂停(当秒表没有开始计时时,此时按下K2键无动作),通过按下K3键实现秒表的清零。

硬件环境:LED显示器、键盘、蜂鸣器3.任务分工(组长):查资料,部分大任务程序流程图的绘制,各个小任务主程序的编制和框图的绘制,策划硬件如何实现具体功能。

(副组长):完成大任务的主程序编制,各个小任务子程序的的编写与整理,部分大任务程序流程图的绘制,完成分配给的子程序的编制。

(副组长):查资料,大任务的主程序流程图的绘制,各个小任务主程序的编制和框图的绘制,实验报告整理与排版。

4.使用软件环境使用简介ARM发布Keil μVision4集成开发环境(IDE),用来在微控制器和智能卡设备上创建、仿真和调试嵌入式应用。

μVision4 IDE是为增强开发人员的工作效率设计的,有了它可以更快速、更高效地开发和检验程序。

通过μVision4 IDE中引入的灵活的窗口管理系统,开发人员可以使用多台监视器,在可视界面任何地方全面控制窗口放置。

新用户界面可以更好地利用屏幕空间,更有效地组织多个窗口,为开发应用提供整齐高效的环境。

5.硬件自检报告(1,硬件分析2,编程框图3,程序流程4,硬件自检报告)至少含有:蜂鸣器自检:确定蜂鸣器正确参见【例7-4-4】键盘自检:确定键盘正确参见【例7-4-14 】LED 显示器自检:确定LED 显示器每一段均正确参见【例7-4-16】(1)蜂鸣器自检硬件编程框图及相关说明硬件分析:通过电路图可知当口置1时蜂鸣器不工作,当口置0时蜂鸣器工作。

电路图: 编程框图: 程序流程:;************************************ ;蜂鸣器自检 ;************************************ BEEP: mov r2,#100 mov r3,#5000 mov r4,#65536 LCALL DELAY1 SETB LCALL DELAY1 CLR djnz r2,ST1 ST2: LCALL DELAY2 ;1kHZ SETB LCALL DELAY2 CLR djnz r3,ST2 ST3: LCALL DELAY3 ;20kHZ SETB LCALL DELAY3CLRdjnz r4,ST3JMP BEEPDELAY1: mov r0,#5 ;延时 loop1: mov r1,#250loop2: djnz r1,loop2djnz r0,loop1retDELAY2: mov r0,#5 ;延时loop3: mov r1,#50loop4: djnz r1,loop4djnz r0,loop3retDELAY3: mov r0,#4 ;延时loop5: mov r1,#6loop6: djnz r1,loop6djnz r0,loop5ret硬件自检报告:执行程序,蜂鸣器发声,来检测蜂鸣器对设定频率的响应,来达到自检的目的。

(2)键盘自检硬件编程框图及相关说明硬件分析:通过电路图可知通过,,控制Y7口控制74LC245的使能端,进而可以控制是否将键盘的状态送入单片机处理。

AT89C51电路图:编程框图:程序流程:;********************************************************;按键检测;********************************************************ORG 0000HAJMP KEYORG 30HKEY: ACALL SEL5MOV R0,#80HMOV P0,R0 ;将负号的七段码送到P0口ACALL TIME2ACALL KEYIN ;读键CPL A ;将采集的A取反ANL A,#0FH ;将拨盘屏蔽JZ KEY ;没有按键,跳回ACALL TIME1 ;有按键,延时10ms,去抖动ACALL KEYIN ;再按键CPL A ;恢复有效键码ANL A,#0FHJZ KEYL0: RRC A ; 判断是否为K1按下JC KEY1 ; 有进位则K1按下,跳到KEY1L1: RRC AJC KEY2L2: RRC AJC KEY3L3: RRC AJC KEY4ACALL KEYOFFAJMP KEYKEYIN:MOV P0,#0H ;关闭LED显示ACALL SEL8 ;打开三态门MOV P1,#0FFH ;设置P1口为输入口MOV A,P1 ;采集键盘和拨盘的状态ACALL SEL7 ;关闭三态门RETTIME1: MOV R1,#5 ;延时10msLP1: MOV R2,#5LP2: DJNZ R2,LP2DJNZ R1,LP1RETTIME2: MOV R1,#1FHLP3: MOV R2,#25HLP4: DJNZ R2,LP4DJNZ R1,LP3RETKEY1: ACALL SEL1 ;位选最高位MOV R0,#0CHMOV P0,R0 ;将1的七段码送到P0口ACALL TIME2SJMP L1KEY2: ACALL SEL2MOV R0,#0B6HMOV P0,R0 ;将2的七段码送到P0口ACALL TIME2SJMP L2KEY3: ACALL SEL3MOV R0,#9EHMOV P0,R0 ;将3的七段码送到P0口ACALL TIME2SJMP L3KEY4: ACALL SEL4MOV R0,#0CCHMOV P0,R0 ;将4的七段码送到P0口ACALL TIME2SJMP L0SEL1: CLRCLRCLRRETSEL2: CLRCLRSETBRETSEL3: CLRSETBCLRRETSEL4: CLRSETBSETBRETSEL5: SETBCLRCLRRETSEL7: SETBSETBCLRRETSEL8: SETBSETBSETBRETKEYOFF:ACALL KEYINORL A,#0F0H ;屏蔽拨盘RET硬件自检报告:通过依次按键K1,K2,K3,K4让数码管的第一位,第二位,第三位,第四位分别显示数字1,2,3,4,按钮按下时对应的数码管显示相应的数,按钮松开时数码管停止显示,同时按下多个按钮时,数码管同时显示相应的数,以此来检测各个按键的工作情况,来达到自检的目的。

(3)LED自检硬件编程框图及相关说明硬件分析:通过电路图可知七段数码管的位选是由单片机的,,口控制的74LS138控制的,而数码管要显示的码字由P0口提供。

电路图:编程框图:程序流程:;************************************ ;LED检测;************************************ ORG 0000HAJMP MAINORG 30HMAIN: CLR ;第一位数码管显示CLRCLRACALL DISPCLR ;第二位数码管显示CLRSETBACALL DISPCLR ;第三位数码管显示SETBCLRACALL DISPCLR ;第四位数码管显示SETBSETBACALL DISPSETB ;第五位数码管显示CLRCLRACALL DISP1AJMP MAINDISP: MOV A, #7EH ;显示数字0 MOV P0,AACALL DELAYMOV A,#0CH ;显示数字1MVO P0,AACALL DELAYMOV A,#B6H ;显示数字2MVO P0,AACALL DELAYMOV A,#9EH ;显示数字3MVO P0,AACALL DELAYMOV A,#CCH ;显示数字4MVO P0,AACALL DELAYMOV A,#DAH ;显示数字5MVO P0,AACALL DELAYMOV A,#FAH ;显示数字6MVO P0,AACALL DELAYMOV A,#0EH ;显示数字7MVO P0,AACALL DELAYMOV A,#FEH ;显示数字8MVO P0,AACALL DELAYMOV A,#DEH ;显示数字9MVO P0,AACALL DELAYMOV A,#6EH ;显示字母AMVO P0,AACALL DELAYMOV A,#FEH ;显示数字BMVO P0,AACALL DELAYMOV A,#72H ;显示数字CMVO P0,AACALL DELAYMOV A,#7EH ;显示数字DMVO P0,AACALL DELAYMOV A,#F2H ;显示数字EMVO P0,AACALL DELAYMOV A,#E2H ;显示数字FMVO P0,AACALL DELAYMOV A,#FFH ;全显示MVO P0,AACALL DELAYDISP1:MOV A, #0CH ;显示数字1 MVO P0,AACALL DELAYMOV A, #8CH ;显示数字-1MVO P0,AACALL DELAY DELAY: MOV R6,#0FFH LOOP1:MOV R7,#0FFH LOOP2:DJNZ R7,LOOP2 DJNZ R6,LOOP1MOV R6,#0FFH LOOP3:MOV R7,#0FFH LOOP4:DJNZ R7,LOOP4DJNZ R6,LOOP3RET硬件自检报告:LED显示器有共阴极和共阳极两种结构。

相关主题