单片机课程动静态显示设计方案docx.docx

上传人:b****3 文档编号:26646457 上传时间:2023-06-21 格式:DOCX 页数:67 大小:137.02KB
下载 相关 举报
单片机课程动静态显示设计方案docx.docx_第1页
第1页 / 共67页
单片机课程动静态显示设计方案docx.docx_第2页
第2页 / 共67页
单片机课程动静态显示设计方案docx.docx_第3页
第3页 / 共67页
单片机课程动静态显示设计方案docx.docx_第4页
第4页 / 共67页
单片机课程动静态显示设计方案docx.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

单片机课程动静态显示设计方案docx.docx

《单片机课程动静态显示设计方案docx.docx》由会员分享,可在线阅读,更多相关《单片机课程动静态显示设计方案docx.docx(67页珍藏版)》请在冰豆网上搜索。

单片机课程动静态显示设计方案docx.docx

单片机课程动静态显示设计方案docx

 

单片机课程动静态显示设计方案

 

一、设计任务与要求

 

1.1设计背景

 

随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由

于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。

单片机以

其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能

仪器仪表、家电产品等领域。

近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的

需求。

多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、

数字闹钟等等。

单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟

的功能及工作顺序都非常熟悉。

但是却很少知道它的部结构以及工作原理。

由单

片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,

将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行定时、校

时功能。

输出设备显示器可以用液晶显示技术和数码管显示技术。

单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试。

 

1.2课程设计目的

 

通过《单片机原理与应用》课程设计,使学生掌握单片机及其扩展系统设计

的方法和设计原则及相应的硬件调试的方法。

进一步加深单片机及其扩展系统设

 

计和应用的理解

 

1.3设计要求

 

1、主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、

 

整点报时电路组成

2、秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶

 

体振荡器加分频器来实现。

将标准秒信号送入“秒计数器”,“秒计数器”采用

60进制计

数器,每累计

60秒发出一个“分脉冲”信号,

该信号将作为“分计数器”的时钟脉冲。

“分

计数器”也采用

60进制计数器,每累计

60分钟,发出一个“时脉冲”信号,

该信号将被送

到“时计数器”。

“时计数器”采用

24进制计时器,可实现对一天

24小时的累计

3、译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,

 

通过六位LED七段显示器显示出来

4、校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的

 

二、总体方案设计

 

2.1电路的总体原理框图

 

根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:

单片机模块、数码

显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示

 

晶振

单片机数码管显示

 

时间调整器

 

图1硬件电路方框图

 

2.2实现时钟计时的基本方法

 

利用STC系列单片机的可编程定时/计数器、中断系统来实现时钟计数。

 

(1)计数初值计算:

 

把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位

秒,而100次计数可用软件方法实现。

 

假设使用T/C0,方式1,50ms定时,fosc=12MHz。

 

则初值X满足(216-X)×1/12MHz×12μs=50000μs

X=15536→10000→3CB0H

 

(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);

 

(3)从秒到分和从分到时的计时是通过累加和数值比较实现。

 

2.3电子钟的时间显示

 

电子钟的时钟时间在六位数码管上进行显示,因此,在部RAM中设置显示缓冲区共8

 

个单元。

LED8LED7LED6LED5LED4LED3LED

 

2LED1

 

37H36H35H34H33H32H

 

31H30H

 

时十位时个位分隔分十位分个位分隔秒十

 

位秒个位

 

2.4电子钟的时间调整

 

电子钟设置3个按键通过程序控制来完成电子钟的时间调整。

 

A键按一次调整时,按第二次调整分钟,第三次推出时间调整;

 

B键对小时或分钟进行加一;

C键对小时或分钟进行减一;

 

2.5总体方案介绍

 

2.5.1计时方案

 

利用STC89C52单片机部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计

 

时。

该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻

 

炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一

 

定的作用。

 

2.5.2控制方案

 

STC89C52的P0口和P1口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P1口作八个LED数码管的位控输出线,P3口外接四个按键A、B、C构成键盘电路。

