单片机工程实践报告.docx
《单片机工程实践报告.docx》由会员分享,可在线阅读,更多相关《单片机工程实践报告.docx(21页珍藏版)》请在冰点文库上搜索。
单片机工程实践报告
LGGROUPsystemofficeroom【LGA16H-LGYY-LGUA8Q8-LGA162】
单片机工程实践报告
学校代码:
10128
单片机工程实践
(第五组)
题目:
电子秒表
组长:
组员:
指导教师:
设计时间:
2016年3月7日——2016年3月18日
内蒙古工业大学课程设计(论文)任务书
课程名称:
单片机系统综合设计与实践学院:
信息工程学院班级:
学生姓名:
学号:
指导教师:
、
学生姓名:
学号:
学生姓名:
学号:
一、题目
电子秒表
2、目的与意义
本课程为培养学生计算机应用能力的实践性课程,也是一门重要的专业技术课程。
它将使学生不仅理论上掌握单片微型计算机的基本原理、单片机应用系统的构成、系统程序设计,进一步加强学生单片机应用系统软、硬件开发的能力,并能将电路、模拟电子技术、数字电子技术和微机原理等课程的知识有机地结合起来,做到学用结合。
课程通过已实际应用的智能仪表为实训对象,其电路包含了单片机应用系统的基本部分,即:
8位单片机、A/D模数转换器、七段LED动态显示电路、RS-485串行通信及Watchdog等接口电路,是一个理论与实践相结合的良好载体。
课程采用项目组运作模式,使学生熟悉理论课程的相关知识,通过具体项目下线要求、验收方式等环节,充分发挥不同程度学生的学习积极性、创新精神及合作意识,培养学生的工程设计思想和科学研究能力,使学生在分析问题、解决问题和动手能力等方面有所提高,并了解工程项目设计实施的全过程,达到提高学生工程实践能力和素质的目标。
三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等)
1、要求
(1)题目任选。
(重复性不可超过30%)
(2)2-3人一组,自由组合。
(3)分工明确,小组成员分配任务量合适。
(4)实践完成后,每小组写一份综合设计报告。
主要内容:
题目、分工情况、系统可行性分析、系统结构设计说明、程序结构框图设计说明、各模块设计说明、程序清单、体会。
2、设计过程要求
(1)完成对所选任务的分析报告。
(如:
系统所需要完成的功能是什么,需要哪些硬件环境支持,小组成员分工、确定自己的设计思想)
(2)完成硬件环境的检测程序。
蜂鸣器自检:
确定蜂鸣器正确参见【例7-4-4】
键盘自检:
确定键盘正确参见【例7-4-14】
LED显示器自检:
确定LED显示器每一段均正确参见【例7-4-16】
(3)完成系统的结构设计,画出任务流程框图。
(4)完成系统软件设计与调试。
(5)每组写一份综合设计报告
3、设计理念
必须始终保持和发展本课程突出的教学特点:
内容综合、按工程项目实施、学生设计自由度较大、对学生的综合能力要求高、挑战性强。
四、工作内容、进度安排
第一周:
1、自由分组,选定任务,领硬件设备。
(题目重复性不可超过30%)
2、完成对所选任务的分析报告。
(如:
系统所需要完成的功能是什么,需要哪些硬件环境支持,小组
成员分工、确定自己的设计思想)
3、确定任务思路,完成硬件环境的检测程序。
蜂鸣器自检:
确定蜂鸣器正确参见【例7-4-4】
键盘自检:
确定键盘正确参见【例7-4-14】
LED显示器自检:
确定LED显示器每一段均正确参见【例7-4-16】
4、画出主任务程序框图
5、指导教师分阶段检查各小组进度,给出成绩。
第二周:
1、根据主任务程序框图,进行系统软件设计与调试
2、指导教师验收各小组成果
3、各小组交实践报告
4、交硬件设备
5、主要参考文献(三篇以上)
[1]刘守义等.单片机技术基础[M].西安电子科技大学,2007.
[2]裴岩.刘利民.单片机系统综合设计与实践[M].内蒙古大学出版社.2003
[3]陈海宴.51单片机原理及应用[M].北京:
北京航空航天大学出版社.2010
[4]胡汉才.单片机原理及接口技术[M].北京:
清华大学出版社.1996
[5]李广弟等.单片机基础[M].北京航空航天出版社,2001.
[6]钟富昭等.8051单片机典型模块设计与应用[M].北京:
人民邮电出版社.2007
[7]李平等.单片机入门与开发[M].北京:
机械工业出版社.2008:
33-37.
[8]高吉祥.全国大学生电子设计竞赛培训系列教程[M].北京:
电子工业出版社.2007
审核意见
系(教研室)主任(签字)
指导教师下达时间2016年3月7日
指导教师签字:
一、设计目的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),用来在微控制器和智能卡设备上创建、仿真和调试嵌入式应用。
μVision4IDE是为增强开发人员的工作效率设计的,有了它可以更快速、更高效地开发和检验程序。
通过μVision4IDE中引入的灵活的窗口管理系统,开发人员可以使用多台监视器,在可视界面任何地方全面控制窗口放置。
新用户界面可以更好地利用屏幕空间,更有效地组织多个窗口,为开发应用提供整齐高效的环境。
5.硬件自检报告(1,硬件分析2,编程框图3,程序流程4,硬件自检报告)
至少含有:
蜂鸣器自检:
确定蜂鸣器正确参见【例7-4-4】
键盘自检:
确定键盘正确参见【例7-4-14】
LED显示器自检:
确定LED显示器每一段均正确参见【例7-4-16】
(1)蜂鸣器自检硬件编程框图及相关说明
硬件分析:
通过电路图可知当口置1时蜂鸣器不工作,当口置0时蜂鸣器工作。
电路图:
编程框图:
程序流程:
;************************************
;蜂鸣器自检
;************************************
BEEP:
movr2,#100
movr3,#5000
movr4,#65536
ST1:
CLR;200HZ
LCALLDELAY1
SETB
LCALLDELAY1
CLR
djnzr2,ST1
ST2:
LCALLDELAY2;1kHZ
SETB
LCALLDELAY2
CLR
djnzr3,ST2
ST3:
LCALLDELAY3;20kHZ
SETB
LCALLDELAY3
CLR
djnzr4,ST3
JMPBEEP
DELAY1:
movr0,#5;延时
loop1:
movr1,#250
loop2:
djnzr1,loop2
djnzr0,loop1
ret
DELAY2:
movr0,#5;延时
loop3:
movr1,#50
loop4:
djnzr1,loop4
djnzr0,loop3
ret
DELAY3:
movr0,#4;延时
loop5:
movr1,#6
loop6:
djnzr1,loop6
djnzr0,loop5
ret
硬件自检报告:
执行程序,蜂鸣器发声,来检测蜂鸣器对设定频率的响应,来达到自检的目的。
(2)键盘自检硬件编程框图及相关说明
硬件分析:
通过电路图可知通过,,控制Y7口控制74LC245的使能端,进而可以控制是否将键盘的状态送入单片机处理。
电路图:
编程框图:
程序流程:
;********************************************************
;按键检测
;********************************************************
ORG0000H
AJMPKEY
ORG30H
KEY:
ACALLSEL5
MOVR0,#80H
MOVP0,R0;将负号的七段码送到P0口
ACALLTIME2
ACALLKEYIN;读键
CPLA;将采集的A取反
ANLA,#0FH;将拨盘屏蔽
JZKEY;没有按键,跳回
ACALLTIME1;有按键,延时10ms,去抖动
ACALLKEYIN;再按键
CPLA;恢复有效键码
ANLA,#0FH
JZKEY
L0:
RRCA;判断是否为K1按下
JCKEY1;有进位则K1按下,跳到KEY1
L1:
RRCA
JCKEY2
L2:
RRCA
JCKEY3
L3:
RRCA
JCKEY4
ACALLKEYOFF
AJMPKEY
KEYIN:
MOVP0,#0H;关闭LED显示
ACALLSEL8;打开三态门
MOVP1,#0FFH;设置P1口为输入口
MOVA,P1;采集键盘和拨盘的状态
ACALLSEL7;关闭三态门
RET
TIME1:
MOVR1,#5;延时10ms
LP1:
MOVR2,#5
LP2:
DJNZR2,LP2
DJNZR1,LP1
RET
TIME2:
MOVR1,#1FH
LP3:
MOVR2,#25H
LP4:
DJNZR2,LP4
DJNZR1,LP3
RET
KEY1:
ACALLSEL1;位选最高位
MOVR0,#0CH
MOVP0,R0;将1的七段码送到P0口
ACALLTIME2
SJMPL1
KEY2:
ACALLSEL2
MOVR0,#0B6H
MOVP0,R0;将2的七段码送到P0口
ACALLTIME2
SJMPL2
KEY3:
ACALLSEL3
MOVR0,#9EH
MOVP0,R0;将3的七段码送到P0口
ACALLTIME2
SJMPL3
KEY4:
ACALLSEL4
MOVR0,#0CCH
MOVP0,R0;将4的七段码送到P0口
ACALLTIME2
SJMPL0
SEL1:
CLR
CLR
CLR
RET
SEL2:
CLR
CLR
SETB
RET
SEL3:
CLR
SETB
CLR
RET
SEL4:
CLR
SETB
SETB
RET
SEL5:
SETB
CLR
CLR
RET
SEL7:
SETB
SETB
CLR
RET
SEL8:
SETB
SETB
SETB
RET
KEYOFF:
ACALLKEYIN
ORLA,#0F0H;屏蔽拨盘
RET
硬件自检报告:
通过依次按键K1,K2,K3,K4让数码管的第一位,第二位,第三位,第四位分别显示数字1,2,3,4,按钮按下时对应的数码管显示相应的数,按钮松开时数码管停止显示,同时按下多个按钮时,数码管同时显示相应的数,以此来检测各个按键的工作情况,来达到自检的目的。
(3)LED自检硬件编程框图及相关说明
硬件分析:
通过电路图可知七段数码管的位选是由单片机的,,口控制的74LS138控制的,而数码管要显示的码字由P0口提供。
电路图:
编程框图:
程序流程:
;************************************
;LED检测
;************************************
ORG0000H
AJMPMAIN
ORG30H
MAIN:
CLR;第一位数码管显示
CLR
CLR
ACALLDISP
CLR;第二位数码管显示
CLR
SETB
ACALLDISP
CLR;第三位数码管显示
SETB
CLR
ACALLDISP
CLR;第四位数码管显示
SETB
SETB
ACALLDISP
SETB;第五位数码管显示
CLR
CLR
ACALLDISP1
AJMPMAIN
DISP:
MOVA,#7EH;显示数字0
MOVP0,A
ACALLDELAY
MOVA,#0CH;显示数字1
MVOP0,A
ACALLDELAY
MOVA,#B6H;显示数字2
MVOP0,A
ACALLDELAY
MOVA,#9EH;显示数字3
MVOP0,A
ACALLDELAY
MOVA,#CCH;显示数字4
MVOP0,A
ACALLDELAY
MOVA,#DAH;显示数字5
MVOP0,A
ACALLDELAY
MOVA,#FAH;显示数字6
MVOP0,A
ACALLDELAY
MOVA,#0EH;显示数字7
MVOP0,A
ACALLDELAY
MOVA,#FEH;显示数字8
MVOP0,A
ACALLDELAY
MOVA,#DEH;显示数字9
MVOP0,A
ACALLDELAY
MOVA,#6EH;显示字母A
MVOP0,A
ACALLDELAY
MOVA,#FEH;显示数字B
MVOP0,A
ACALLDELAY
MOVA,#72H;显示数字C
MVOP0,A
ACALLDELAY
MOVA,#7EH;显示数字D
MVOP0,A
ACALLDELAY
MOVA,#F2H;显示数字E
MVOP0,A
ACALLDELAY
MOVA,#E2H;显示数字F
MVOP0,A
ACALLDELAY
MOVA,#FFH;全显示
MVOP0,A
ACALLDELAY
DISP1:
MOVA,#0CH;显示数字1
MVOP0,A
ACALLDELAY
MOVA,#8CH;显示数字-1
MVOP0,A
ACALLDELAY
DELAY:
MOVR6,#0FFH
LOOP1:
MOVR7,#0FFH
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
MOVR6,#0FFH
LOOP3:
MOVR7,#0FFH
LOOP4:
DJNZR7,LOOP4
DJNZR6,LOOP3
RET
硬件自检报告:
LED显示器有共阴极和共阳极两种结构。
该图结构为共阳极,且是动态扫描显示,COM端为高电平时,显示器工作,反相驱动器的功能是使LED稳定的亮。
P0口控制LED显示字形即LED显示何种字形,、、是选择字位口即五位LED中哪位LED亮。
通过程序让数码管的四位依次同时显示0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,最高位显示1和-1,来检测低四位数码管对各个码字的响应,来达到自检的目的。
(4)电子秒表硬件编程框图以及相关说明
电子秒表具有时钟显示和秒表计时功能,时钟显示时间范围为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键实现秒表的清零。
三、任务框图分析
主程序框图、子程序框图及相关说明
四、程序清单
/***********************************************************************
课设题目:
电子秒表
实现功能:
开机进入时钟,key1键按下1次调节秒,按下2次调节分,key2
按下1次秒/分加1,key3按下1次秒/分减1;
key4按下一次进入秒表等待,key1按下1次开始计时,key2下1
次暂停计时,key3按下1次秒表清0;
key4按下2次返回时钟;
小组成员:
时间:
2016年3月
************************************************************************/
#include<>
#defineucharunsignedchar
#defineuintunsignedint
#defineN8330
#defineM41950
sbitw1=P2^5;
sbitw2=P2^6;
sbitw3=P2^7;
sbitbeep=P2^3;
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
ucharcodetable[]={0x7e,0x0c,0xb6,0x9e,0xcc,
0xda,0xfa,0x0e,0xfe,0xde};片机技术基础[M].西安电子科技大学,2007.
[2]裴岩.刘利民.单片机系统综合设计与实践[M].内蒙古大学出版社.2003
[3]陈海宴.51单片机原理及应用[M].北京:
北京航空航天大学出版社.2010:
62-65.
[4]胡汉才.单片机原理及接口技术[M].北京:
清华大学出版社.1996:
11-26.
[5]李广弟等.单片机基础[M].北京航空航天出版社,2001.
[6]钟富昭等.8051单片机典型模块设计与应用[M].北京:
人民邮电出版社.2007:
35-38.
[7]李平等.单片机入门与开发[M].北京:
机械工业出版社.2008:
33-37.
[8]高吉祥.全国大学生电子设计竞赛培训系列教程[M].北京:
电子工业出版社.2007