单片机课程设计秒表扩展成电子时钟的设计.docx
- 文档编号:27021298
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:22
- 大小:225.82KB
单片机课程设计秒表扩展成电子时钟的设计.docx
《单片机课程设计秒表扩展成电子时钟的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计秒表扩展成电子时钟的设计.docx(22页珍藏版)》请在冰豆网上搜索。
单片机课程设计秒表扩展成电子时钟的设计
《单片机原理及接口技术》
课程设计说明书
设计课题:
秒表的设计
专业班级:
10级自动化(3)班
姓名学号:
高扬(080310186)
秦松亭(080310183)
宋龙文(080310152)
产江华(080310138)
指导教师:
郭 玉
设计时间:
2012年12月
物理与电气工程学院
二〇一二年十二月
摘要
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
但是,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用P4吗?
应用的关键是看是否够用,是否有很好的性能价格比。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
自从1976年问世以来,单片机获得了巨大的发展。
现在比较流行的单片机是美国Intel的MCS51/96以及Motorola的MC系列,Zilog的Z8系列,同时还有更多新型的、功能更强的单片机不断出现。
Abstract:
Twentiethcenturyacrossthethree“power”oftheera,thattheageofelectricity,theelectronicageandhasnowenteredthecomputerage.However,theactualworkwherethecomputerisnotanyneedtorequireahighperformancecomputer,acontrolfridgetemperatureP4computerdoyouuse?
Thekeyistoseewhethertheapplicationofadequate,whetherthereisaverygoodcostperformance.Singlechip,alsoknownassingle-chipmicrocontroller,itisnotthecompletionofalogicfunctionofthechip,butacomputersystemintegratedintoachip.Speakingingeneralterms:
asinglechipintoacomputer.Itssmallsize,lightweight,cheap,forlearning,applicationanddevelopmentoffacilitiesprovided.Sinceitsinceptionin1976,SCMwasagreatdevelopment.SCMisnowmorepopularintheUnitedStates,andMotorola,Intel’sMCS51/96MCseries,Zilog’sZ8series,aswellasmorenew,morepowerfulmicrocontrollerscontinuetoemerge.
关键字:
单片机,秒表,系统设计。
目录
摘要2
目录3
一、课程设计的性质、目的和意义4
1.课程设计的性质:
4
2.课程设计的目的和任务:
4
二、内容和要求4
1.设计题目4
2.设计内容4
3.设计要求4
三、设计方案4
1.设计方案的选择4
1.1计时方案4
1.2显示方案4
2.硬件部分7
2.1STC89C52RC单片机介绍7
2.2总仿真电路原理图,如图1.5所示7
3.软件部分9
3.1主程序9
3.2定时器T0中断服务程序9
3.3定时器T1中断服务程序9
3.4外部中断程序9
3.5BCD转码子程序10
3.6显示子程序10
3.7调时功能程序10
3.8延时程序10
四、设计总结10
五、教材及参考书11
六、附录12
一、课程设计的性质、目的和意义
1.课程设计的性质:
“单片机课程设计”是自动化、电子信息及电气工程等专业本科学生的一门实践必修课。
2.课程设计的目的和任务:
提高学生理论知识与联系实际相的学风和动手实践技能,培养学生综合运用理论知识解决实际问题的能力。
巩固和加深对单片机基本知识的理解,培养学生的创新能力,经过搜集资料,初步方案设计,硬件电路设计、程序编写,撰写设计报告的过程,使学生得到一次科学研究工作的初步训,为后续课程的学习、毕业设计乃至毕业后的工作打下一个良好的基础。
二、内容和要求
1.设计题目
秒表的设计
2.设计内容
(1)系统硬件电路原理分析。
(2)系统控制程序的编写与调试。
3.设计要求
设计一个2位LED数码显示的“秒表”,显示时间为00~59秒;具有启停和时间调整功能,可扩展为电子钟,显示时-分-秒
三、设计方案
本次设计时钟电路,使用了STC89C5RC单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:
键盘、芯片、数码管显示、蜂鸣器报警即可满足设计要求。
1.设计方案的选择
1.1计时方案
使用单片机内部的可编程定时器。
利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,但程序设计较为复杂。
1.2显示方案
于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图1.1LED数码管结构原理图
众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。
本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。
所谓软件译码,即由单片机软件完成从数字到显示码的转换。
从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显
示段码为1个字节。
各段码位与显示段的对应关系如表表1.2
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
表1.2各段码位的对应关系
需说明的是当用数据口连接LED数码管a~dp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。
通常数据口的D0位与a段连接,D1位与b段连接,……D7位与dp段连接,如表1所示,表2.3为用于LED数码管显示的十六进制数和空白字符与P的显示段码。
根据STC89C52RC单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。
将AT89C2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。
例如:
当P0口输出的段码为11000000,数码管显示的字符为0。
字型
共阳极段码
共阴极段码
字型
共阳极段码
共阴极段码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
BOH
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
空白
FFH
00H
8
80H
7FH
P
8CH
73H
表1.3LED显示段码
注:
(1)本表所列各字符的显示段码均为小数点不亮的情况。
(2)“空白”字符即没有任何显示
数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。
为节省端口及降低功耗,本系统采用动态扫描显示方式。
动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的“位控”,则由P1口控制。
这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。
在这一瞬时,只有这一位在显示,其他几位则暗。
在本系统中,字位线的选通与否是通过74HC138来控制,这里74HC138的功能不再详述。
2.硬件部分
2.1STC89C52RC单片机介绍
STC89C52RC单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS8位单片机,片内含8kbytes的可反复写的FlashROM和256bytes的RAM,2个16位定时计数器[5]。
STC89C52单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。
这些部件通过内部总线联接起来,构成一个完整的微型计算机。
其管脚图如图1.4所示。
图1.4STC89C52RC单片机管脚结构图
2.2总仿真电路原理图,如图1.5所示
图1.5电子时钟设计总电路图
对电子时钟电路设计总共分为6个模块
1.晶振电路模块,采用晶振为11.0592MHz,产生时钟信号
2.复位电路模块,对单片机内部进行复位操作
3.蜂鸣器电路模块,接P1.6,当输入低电平,蜂鸣器会发出声音,以达到整点报时功能和定时功能。
4.按键电路模块,P2.3口清零把矩阵按键分成独立按键使用,按键K1,K2,K3,K4分别控制时钟的启停、分、时调整以及定时的开启,清零按复位按键
5.138译码器控制数码管电路,为了节约I/O口采用74HC138译码器来控制数码管的显示。
6.数码管显示电路模块,仿真电路采用7段共阴极数码管来充当电路的显示模块。
在实际单片机开发板中采用7段共阳极数码管充当电路的显示模块,因此数码管的控制采用三极管的开关作用和74HC138译码器一起作用。
3.软件部分
3.1主程序
主程序功能主要是初始化、正常现实时间和判断功能转换键。
流程图如图所示。
图1.6程序流程图
3.2定时器T0中断服务程序
定时器T0用于时间计时。
定时溢出中断周期可设为50ms,中断进入后,时钟计时累计20次(即1s)时,对秒计数单元进行加1操作。
时钟计数单元在定义的6个单元40H~45H中,40H~41H存放秒数据,42H~43H存放分数据,44H~45H存放时数据。
最大计时值为23小时59分59秒。
在计数单元中采用十进制BCD码计数,秒、分、时之间满60进位。
3.3定时器T1中断服务程序
定时器T1用于时钟的定时设计。
当定时溢出进入中断后,可以利用查询法控制按键K2、K3分别调节闹铃的分和时以达到定时的目的。
3.4外部中断程序
IT1、T1实现对时钟分和时的调整。
3.5BCD转码子程序
将输出的十六进制数转码成十进制的BCD码
3.6显示子程序
数码管显示的数据放在内存单元40H~45H中,其中40H~41H存放秒数据,42H~43H]存放分数据,44H~45H存放时数据,每一单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用的十进制BCD码数据的对应段码存放在ROM表中,显示时,先取出40H~45H中的某一地址中的数据,然后查表得对应的显示段码从P0口输出,P1口将对应的数码管位选中供电,就能显示该地址单元的数据值。
定时时的显示子程序与闹钟显示子程序基本原理相同,只把地址改动。
50H~51H存放秒数据,52H~53H]存放分数据,54H~55H存放时数据,每一单元内均为十进制BCD码。
3.7调时功能程序
通过按键K1来控制时钟的停起。
通过“加”按键(K2、K3)来对分、时分别调整。
3.8延时程序
因为系统是动态显示,为了确保系统在有效显示时间范围内必须执行显示程序,所以使用延时程序。
四、设计总结
这次课程设计项目虽然是最简单的数字时钟设计,但用的技术和知识是源于课本又远远高于课本的,比如说STC89C52RC基本操作知识,汇编语言方面的知识和对时钟的功能要求等。
通过这次自己编写程序,使我摆脱了以往单纯的理论知识学习状态,并且在和实际设计的结合锻炼了我的综合运用所学的专业基础知识。
不过在这次课设中我也遇到了不少问题,实际操作时才发现课堂知识和实际运用还是有差距的,不过最终还是在老师或同学的帮助下一个一个解决了。
通过这次对课程设计,我也认识到自己对单片机应用方面的知识的贫乏,对于书本上的很多理论知识还不能灵活运用,有很多我们掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。
同时还从中学到了一件很重要的东西,那就是如何从理论到实践的转化。
此次的课程设计给我奠定了一个实践基础,我会在以后的学习,生活中磨练自己,使自己掌握更多的技术能力。
五、教材及参考书
[1]胡汉才,单片机原理及其接口技术,清华大学出版社
[2]邹逢兴,微型计算机接口原理与技术,国防科技大学出版社
[3]阎凯,微型计算机硬件设计原理分析与维修,科学出版社
[4]何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社
[5]沈德金,MCS-51系列单片机接口电路与应用程序实例,北京航空航天大学出版社
六、附录
;电子时钟汇编程序
;===========================================================
ORG0000H
LJMPMAIN
ORG003H
LJMPINTR0
ORG000BH
LJMPTIME0
ORG0013H
LJMPINTR1
ORG001BH
LJMPTIME1
ORG0050H
;============================================================
;主程序
MAIN:
MOVIE,#8FH//打开中断T0、T1、IT0、IT1
MOVTMOD,#21H//设置T0、T1工作方式
MOVTH0,#(65536-50*1000)/256//设置T0的初值
MOVTL0,#(65536-50*1000)MOD256
MOVTH1,#0FFH//设置T1的初值
MOVTL1,#0FFH
SETBIT0//设置外部中断0为下降沿触发
SETBIT1//设置外部中断1为下降沿触发
MOVR0,#0//对寄存器初始化
MOVR1,#0
MOVR2,#0
MOVR3,#0
MOVR4,#0
MOVR5,#0
CLRP2.3//P2.3口清零,把矩阵按键分成独立按键使用
;============================================================
;按键1控制时钟启停
K1:
JBP2.4,K4
X1:
ACALLDISPLAY
JNBP2.4,X1//按键抬起再动作
CPLTR0
;============================================================
;按键K4控制设置定时
K4:
JBP2.7,M0
X4:
ACALLDISPLAY
JNBP2.7,X4//按键抬起再动作
CPLTR1
;============================================================
M0:
MOV30H,R1
MOV31H,R2
MOV32H,R3
ACALLTOBCD
ACALLDISPLAY
ACALLRING
ACALLNAOLING
SJMPK1
;============================================================
;T0中断响应程序
TIME0:
MOVTH0,#(65536-50*1000)/256//再次给T0设初值
MOVTL0,#(65536-50*1000)MOD256
INCR0
CJNER0,#20,M3//保证时钟1s加一次
INCR1//秒加一
MOVR0,#0
CJNER1,#60,M3
INCR2//分加一
MOVR1,#0
CJNER2,#60,M3
INCR3//时加一
MOVR2,#0
CJNER3,#24,M3
MOVR3,#0
M3:
RETI
;============================================================
;外部中断0程序,控制按键K2对时钟分进行调整
INTR0:
ACALLDL10MS//按键防抖
JBP3.2,M4
X2:
ACALLDISPLAY
JNBP3.2,X2//按键抬起再动作
INCR2
CJNER2,#60,M4
MOVR2,#0
M4:
RETI
;============================================================
;外部中断1程序,控制按键K3对时钟时进行调整
INTR1:
ACALLDL10MS//按键防抖
JBP3.3,M5
X3:
ACALLDISPLAY
JNBP3.3,X3//按键抬起再动作
INCR3
CJNER3,#24,M5
MOVR3,#0
M5:
RETI
;============================================================
;计数器T1响应中断程序,进入定时设置程序
TIME1:
;定时分的设置,K2采用查询法
M21:
JBP2.5,M22
ACALLDL10MS
JBP2.5,M22
M11:
ACALLDISPLAY1
JNBP2.5,M11//按键抬起再动作
INCR4
CJNER4,#60,M22
MOVR4,#0
//定时时的调节,K3采用查询法,
M22:
JBP2.6,M00
ACALLDL10MS
JBP2.6,M00
M12:
ACALLDISPLAY1
JNBP2.6,M12//按键抬起再动作
INCR5
CJNER5,#24,M00
MOVR5,#0
M00:
MOV33H,#0
MOV34H,R4
MOV35H,R5
ACALLTOBCD1
ACALLDISPLAY1
JBP2.7,M21
X03:
ACALLDISPLAY
JNBP2.7,X03//按键抬起再动作
CLRTR1//清中断
RETI
;============================================================
;BCD码转换程序
TOBCD:
MOVA,30H
MOVB,#10
DIVAB
MOV40H,A
MOV41H,B
MOVA,31H
MOVB,#10
DIVAB
MOV42H,A
MOV43H,B
MOVA,32H
MOVB,#10
DIVAB
MOV44H,A
MOV45H,B
RET
;============================================================
;定时BCD转码程序
TOBCD1:
MOVA,33H
MOVB,#10
DIVAB
MOV50H,A
MOV51H,B
MOVA,34H
MOVB,#10
DIVAB
MOV52H,A
MOV53H,B
MOVA,35H
MOVB,#10
DIVAB
MOV54H,A
MOV55H,B
RET
;============================================================
;数码管显示程序
DISPLAY:
MOVDPTR,#LEDCA
MOVP1,#0E8H
MOVA,41H
MOVCA,@A+DPTR
MOVP0,A
ACALLDL10MS
MOVP1,#0E9H
MOVA,40H
MOVCA,@A+DPTR
MOVP0,A
ACALLDL10MS
MOVP1,#0EAH
MOVA,43H
MOVCA,@A+DPTR
ANLA,#7FH
MOVP0,A
ACALLDL10MS
MOVP1,#0EBH
MOVA,42H
MOVCA,@A+DPTR
MOVP0,A
ACALLDL10MS
MOVP1,#0ECH
MOVA,45H
MOVCA,@A+DPTR
ANLA,#7FH
MOVP0,A
ACALLDL10MS
MOVP1,#0EDH
MOVA,44H
MOVCA,@A+DPTR
MOVP0,A
ACALLDL10MS
RET
;============================================================
;定时数码管显示子程序
DISPLAY1:
MOVDPTR,#LEDCA
MOVP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 秒表 扩展 电子 时钟 设计