STC89C52是一种低功耗,高性能的CMOS8位微型计算机。

它带有8KFlash可编程和

 

擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工

业上标准的80C51和80C52的指令系统及引脚兼容,片Flash集成在一个芯片上,可用与

 

解决复杂的问题,且成本较低。

简易电子钟的功能不复杂,采用其现有的I/O便可完成,所

 

以本设计中采用此的设计方案。

 

三、数字钟的硬件设计

 

3.1最小系统

 

3.1.1芯片分析

 

STC89C52单片机引脚图如下:

 

图3-1STC89C52引脚图

 

MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:

 

VCC:

+5V电源。

VSS:

接地。

 

RST:

复位信号。

当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完

 

成单片机的复位初始化操作。

XTAL1和XTAL2:

外接晶体引线端。

当使用芯片部时钟时,此二引线端用于外接石英晶

 

体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

P0口:

P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才

 

能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“

1”,使

FET截止,

以避免锁存器为“

0”状态时对引脚读入的干扰。

 

P1口:

P1口是一个部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;

 

因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁

存器写“1”,使输出驱动电路的FET截止。

P2口:

P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。

P2

 

口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。

 

P3口:

P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。

当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输

 

出端数据输出通路的畅通。

当输出第二功能信号时,该位应应置“1”,使与非门对第二功

能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如表

3-1所示。

P3引脚

兼用功能

P3.0

串行通讯输入(RXD)

P3.1

串行通讯输出(TXD)

P3.2

外部中断0(INT0)

P3.3

外部中断

1(INT1)

P3.4

定时器0

输入(T0)

P3.5

定时器1

输入(T1)

P3.6

外部数据存储器写选通

WR

P3.7

外部数据存储器写选通

RD

表3-1

P3端口引脚兼用功能表

 

3.1.2晶振电路

 

右图所示为时钟电路原理图,在AT89S51芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片部,XTAL1和XTAL2之间跨接晶体振荡器

 

和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

 

图3-2晶振电路

 

3.2数码显示模块设计

 

显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,

单片机应用系统中常用的显示器有:

发光二极管LED显示器、液晶LCD显示器、CRT显示

器等。

LED显示器是现在最常用的显示器之一,如下图所示。

 

图3-4LED显示器的符号图

发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单

独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。

分段式

显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。

加正向电压时二极管导通,发出清晰的光。

只要按规律控制各发光段亮、灭,

就可以显示各种字形或符号。

LED数码管有共阳、共阴之分。

图是共阳式、共阴

式LED数码管的原理图和符号。

 

图3-5共阳式、共阴式LED数码管的原理图和数码管的符号图

 

系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控

 

线。

动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然

 

在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔

 

时间足够短,就可以给人以同时显示的感觉。

 

四、系统软件设计

 

4.1软件设计分析

 

在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始

定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。

在主程序中,

对不同的按键进行扫描,实现秒表,时间调整,复位清零等功能。

 

4.2源程序清单

 

DISBEG

 

EQU30H

CALB

EQUP1.7

TIMCON

EQU2FH

ORG

0000H

;程序开始

LJMP

MAIN

ORG

0003H

;关外中断

0

RETI

 

ORG

000BH

;定时器T0中断程序入口

LJMP

INTT0

;跳至INTTO执行

ORG

0013H

;关中断1

RETI

ORG

001BH

;定时器

T1中断程序入口

LJMP

INTT1

;跳至INTT1执行

ORG

0023H

;关串行中断

RETI

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH

;共阳段码表

"0""1""2""3""4""5""6""7""8""9""

不亮""A""-"

I_TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H

;

显示数"0

1

2

3

4

5

6

7

89

不亮C-A"

;

存数"01

2

3

4

5

6

7

8

90AH0BH0CH0DH"

;STAB表,启动时显示

2013年06月07日、A01-01-15(学号)用

STAB:

DB0AH,0AH,0AH,0AH,0AH,0AH,05H,01H,0CH,01H,00H,0CH,01H,00H,0DH,0AH,0AH

