单片机课程设计格式.docx
- 文档编号:30103811
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:14
- 大小:600.92KB
单片机课程设计格式.docx
《单片机课程设计格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计格式.docx(14页珍藏版)》请在冰豆网上搜索。
单片机课程设计格式
单片机课程设计
秒表系统的设计
班级:
计算机2班
组员1学号:
20138380
组员1姓名:
李功臣
组员2学号:
20138381
组员2姓名:
刘力奎
指导老师:
覃业梅
完成日期:
2015/7/2
设计任务书
设计题目
秒表系统的设计
设计任务
本课题是基于单片机的秒表系统设计,它的具体要求有以下几点:
1.实物参见下图,设计一个精度为0.1s的秒表系统
2.设计,启动按钮、暂停按钮及清零按钮
3.设计每到一秒钟有声音提醒功能,可通过按钮打开及关闭该提醒音
设计方案
用AT89C51设计一个秒表,该秒表课可显示0.0~9分59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。
本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计位!
其中有三位数码管用来显示数据,显示分一位和秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
计秒数码管采用四位的数码管,当计数超过范围是所有数码管全部清零重新计数。
任务分配
李功臣:
负责设计软件编码,调试
刘力奎:
负责设计硬件连接,测试
摘要
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
本文阐述了基于单片机的电子秒表设计。
本设计主要特点是计时精度达到0.1s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。
本设计是基于AT89C51单片机设计的,我们是分为几个模块来设计的。
首先对秒表的硬件进行了设计,它包括时钟电路设计、复位电路设计以及外部显示电路。
利用89C51单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。
计时精度为0.1s。
其次是软件进行了设计,软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等。
最后通过仿真调试,在proteus环境下建立了仿真模型,仿真和调试结果表明本设计是正确的。
关键词:
单片机;秒表;系统设计
一引言
秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
2004年8月28日15点15分,中国选手孟关良/杨文军在雅典奥运会男子500米划艇决赛中,以1分40秒278的成绩获得中国在雅典奥运会的第28金。
这是中国皮划艇项目的第一枚奥运金牌,也是中国水上项目在历届奥运会上所获得的第一枚金牌。
孟关良/杨文军的成绩比获得银牌的古巴选手只快了0.072秒,以至于两人在夺冠之后还不敢相信。
在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。
有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。
本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。
利用中断系统使其能实现开始暂停的功能。
P0口输出段码数据,P2.0-P2.4口作列扫描输出,P1.1、P3.2、P3.3、P2.5分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间的功能。
显示电路由五位共阴极数码管组成。
初始状态下计时器显示00.00,当按下开始键时,外部中断INT1向CPU发出中断请求,CPU转去执行外部中断1服务程序,即开启定时器T0。
计时采用定时器T0中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.99秒重新复位。
在计时过程中,只要按下暂停键,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即关闭定时器T0,调用显示程序,实现暂停功能,同时将此次计时时间存入寄存区。
然后对P1.1进行扫描。
当P1.1按下时就跳转回主程序。
等待下一次计时开始。
在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。
秒表停止后对查看键P2.5进行扫描,P2.5按下为低电平时,调用最终缓存区的数据进行显示,即显示上一次计时成绩。
当P2.5位高电平时,调用显示缓存区的数据进行显示,即显示当此计时的成绩。
根据以上设计思路从而实现数字电子秒表的计时和查看上一次计时时间的功能。
本文主要内容包括三部分:
第一部分介绍硬件部分设计思路及方案;第二部分介绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调试过程。
二总体方案
2.1这次的试验要求进行计时并且在数码管上显示时间,先要基本了解硬件内在结构,确定用p2并行端口进行数码管控制输入,使用P2.0,P2.1,P2.2,P2.3进行选择0.1秒位,个位秒位,十位秒位,分位,以P1.0为开始和暂停控制,P1.1为清零控制。
本次实验设计的基本思路是要求借助AT89C51单片机做出一个9分59.9s的秒表从十位秒到0.1位秒数这些计时的位数是存在一个内嵌的结构,就是0.1秒位满足条件然后进行跳位使秒位加一的过程,当0.1s到0.9s时该位自动清零并且秒位加一,秒位个位达到9时也自动清零并向十秒位加一当十秒位和个位秒位同时到达59时向分位进1。
当计数超过范围是所有数码管全部清零重新计数。
其次开始控制,停止控制,清零控制等功能,我们采用蜂鸣器进行提示,该信号由P1.5输出,通过一个延时子程序加以控制。
最后就是根据硬件的条件进行编程,要求软硬件相互兼容。
这也是设计的关键之处。
因此需查阅相关书籍。
三硬件设计
3.1AT89C51单片机简介
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-FlashProgrammableandEraseableReadOnlyMemory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与89C51引脚和指令系统完全兼容。
引脚分别如图2.1所示。
图2.1单片机引脚分布图
图2.1所示的单片机是引脚双列直插封装方式,电源引脚40脚与接地脚20。
P0口作输入口使用时,应先向口锁存器写入1。
P1口是一个带有内部上拉电阻的8位双向I/O端口。
P1的输出缓存可驱动4个TTL输入。
P2口是一个带有内部上拉电阻的8位双向I/O端口。
P3口也是一个带有内部上拉电阻的8位双向I/O端口,P3端口还用于一些复用功能。
3.2开始/停止和清零电路
利用两个开关并联接地,分别接到芯片上的P1.0和P1.1接口,P1.0上的开关控制秒表的开始/停止,P1.1控制清零,如下图
图a开始/停止和清零电路
两种操作皆采用按键操作,简单快捷,易于完成。
图b硬件电路连接图
由电路图我们可以看到,我们用P2.0,P2.1,P2.2,P2.3进行0.1秒位,秒位,十秒位,分位进行位选,蜂鸣器用P1.5做输出口,按下开始按钮,秒表开始工作,蜂鸣器发出声音(无响应电路控制蜂鸣器停止和开始,所以按下“开始”按钮,蜂鸣器开始发声,再按一下“开始/停止”按钮,蜂鸣器停止发声,秒表计时停止)。
四软件设计
4.1程序设计
根据课题内容,可做出主程序流程图如图c所示。
图c主程序流程图
流程图体现着设计程序的思路程序,开始后首先进行数据初始化然后是条件判断满足条件或不满足则进行对应的处理,如首先依次判断是否暂停是否清零,然后十分之一妙位计数,再判断是否进位,若是秒位就加一,秒位加一后进行声音提示,接着再判断是否有进位,若有则十秒位加一,若十秒位有进位则向十分位进一,十分位计满则重新开始。
4.2源程序:
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
ORG0100H
MAIN:
MOVSP,#50H
MOVTCON,#01H;定义中断方式
MOV10H,#0AH
MOV20H,#00H;BINm_SECOND
MOV21H,#00H;BINSECOND
MOV22H,#00H;BINMINUTE
MOV31H,#00H;BCDm_SECOND
MOV32H,#00H;BCDSECOND
MOV33H,#00H;
MOV34H,#00H;BCDMINUTE
MOVTMOD,#01H;16位计数器
MOVTH0,#0D8H;10ms
MOVTL0,#0F0H
MOVIE,#10000010B
ML1:
LCALLDISP
KEY:
JNBP1.0,CONTROL;
JNBP1.1,CLEAR
CONTROL:
LCALLDL1
JBP1.0,ML1
LOOP1:
LCALLDISP
JNBP1.0,LOOP1
CPLTR0
CLEAR:
LCALLDL1
LCALLDISP
JBP1.1,ML1
CLRTR0
MOV20H,#0
MOV21H,#0
MOV22H,#0
MOV31H,#00H;BCDm_SECOND
MOV32H,#00H;BCDSECOND
MOV33H,#00H
MOV34H,#00H;BCDMINUTE
JNBp1.1,CLEAR
LJMPML1
TIME:
MOVTH0,#0D8H
MOVTL0,#0F0H
MOV10H,#0AH
MOVA,20H
INCA
CLRC
CJNEA,#99,GO1;转换BCD
MOV20H,#0
MOV31H,#0
MOVA,21H
INCA
MOVA,21H
INCA
CJNEA,#3CH,GO2
MOV21H,#0H
MOV32H,#0
MOV33H,#0
MOVA,22H
INCA
CJNEA,#0AH,GO3
MOV22H,#00H
MOV34H,#0
AJMPRET0;退出中断
GO1:
MOV20H,A
MOVB,#0AH
DIVAB
MOV31H,A
GO2:
MOV21H,A
MOVB,#0AH
DIVAB
MOV33H,A
MOV32H,B
AJMPRET0
GO3:
MOV22H,A
MOVB,#0AH
MOV34H,B
AJMPRET0
RET0:
POPPSW
POPACC
RETI
DISP:
MOVR0,#31H
MOVR3,#0FEH
MOVA,R3
PLAY:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#0FFH
RLA
JNBACC.4,LD1
INCR0
MOVR3,A
LD1:
RET
SND:
SETBP1.5
DL1:
MOVR7,#05H;延时5*(255*2+2+1)=2,565us
DL:
MOVR6,#0FFH
DL6:
DJNZR6,$
DJNZR7,DL
RET
DSEG1:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
End
五调试及仿真结果
(有调试中出现的问题及该系统实现的优缺点)
(1)经过对程序的运行,并用wave软件编译后,用proteus仿真软件进行仿真,按下“开始”按钮之前,可以看到数码管上数字子显示为零如图1所示。
图1开始状态图
由图1可以清楚的看到,秒表的初始状态,三位数码管都显示为零,蜂鸣器也未工作。
(2)当按下“开始”时秒表开始计时,秒表开始计时,其状态如图2所示。
图2开始计时图
由图4.2可以看到,开始计时后,数码管数字在变化,图中为十分之一秒位的数码管显示情况。
蜂鸣器发出“滴滴滴”的声音。
(3)当再次按下“开始/停止”按钮时秒表停止计时,数码管显示的数字不再变化,如图3所示。
图3停止状态图
由图4.3可以看到按下“开始/停止”按钮后各个数码管的数字不再变化蜂鸣器也停止工作。
(4)当按下“清零”时秒表无论是在计时还是在停止状态都一律清零各数码管全为零,回到初始状态。
六总结
本文主要从硬件和软件两个方面结合说明设计的总体思路和实现过程,预期的设计目的是:
能够实现计时的基本功能,正常显示计时。
在设计过程中,曾经遇到很多的障碍,譬如当用软件延时时,一段程序与下段程序之间没有一个停顿,所以后来利用听是中断才解决问题。
设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题需要修改原理图;在编程那里花费的时间是最多的,编程的过程是要考虑到程序的可行性和是否与硬件兼容。
而能否接好线是本试验的一大难题!
在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零置一上,概念的模糊,还有就是对单片机的指令不够熟悉。
最近几年,科学发展很快,渗透在工农业生产的许多领域。
通过此次课程设计我们有了更深的认识,只有在设计制作的过程中不断的学习才能有更新的进步。
不论在什么地方,什么岗位我门都要不断学习,学以致用。
才能把我们的工作做的更好。
参考文献
【1】白林峰等《单片机原理及应用》化学工业出版社
【2】李泉溪.单片机原理与实例仿真[M].北京:
北京航空航天大学出版社,2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 格式