资源描述
目 录
一、 课程设计的主要内容和要求 ………………………………………………1
二、 实现原理等知识的介绍……………………………………………………2
2.1电子时钟的设计
2.2单片机识的相关知识
三、 系统的总体方案设计说明;
3.1总体设计方案
3.2总设计原理框图
四、 具体实现步骤的设计说明;
五、 单片机系统程序的编制;
六、 测量过程的操作说明,原始测量数据的记录;
七、 结论及存在问题;
八、 心得体会总结;
九、 参考文献。
一、主要内容和要求
1 主要内容:设计一个数字式电子钟,它具有时,分,秒的计时功能,可以通过键盘进行时间设定,并且将时间显示在LED数码管上。用按键设定时钟的时、分、秒,用扫描方式动态显示。时钟用定时中断方式工作,单片机晶体震荡器频率11.0592Mhz.。可选做双机通信实验,实现子母钟功能,即由其中一台做时钟,另一台采集时钟值并显示。
2 对于基本题目要求是:
用按键设定时钟的时、分、秒。要求用4键方式,即选择、加、减、确认键,选择键用于选择修改起始时、分、秒值,每按一次,被修改数码管顺序移动并闪烁。用+,- 键修改数值,确认键确定修改结束。
a)用扫描方式动态显示时、分、秒,第2,4 数码管加小数点,并且要求第4数码管小数点每秒闪烁一次。
b) 时钟用定时中断方式工作。注意单片机晶体震荡器频率是11.0592Mhz.。
c)可选做双机通信实验,实现子母钟功能,即由其中一台做时钟,另一台采集时钟值并显示。
二、实现原理等知识的介绍
2.1电子时钟的相关知识
1电子时钟简介
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。
2电子时钟的基本特点
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
3电子时钟的工作原理
该电子时钟由89C51,MAX232,LED数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时。用按键设定时钟的时、分、秒。通过四个按键即选择、加、减、确认键,选择键用于选择修改起始时、分值,每按一次,被修改数码管顺序移动并闪烁。用+,- 键修改数值,确认键确定后秒位清零,修改结束。
2.2单片机的相关知识
1单片机简介
单片机全称为单片机微型计算机(Single Chip Microsoftcomputer)。从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
2 单片机的发展史
3 4位单片机
1975年,美国德克萨斯仪器公司首次推出4位单片机TMS-1000;此后,各个计算机公司竞相推出四位单片机。日本松下公司的MN1400系列,美国洛克威尔公司的PPS/1系列等。四位单片机的主要应用领域有:PC机的输入装置,电池充电器,运动器材,带液晶显示的音/视频产品控制器,一般家用电器的控制
4 8位单片机
1972年,美国Intel公司首先推出8位微处理器8008,并于1976年9月率先推出MCS-48系列单片机。在这以后,8位单片机纷纷面市。例如,莫斯特克和仙童公司合作生产的3870系列,摩托罗拉公司生产的6801系列等。随着集成电路工艺水平的提高,一些高性能的8位单片机相继问世。例如,1978年摩托罗拉公司的MC6801系列及齐洛格公司的Z8系列,1979年NEC公司的UPD78XX系列。这类单片机的寻址能力达64KB,片内ROM容量达4--8KB,片内除带有并行I\O口外,还有串行I\O口,甚至还有A\D转化器功能。8位单片机由于功能强,被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用电器等各个领域。
5 16位单片机
1983年以后,集成电路的集成度可达几十万只管/片,各系列16位单片机纷纷面市。这一阶段的代表产品有1983年Intel公司推出的MCS-96系列,1987年Intel推出了80C96,美国国家半导体公司推出的HPC16040,NEC公司推出的783XX系列等。16位单片机主要用于工业控制,智能仪器仪表,便携式设备等场合。
6 32位单片机
随着高新技术只智能机器人,光盘驱动器,激光打印机,图像与数据实时处理,复杂实时控制,网络服务器等领域的应用与发展,20世纪80年代末推出了32位单片机,如Motorlora公司的MC683XX系列,Intel的80960系列,以及近年来流行的ARM系列单片机。32位单片机是单片机的发展趋势,随着技术的发展及开发成本和产品价格的下降,将会与8位单片机并驾齐驱。
7 64位单片机
近年来,64位单片机在引擎控制,智能机器人,磁盘控制,语音图像通信,算法密集的实时控制场合已有应用,如英国Inmos公司的Transputer T800是高性能的64位单片机。
2.2.3单片机的特点
1 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。
2 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。
3 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。
4 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。
2.2.4数码管显示工作原理
LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为反映出半导体材料的特性。常见管芯材料有磷化镓(GaP)、砷化镓(GaAs)、磷砷化镓(GaAsP)、氮化镓(GaN)等,其中氮化镓可发蓝光。发光颜色不仅与管芯材料有关,还与所掺杂质有关,因此用同一种管芯材料可以制成发出红、橙、黄、绿等不同颜色的数码管。其他颜色LED数码管的光谱曲线形状与之相似,仅入,值不同。LED数码管的产品中,以发红光、绿光的居多、这两种颜色也比较醒目。
LED数码管等效于多只具有发光性能的PN结。当PN结导通时,依靠少数载流子的注人及随后的复合而辐射发光,其伏安特性与普通二极管相似。在正向导通之前,正向电流近似于零,笔段不发光。当电压超过开启电压时,电流就急剧上升,笔段发光。因此,LED数码管属于电流控制型器件,其发光亮度L(单位是cd/m2)与正向电流IF有关,用公式表示:L=KIF即亮度与正向电流成正比。LED的正向电压U,则与正向电流以及管芯材料有关。使用LED数码管时,工作电流一般选10mA左右/段,既保证亮度适中,又不会损坏器件。
三、系统的总体方案设计说明
3.1总体设计方案
本次设计时钟电路,使用了ATC89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:按键、芯片、扬声器、LED数码管即可满足设计要求。
3.2总设计原理框图如下图所示:
8
9
C
5
2
时钟电路
校时输入
数据显示
四、具体实现步骤的设计说明
4.1 电路设计原理说明
本设计电路,硬件部分共由五个模块组成:按键模块、复位电路模块、晶振电路模块、发声模块、时间显示模块。晶振电路模块负责给单片机提供时钟周期。复位单路模块负责上电后自动复位,或按键后强制复位。上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按下,即进入相应的功能函数。
4.2各部分电路说明
1按键模块
按键模块如图所示。
图 按键模块
在该模块中,采用四个按键作为电子时钟的控制输入,通过按键来实现时钟的时间设置功能。电路中将四个按键的一端接公共地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的额管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作。
2单片机的复位电路
单片机的复位电路,如图所示。
图单片机的复位电路
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电后,保持RST一段高电平时间。
3单片机的晶振电路
单片机的晶振电路,如图所示。
图 单片机的晶振电路
石英晶体也连接在晶振引脚的输入和输出之间,等效为一个并联谐振回路,振荡频率应该是石英晶体的并联谐振频率。晶体旁边的两个电容接地,实际上就是电容三点式电路的分压电容, 接地点就是分压点。以接地点即分压点为参考点,振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来看, 形成一个正反馈以保证电路持续振荡。
4发声模块
发声模块,如图所示。
图 发声指示模块
发声模块由蜂鸣器、电源、8550三极管、限流电阻组成。蜂鸣器由PNP三极管驱动,当BZ管脚为高时,三极管be级没电压差,三极管截止;反之,三极管导通,有电流流经蜂鸣器,蜂鸣器发声。
5时间显示模块
时间显示模块如图所示。
图 时间显示模块
时间显示部分的电路也很简单,由五个一位的共阴8段数码管、五盏发光二极管组成。在显示过程中,单片机将要显示的数字传递给89C52芯片,同时通过位选选通要显示的数码管。
五、单片机系统程序的编制
5.1程序设计
18
ORG 0000H
LJMP START ;转初始化
ORG 000BH
LJMP PGT0 ;T0中断入口
ORG 0033H
START:
DIS1 EQU 30H
DIS2 EQU 31H
DIS3 EQU 32H
DIS4 EQU 33H
DIS5 EQU 34H
DIS6 EQU 35H
DISXS EQU 36H
DISFZ EQU 37H
DISMZ EQU 38H
MS500 EQU 39H
K1 BIT P3.2
K2 BIT P3.3
K3 BIT P3.4
K4 BIT P3.5
BDP BIT 01H
bd BIT 02H
MOV SP,#50H ;初始化程序
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV TMOD,#01H ;定时器T0工作于方式1
MOV TH0,#4CH ;定时器初值
MOV TL0,#05H
MOV IE,#82H
MOV R3,#10
SETB TR0
MOV DIS1,#00H ;清显示缓冲区
MOV DIS2,#00H
MOV DIS3,#00H
MOV DIS4,#00H
MOV DIS5,#00H
MOV DISXS,#12 ;初始化时间为12:30:00
MOV DISFZ,#30
MOV DISMZ,#0
MOV MS500,#0
MAIN: ;主程序
jnb k2,d1
jnb k3,d2
jnb k4,d3
jnb k1,d4
d1: ljmp send
d2: ljmp send
d3: ljmp send
d4: jnb k1,qu1
qu1:lcall sound
ajmp god1
k1dd: jb k2,k2dd
lcall ys10ms
lcall sound
inc disxs
mov a,disxs
cjne a,#24,bj
mov disxs,#00h
ljmp god1
bj: jc d0
mov disxs,#00h
ljmp god1
d0: ajmp god1
k2dd: jb k3,k3dd
lcall ys10ms
lcall sound
mov a,disxs
cjne a,#00,bj2
mov disxs,#23
ajmp god1
bj2: dec disxs
ajmp god1
k3dd: jb k2,k4dd
lcall ys10ms
lcall sound
inc disfz
mov a,disfz
cjne a,#60,bj3
lcall ys10ms
mov disfz,#00h
ljmp god2
bj3: jc t0
mov disfz,#00h
ljmp god2
t0: ljmp god2
k4dd: jb k3,tj
lcall ys10ms
lcall sound
mov a,disfz
cjne a,#00h,bj4
mov disfz,#59
ljmp god2
bj4: dec disfz
ljmp god2
tj: ljmp god2
zy1: ljmp k1dd
zy2: ljmp k2dd
god1: lcall ys10ms
MOV A,DISXS
MOV B,#10
DIV AB ;转换当前小时数据
MOV DIS1,A ;得到十小时值
MOV DIS2,B ;得到小时值
CLR P2.6 ;允许数码管显示
MOV A,DIS1 ;显示十小时值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
setb P2.1
SETB P2.2
SETB P2.3
setb P2.4
LCALL DELAY05s
MOV A,DIS2 ;显示小时值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
JB BDp,DP0
ANL A,#01111111B
DP0: MOV P0,A
setb P2.0
CLR P2.1
SETB P2.2
SETB P2.3
setb P2.4
LCALL DELAY05s
jnb k1,qu2
jnb k2,zy1
jnb k3,zy2
setb p2.0
setb p2.1
jnb k4,z0
sjmp god1
qu2: lcall sound
ljmp god2
z0: mov dismz,#00h
ljmp send
god2: lcall ys10ms
MOV A,DISFZ
MOV B,#10
DIV AB ;转换当前分钟数据
MOV DIS3,A ;得到十分值
MOV DIS4,B ;得到分值
MOV A,DISFZ
MOV B,#10
DIV AB ;转换当前分钟数据
MOV DIS3,A ;得到十分值
MOV DIS4,B ;得到分值
CLR P2.6 ;允许数码管显示
MOV A,DIS3 ;显示十分钟值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
MOV P0,A
setb P2.0
SETB P2.1
clr P2.2
SETB P2.3
setb P2.4
LCALL DELAY05s
MOV A,DIS4 ;显示分钟值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
JB bdp,DP4
ANL A,#01111111B
DP4: MOV P0,A
SETB P2.0
setb P2.1
SETB P2.2
clr P2.3
setb P2.4
lcall delay05s
jnb k2,zy3
jnb k3,zy4
jnb k1,z5
jnb k4, z1
setb p2.2
setb p2.3
ljmp god2
z5: lcall sound
ljmp god1
z1: mov dismz,#00h
jnb k4,send
zy3: ljmp k3dd
zy4: ljmp k4dd
SEND: MOV A,DISMZ ;处理当前秒数据
MOV B,#10
DIV AB ;10进制转换
MOV DIS5,A ;得到十秒值
MOV DIS6,B ;得到秒值
CJNE A,#00,TST1
MOV P1,#0FFH
AJMP TST
TST1: CJNE A,#01,TST2 ;将十秒值用P1口的发光二极管来显示
MOV P1,#11111110B
AJMP TST
TST2: CJNE A,#02,TST3
MOV P1,#11111100B
AJMP TST
TST3: CJNE A,#03,TST4
MOV P1,#11111000B
AJMP TST
TST4: CJNE A,#04,TST5
MOV P1,#11110000B
AJMP TST
TST5: CJNE A,#05,TST
MOV P1,#11100000B
TST: MOV A,DISFZ
MOV B,#10
DIV AB ;转换当前分钟数据
MOV DIS3,A ;得到十分值
MOV DIS4,B ;得到分值
MOV A,DISXS
MOV B,#10
DIV AB ;转换当前小时数据
MOV DIS1,A ;得到十小时值
MOV DIS2,B ;得到小时值
CLR P2.6 ;允许数码管显示
MOV A,DIS1 ;显示十小时值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
LCALL DELAY
MOV A,DIS2 ;显示小时值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
JB BDP,DP1
ANL A,#01111111B
DP1: MOV P0,A
SETB P2.0
CLR P2.1
SETB P2.2
SETB P2.3
SETB P2.4
LCALL DELAY
MOV A,DIS3 ;显示十分钟值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
MOV P0,A
SETB P2.0
SETB P2.1
CLR P2.2
SETB P2.3
SETB P2.4
LCALL DELAY
MOV A,DIS4 ;显示分钟值
MOV DPTR,#SGTB
MOVC A,@A+DPTR
JB BDP,DP2
ANL A,#01111111B
DP2: MOV P0,A
SETB P2.0
SETB P2.1
SETB P2.2
CLR P2.3
SETB P2.4
LCALL DELAY
十秒值已经用发光二极管来表示,第五位数码管显示的是秒值
MOV A,DIS6 ;显示秒值
MOV DPTR,#SGTB1
MOVC A,@A+DPTR
MOV P0,A
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
CLR P2.4
LCALL DELAY
AJMP MAIN ;循环
PGT0: PUSH ACC ;定时器T0中断处理程序
MOV TH0,#4CH ;50MS
MOV TL0,#05H
DJNZ R3,T0RET
MOV R3,#10
CPL BDP
INC MS500
MOV A,MS500
CJNE A,#2,T0RET
MOV MS500,#00H
INC DISMZ
MOV A,DISMZ
CJNE A,#60,T0RET
MOV DISMZ,#00H
INC DISFZ
MOV A,DISFZ
CJNE A,#60,T0RET
MOV DISFZ,#00H
INC DISXS
MOV A,DISXS
CJNE A,#24,T0RET
MOV DISXS,#00H
T0RET: POP ACC
RETI
******** 8位共阳数码管字型表 ***********
SGTB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H, 80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,89H,0A3H, 8CH,0C8H
sgtb1:
db 24h,7dh,0e0h,70h,39h,32h,22h,7ch,20h, 30h,28h,23h,0a6h,61h,0a2h,0aah
******** 延时子程序 ********
DELAY: MOV R1,#2
Y1: MOV R2,#200
DJNZ R2,$
DJNZ R1,Y1
RET
********** 10ms延时程序 ***********
YS10MS: MOV R7,#100
DL1: MOV R6,#0FFH
DL0: DJNZ R6,DL0
DJNZ R7,DL1
RET
******* 音效子程序 *******
SOUND: MOV R7,#228
SDL1: CPL P3.7
MOV R6,#0FFH
SDL0: DJNZ R6,SDL0
DJNZ R7,SDL1
RET
********** 0.5s延時子程序 ***********
DELAY05s:
MOV R5,#2
D8: MOV R6,#10
D9: MOV R7,#248
DJNZ R7,$
DJNZ R6,D9
DJNZ R5,D8
RET
END
5.2 程序流程图
延时1秒
按键K1为0
Y
N
子程序2
子程序1
Y
N
N
Y
DISFZ=00
DISXS+1
DISXS=24
DISXS=0
N
Y
Y
N
按键K1为0
DISMZ=00
DISFZ+1
DISFZ=60
主程序SEND
DISMZ=60
DISMZ+1
I
开始
计数单元清零
TH0、TL0装入初值
开中断,并允许T0中断
子程序1
开始
N
N
K2=1
K3=1
DISFZ+1
DISFZ-1
K4 =1
主程序SEND
Y
Y
N
子程序1
开始
N
N
K2=1
K3=1
DISXS+1
DISXS-1
K4 =1
主程序SEND
Y
Y
N
六、测量过程的操作说明,原始测量数据的记录。
6.1操作说明操作功能说明
功能说明表
按键
功能
K1
当按一下K1,进入调整小时状态,再按一下,进入到调整分钟状态,如此循环
K2
用来对 小时 和 分钟 进行加时间(每次加1)
K3
用来对 小时 和 分钟 进行减时间(每次减1)
K4
确认键,退出选中小时或分钟
发光二极管
对秒数的十位数进行记录,亮一盏灯代表十秒,亮两盏灯代表二十秒,如此累推
6.2原始测量数据的记录
数据记录表
初始值
12.30.0
按一次K1
12.##.#
按一次K2
13.##.#
按一次K3
12.##.#
第二次按K1
##.30.#
按一次K2
##.31.#
按一次K3
##.30.#
按K4
12.30.0
七、结论及存在问题
通过用汇编对K1、K2、K3、K4的编译,可以初步实现调整时钟时间的功能。但在编译过程中也遇到不少问题,第一,编译时有跳出转移范围的问题,这是由于判断语句 JB、JNB 的转移范围是-128~+127字节,出现这样的问题是由于超出转移范围。第二,要实现选中小时或者分钟位上的闪烁,要用到延时和对数码管的显示效果,但达不到指定目的,数码管闪烁的效果不明显,这是由于延时的时间不够长,使得人眼难以看得清。
八、心得体会总结
本文介绍的是利用AT89C51单片机设计的有调时功能的电子时钟。并详细说明了软件和硬件设计方法。在设计过程中可以看出,汇编语言有着其独特的魅力,它简单易学,语法错误容易纠正;用单片机实现电子时钟的设计是比较方便和易于实现。
通过电子时钟的设计和制作,加深了对单片机的理解,能够更熟练地应用单片机实现预期的功能,对今后的学习有很大的帮助。电子时钟各项功能的实现,为自动控制的实现打下了理论基础,获得了实现方法。
当然,该电子钟还有很多不足之处,比如不能定时,不能报时。断电后不能只能调时。在今后的学习中还要对此加以研究,
九、参考文献及网站
《单片机原理及其接口技术》胡汉才 编著 北京 清华大学出版社
《51系列单片机及C51程序设计》王建校等 科学出版社
其它有关资料
几个有关单片机和芯片资料的网站:
http://www.mcu-
http://www.wave-
………….
等及其相关链接
展开阅读全文