DB07H,00H,0CH,06H,00H,0CH,03H,01H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH

DLY1M:

MOV

R6,#14H

;1毫秒延时

DL_LOOP:

MOV

R7,#19H

DL_LOOP1:

DJNZ

R7,DL_LOOP1

DJNZ

R6,DL_LOOP

RET

DLY20M:

CLR

CALB

;20毫秒延时

LCALL

D_II_PLAY

LCALL

D_II_PLAY

LCALL

D_II_PLAY

SETB

CALB

RET

DL_LOOPS:

LCALL

DL05S

LCALL

DL05S

RET

DL05S:

MOV

R3,#20H

;8毫秒*32=0.196秒

DL05S1:

LCALL

D_II_PLAY

DJNZ

R3,DL05S1

RET

;程序开始;;

;整点报时用

CTIME:

MOVA,#10H

MOVB,79H

MULAB

ADDA,78H

MOVTIMCON,A

CLOOP:

LCALLDLY20M

LCALLDL_LOOPS

LCALLDL_LOOPS

 

LCALL

DJNZ

CLR

AJMP

 

DL_LOOPS

TIMCON,CLOOP

08H

MLOOP1

;主程序开始

MAIN:

LCALLST

;上电显示年月日及班级学号

MOV

R0,#00H

;清00H-7FH存单元

MOV

R7,#80H

;

MLOOP:

MOV

R0,#00H

;

INC

R0

;

DJNZ

R7,MLOOP

;

MOV

20H,#00H

;清20H(标志用)

MOV

7AH,#0AH;放入"熄灭符"数据

MOV

TMOD,#11H

;

设T0、T1为16位定时器

MOV

TL0,#0B0H

;50MS定时初值(

T0计时用)

MOV

TH0,#3CH

;50MS定时初值

MOV

TL1,#0B0H

;50MS定时初值(

T1闪烁定时用)

MOV

TH1,#3CH

;50MS定时初值

SETB

EA

;

总中断开放

SETB

ET0

;

允许T0中断

SETB

TR0

;

开启T0定时器

MOV

R4,#14H

;1

秒定时用计数值(50MS×20)

MOV

DISBEG,#70H

;显示单元为70-75H

;以下主程序循环

MLOOP1:

LCALL

D_II_PLAY

;调用显示子程序

JNB

P1.0,T_SETSC

;P1.0口为0时转时间调整程序

JNB

P1.1,DLY5

;秒表功能,

P1.1按键调时时作减

1加能

JNB

P1.2,FUNBT

;

秒表STOP,PUSE,CLR

JNB

P1.3,TSET

JB

08H,CTIME

AJMP

MLOOP1;P1.0

口为1时跳回MLOOP1

FUNBT:

LJMP

DLY6

TSET:

LCALL

DLY20M

JB

P1.3,MLOOP1

;

TS_LOOP:

JNB

P1.3,TS_LOOP

;等待键释放

JB

05H,CLRBELL

MOV

DISBEG,#50H

MOV

50H,#0CH

;"-"-

MOV

51H,#0AH

;"黑"

MINCHG:

SETB

EA

LCALL

D_II_PLAY

JNB

P1.2,DLY1

;

分加1

JNB

P1.0,DLY3

;

分减1

JNB

P1.3,DLY

;进入时调整

 

AJMP

MINCHG

CLRBELL:

CLR

05H

CLR

CALB

AJMP

MLOOP1

DLY:

LCALL

DLY20M

;消抖

JB

P1.3,MINCHG

LJMP

DLY8

;进入时调整

T_SETSC:

LJMP

R_SETTIM

;转到时间调整程序

R_SETTIM

DLY1:

LCALL

DLY20M

;消抖

JB

P1.2,MINCHG

DLY2:

LCALL

D_II_PLAY

;等键释放

JNB

P1.2,DLY2

CLR

EA

MOV

R0,#53H

;

LCALL

ADD_1

