电子跑表的设计.docx
《电子跑表的设计.docx》由会员分享,可在线阅读,更多相关《电子跑表的设计.docx(17页珍藏版)》请在冰豆网上搜索。
电子跑表的设计
湖南工程学院
课程设计
课程名称单片机原理与应用
课题名称电子跑表的设计
专业
班级
学号
姓名
指导教师
2005年5月27日
湖南工程学院
课程设计任务书
课程名称单片机原理与应用
课题电子跑表的设计
专业班级
学生姓名
学号
指导老师
审批
主要设计条件
电子时钟的计时范围00分00秒59分-59秒,并在4位LED显示器上显示;做跑表时显示范围000.0秒-999.9秒,当按下启动按钮跑表开始计时,按下停止按停止计时,当按下复位按钮跑表回零。
1.课程设计任务书
2.目录
3.系统总体方案选择与说明
4.系统结构框图与工作原理
5.各单元硬件设计说明及计算方法
6.软件设计与说明(包括流程图)
7.调试结果与必要的调试说明
8.使用说明
9.程序清单
10、总结
11、参考文献
附录
附录A系统原理图
附录B程序清单
进度安排
设计时间为两周
第一周
星期一、上午:
布置课题任务,讲课及课题介绍
下午:
借阅有关资料,总体方案讨论
星期二、确定总体设计方案
星期三、硬件模块方案设计
星期四、软件模块方案设计
星期五、各硬件模块设计
第二周
星期一、各硬件模块设计
星期二、各软件模块设计
星期三、各软件模块设计
星期四、写说明书
星期五、上午:
写说明书,整理资料
下午:
交设计资料,答辩
设计内容与设计要求
设计内容:
本课题要求以单片机为核心设计一个多功电子表,具有电时钟和跑表功能。
做时钟时在4位LED显示器上显示分、秒,做跑表时显示范围000.0秒~999.9秒并具有跑表启动和跑表复位功能键。
设计要求:
1)确定系统设计方案;
2)进行系统的硬件设计;
3)完成必要的参数计算与元器件选择;
4)完成应用程序设计;
*5)进行部分单元电路及应用程序的调试;
一.系统总体设计方案 ……………………………………………………………
1.1总体结构……………………………………………………………………
1.2软件设计模块…………………………………………………………
二.硬件设计………………………………………………………………
2.1硬件设计原理……………………………………………………………
2.2接口说明…………………………………………………………………
三.软件设计
3.1软件设计说明………………………………………………………………
3.2程序流程图………………………………………………………………
3.3程序设计及功能…………………………………………………………
3.4软件调试…………………………………………………………
四、统功能及使用说明……………………………………………………………
4.1系统功能…………………………………………………………………
4.2 操作使用说明……………………………………………………………
五心得体会……………………………………………………………………六参考文献………………………………………………………………………
附录A定时器中断流程图………………………………………………………
一.系统的总体设计方案
1.1总体结构
根据本次课程设计的要求,设计一个电子跑表具有时钟和跑表的功能,并在4位LED显示器上显示,并具有启动停止复位功能.我利用单片机定时器中断和定时器计数方式实现跑表和时钟功能,并采用P1接口来输出.当P1.1拨1时,跑表计数显示;当P1.1拨1时,跑表停止计数;当P1.3拨1时,返回时钟计数.在实现跑表的功能时,时钟是不能停止的,否则显示的时间就会不正确。
因此我们使时钟的中断优先级高于秒表的优先级,在执行跑表程序时,会被时间中断,从而消除时钟的误差。
但这会使跑表的时间产生误差,这是不可避免的,因为单片机每次只能执行一个任务,所以我们只能尽量减少误差。
如果我们使时钟的中断周期大于跑表的中断周期,这样误差会相对减少些。
应当注意,跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在此用49H做标志为。
还要协调开关的位置和功能。
1.2软件设计模块
对于单片机的电子跑表在设计时要解决3个方面的主要问题:
一是LED显示模块的编程,二是有关单片机中定时器使用,三是如何利用单片机的外中断实现时钟功能和运行模块的转化。
二.硬件设计
2.1硬件设计说明
在讲设计原理之前我们先来介绍一下8279它是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
它内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口.LED动态显示程序模块的设计采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率.在单片机中,定时功能即可以由硬件实现,也可由通过软件定时程序实现.
2.2接口说明
在本次实验中我们采用P1口,P1口是一个内部带上拉电阻的8位准双向I/O口,当P1口输出高电平时,能向外部提供拉电流负载,因此不需再外接上拉电阻.系统功能采用T0定时器工作于方式1,启动定时器工作,用软件启动,编程时TCON中的TR0置位即可启动;若由外部管脚启动,则对TCON中的TR0置位后,还需给外管脚加启动电平.
三:
软件设计
3.1软件设计说明
计算定时器T0的计数初值X.
当时钟频率为12MHz时,
12×1000×50
X=65536–
12
X=15536=3CB0
初值寄存器的初值TH0=3CHTL0=B0H
工作方式寄存器TMOD=00000001B=01H
T0定时器每50ms中断一次,中断两次为0.1s.
8279的初始化
我们知道8279的数据口地址0FF80H。
状态口地址0FF82H。
其中给,键盘/显示方式设置命令字00H
时钟编码命令字2FH
清除命令字0C1H
开关设置
P1.1时钟转跑表
P1.2跑表暂停
P1.3跑表转时钟;
寄存器说明
41H放置对应LED灯的1,2位
42H放置对应LED灯的3,4位
50H放置41H中的个位
51H放置41H中的十位
52H放置42H中的个位
53H放置42H中的十位
48H放置2,计两次定时器动作
49H放置标志位
3.2程序流程图
ORG0000H
LJMPMAIN;转至主程序入口地址
ORG000BH;中断服务子程序入口地址
LJMPT0;转至中断程序
ORG0040H;设置主程序起始地址
MAIN:
MOVTMOD,#01H设置T0工作方式:
定时器,工作方
式1
MOVTL0,#0B0H;计数初值的设定
MOVTH0,#3CH
MOVIE,#82H;开中断
MOV48H,#2;中断两次
MOV31H,#0;时钟计数单元31清0
MOV32H,#0;时钟计数单元32清0
MOV47H,#0
MOVP1,#0FFH;开放端口P1
SETBTR0;启动定时器
LOOP1:
JNBP1.1TP0;判断P1.1口是否为零,来选择是时钟和跑表
MOV35H,#0;跑表计数单元35清0
MOV36H,#0跑表计数单元36清0
TP2:
LCALLTP5;调用跑表计数程序
JNBP1.2,TP2;判断P1.2是否为0来控制跑表暂停
JNBP1.3,$;返回时钟
TP0:
MOV41H,31H;时钟计数内容送入显示地址
MOV42H,32H
LCALLDIVID
MOVA,52H;加小数点
ADDA,#10
MOV52H,A
LCALLDZSPLAY;调用显示程序
SJMPLOOP1
TP5:
;跑表计数程序
MOVA,49H
CJNEA,#0FFH,TP;判断0.1秒是否到
MOV49H,#0;49单元清0
INC35H;
MOVA,35H
CJNEA,#10,TP;判断10秒是否到
MOV35H,#0;
INC36H
MOVA,36H
CJNEA,#100,TP;判断100秒是否到
MOV35H,#0;
MOV36H,#0
TP:
;
MOV41H,35H;跑表计数内容送41单元
MOV42H,36H;跑表计数内容送42单元
LCALLDIVID
MOVA,51H;加小数点
ADDA,#10
MOV51H,A
LCALLDZSPLAY调用显示程序
RET
T0:
中断程序
PUSHACC;保护现场
MOVTH0,#3CH;重装初值
MOVTL0,#0B0H
DJNZ48H,RETE;判断是否完成1秒定时
MOV48H,#2
MOV49H,#0FFH;给跑表0.1秒
INC47H
MOVA,47H
CJNEA,#10,RETE;判断1秒钟是否到
MOV47H,#0
INC31H
MOVA,31H
CJNEA,#60,RETE;判断1分钟是否到
MOV31H,#0
INC32H
MOVA,32H
CJNEA,#60,RETE;判断1小时是否到
MOV32H,#0
MOV31H,#0
RETE:
POPACC;恢复现场
RETI;返回
DIVID:
;将41单元42单元分为4位
PUSHACC;保护现场
MOVA,41H;1,2位LED显示
MOVB,#10
DIVAB
MOV51H,A;51单元为高位
MOV50H,B;50单元为低位
MOVA,42H;3,4位LED显示
MOVB,#10
DIVAB
MOV53H,A;单元53位为高位
MOV52H,B;单元52位为低位
POPACC;恢复现场
RET
DISLED:
;显示字符子程序
PUSHDPH;现场保护
PUSHDPL
PUSHACC
MOVA,#80;置显示起始地址
ADDA,R4;加偏移地址
MOVDPTR,#0FF82H
MOVX@DPTR,A;设定显示位
MOVDPTR,#LEDSEG;置显示常数表起始地址
MOVA,R5
MOVCA,@A+DPTR
MOVDPTR,#0FF80H
MOVX@DPTR,A;显示数据
POPACC;恢复现场
POPDPL
POPDPH
RET
DZSPLAY:
;显示程序
MOVR552H
MOVR4,#2
LCALLDISLED显示D3位
MOVR553H
MOVR4,#3
LCALLDISLED显示D4位
MOVR550H
MOVR4,#0
LCALLDISLED显示D1位
MOVR551H
MOVR4,#1
LCALLDISLED显示D2位
RET
LEDSEG:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;显示常数表
END;程序结束
LED动态扫描程序流程图
LED显示器十六进制数的字形代码
字符
D7
D6
D5
D4
D3
D2
D1
D0
字型码
0
0
1
1
1
1
1
1
1
3FH
1
0
0
0
0
0
1
1
0
06H
2
0
0
0
1
1
0
1
1
5BH
3
0
1
0
0
1
1
1
1
4FH
4
0
1
1
0
0
1
1
0
66H
5
0
1
1
0
1
1
0
1
6DH
6
0
0
1
1
1
1
0
1
7DH
7
0
0
0
0
0
1
1
1
07H
8
0
1
1
1
1
1
1
1
7FH
9
0
1
1
0
0
1
1
1
67H
3.4、软件调试
软件调试的任务是利用软件的开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
程序的调试应该一个模块接一个模块地进行,首先单独调试各共能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正确等;最后是逐步将各个子程序连接起来总调试。
联调需要注意的是:
各个子程序间能否正确传递参数,特别需要注意各个子程序的现场保护与恢复.
四系统功能及使用说明
4.1系统功能
电子跑表,具有电时钟和跑表功能。
做时钟时在4位LED显示器上显示分、秒,做跑表时显示范围000.0秒~999.9秒并具有跑表启动和跑表复位功能键.
4.2操作使用说明
当拨动一个开关时就做跑表用,跑表精度0.1秒,000.0~999.9秒,到达最大后重新计时。
还有一个开关控制暂停,另一个控制从跑表返回时钟。
但是,还有几点不足了。
一,当时钟转跑表时跑表缺一个控制启停跑表的开关。
二,在两者互相转换的时候都没有保存两者在转以前的数值。
还有,按钮不能同时按下,这样会使机子不能正常工作。
。
五心得体会
为期两周的课程设计结束了,在这两周当中我学到了很多东西,它包括课本上的也包括课本以外的.知识是无穷尽的,只有我们不断的去追求去探索,才能发现其中的奥秘.
当接到课题的时候,我就觉得一点头绪都没有,无从下手.只好整天埋在图书馆里查找资料,刚开始几天的时候还是觉得没有头绪,但是经过我跟同组同学的交流商讨之后有了思路,我们一起查找资料,功夫不负有心人,我们终于找到了可行方案.我们兴致勃勃的上机编程调试,但是有好多的错误,我们根据提示的错误来修改程序,有的是最基本的错误比如程序中出现非法字符,还有是我们粗心的错误漏掉一些字符.这些都是我们不应该出现的错误,是我们平时的基础知识掌握的不够牢固.而在平时的时候我们总觉的这里也会那里也会,觉得老师教的知识我都掌握了.其实不然,实践是检验真理的唯一标准,我们在这次课程设计中深深的体会到了.虽然程序调试的没有错误,但是这并不意味着我们实验成功了,我们还要看它能不能调试成功,我们把硬件接好以后发现显示的时间错误,只有时钟显示没有秒表显示,我们又从先开始找错误,在大家的努力下我们又把编好的程序重新上机编程调试,终于成功了.
在这次实验中我熟悉8259器中断和定时器计数方式的功能使用,为以后的工作和学习打下坚实的基础。
学会如何编制含定时器中断、键盘扫描和LED静态显示等多种功能的综合程序初步体会大型程序的编制和调试技巧。
我非常感谢老师让我们有这么好的条件亲自动手作实验,也非常感谢老师们对我们的指导.
六参考文献
参考文献
参考文献
1、教材《单片微型计算机技术》刘国荣编机械工业出版社
2、《单片微型计算机原理、应用及接口技术》张迎新编国防工业出版社
3、单片机实用系统设计技术》房小翠编国防工业出版社
4、《单片机应用系统设计》何立民编北航出版社
5、《单片机原理及接口技术曹琳琳编国防科技大学出版社
附录
电气与信息工程系课程设计评分表
项目
评价
设计方案的合理性与创造性
硬件制作或软件编程完成情况*
硬件制作测试或软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:
________________
日期:
________________
注:
表中标*号项目是硬件制作或软件编程类课题必填内容;
此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:
封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。