MOV

A,R3

;分数据放入A

CLR

C

;清进位标志

CJNE

A,#60H,ADD_M;

ADD_M:

JC

MINCHG

;小于60分时返回

ACALL

CLR_H

;大于或等于

60分时分计时单元清

0

AJMP

MINCHG

DLY3:

LCALL

DLY20M

;消抖

JB

P1.0,MINCHG

DLY4:

LCALL

D_II_PLAY;

等键释放

JNB

P1.0,DLY4

CLR

EA

MOV

R0,#53H

;

LCALL

SUB_M

LJMP

MINCHG

;以下秒表功能/时钟转换程序

;按下P1.1可进行功能转换

DLY5:

LCALL

DLY20M

JB

P1.1,T_MLOOP1

JNB

P1.1,$

CPL

03H

JNB

03H,DIS_SET

MOV

DISBEG,#60H

;显示秒表数据单元

MOV

60H,#00H

MOV

61H,#00H

MOV

62H,#00H

MOV

63H,#00H

MOV

64H,#00H

MOV

65H,#00H

MOV

TL1,#0F0H

;10MS定时初值()

 

MOV

TH1,#0D8H

;10MS定时初值

SETB

TR1

SETB

ET1

T_MLOOP1:

LJMP

MLOOP1

DIS_SET:

MOV

DISBEG,#70H;显示时钟数据单元

CLR

ET1

CLR

TR1

T_MLOOP11:

LJMP

MLOOP1

;以下秒表暂停清零功能程序

;按下P1.2暂停或清0,按下P1.1退出秒表回到时钟计时

DLY6:

LCALL

DLY20M

JB

P1.2,T_MLOOP11

T_EST11:

JNB

P1.2,T_EST11

CLR

ET1

CLR

TR1

T_EST22:

JNB

P1.1,DLY5

JB

P1.2,T_EST21

LCALL

DLY20M

JB

P1.2,T_EST22

T_EST55:

JNB

P1.2,T_EST51

MOV

60H,#00H

MOV

61H,#00H

MOV

62H,#00H

MOV

63H,#00H

MOV

64H,#00H

MOV

65H,#00H

T_EST33:

JNB

P1.1,DLY5

JB

P1.2,T_EST31

LCALL

DLY20M

JB

P1.2,T_EST33

T_EST44:

JNB

P1.2,T_EST41

SETB

ET1

SETB

TR1

AJMP

MLOOP1

;以下键等待释放时显示不会熄灭用

T_EST411:

LCALL

D_II_PLAY

AJMP

T_EST11

T_EST21:

LCALL

D_II_PLAY

AJMP

T_EST22

T_EST31:

LCALL

D_II_PLAY

AJMP

T_EST33

T_EST41:

LCALL

D_II_PLAY

AJMP

T_EST44

T_EST51:

LCALL

D_II_PLAY

 

AJMPT_EST55

;1秒计时程序

;T0中断服务程序

INTT0:

PUSH

ACC

;累加器入栈保护

PUSH

PSW

;状态字入栈保护

CLR

ET0

;关T0中断允许

CLR

TR0

;关闭定时器

T0

MOV

A,#0B7H

;中断响应时间同步修正

ADD

A,TL0

;低8位初值修正

MOV

TL0,A

;重装初值(低8位修正值)

MOV

A,#3CH

;高8位初值修正

ADDC

A,TH0

MOV

TH0,A

;重装初值(高8位修正值)

SETB

TR0

;开启定时器

T0

DJNZ

R4,I_INT0

;20次中断未到中断退出

A_DDS:

MOV

R4,#14H

;20

次中断到(1秒)重赋初值

 

CPL

07H

MOV

R0,#71H

;指向秒计时单元(

71H-72H)

ACALL

ADD_1

;调用加

1程序(加

1秒操作)

MOV

A,R3

;秒数据放入A(R3为2位十进制数组合)

CLR

C

;清进位标志

CJNE

A,#60H,A_DDM

A_DDM:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1