admin 管理员组

文章数量: 887021


2024年1月26日发(作者:spring 常问面试题)

两位数码管显示设计

摘 要:本设计以AT89S52单片机为主控模块,利用汇编语言编写两位数码管循环扫描动态显示的专用程序来实现两位数码管动态显示系统,系统主要由电源模块、复位模块、外部时钟电路模块、数码管显示模块构成。电源电路通过桥堆2W10和三端稳压器7805将交流电压变为5V的直流电压。复位电路由电容与按键的并联来实现。时钟通过外部12M的晶振来控制。两位数码管显示由两个共阳极的三极管进行驱动。将汇编语言编写的两位数码管动态显示程序写入单片机来控制P2口,使数码管相应段点亮,同时利用人眼视觉暂留的特性和数码管的余辉效应,在扫描频率足够高时,人眼无法感觉数码管的变化,从而实现数码的动态显示。

关键词:AT89S52;两位数码管;动态显示

目录

1.设计背景 ........................................................................................................ 1

1.1单片机发展前景 .................................................................................... 1

1.2共阳极数码管的显示方法 .................................................................... 1

1.3共阳极数码管的驱动设计 .................................................................... 1

2.设计方案 ........................................................................................................ 1

2.1方案一:共阳极数码管静态显示 ........................................................ 1

2.2方案二:共阳极数码管动态显示 ........................................................ 2

2.3数码管静态与动态显示的优缺点比较 ................................................. 3

3.方案实施 ........................................................................................................ 3

3.1硬件电路的实施 .................................................................................... 3

3.2 电源电路设计 ....................................................................................... 4

3.3复位及振荡电路 .................................................................................... 4

3.4 数码管显示 ........................................................................................... 5

3.5 连接方式 .............................................................................................. 5

3.6软件设计 ............................................................................................... 5

3.7 实物制作 .............................................................................................. 8

4.结果与结论 .................................................................................................... 8

4.1 结果 ...................................................................................................... 8

4.2结论 ....................................................................................................... 8

5.收获与致谢 .................................................................................................... 8

6.参考文献 ........................................................................................................ 9

7.附 件 .......................................................................................................... 10

7.1元器件清单.......................................................................................... 10

7.2 硬件原理图 ......................................................................................... 11

7.3 实物图 ................................................................................................ 12

1.设计背景

1.1单片机发展前景

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

1.2共阳极数码管的显示方法

LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果或输入输出信号的状态。数码管显示是一个系统工程中必不可少的人机交互环节,因此关于数码管的驱动也就是系统工程中的一个重要的环节。数码管的驱动分为动态驱动和静态驱动两种。所谓静态驱动,就是指无论多少位LED数码管,同时处于显示状态。动态显示驱动是指无论在任何时刻只有一个LED数码管处于显示状态,及单片机采用“扫描”方式控制各个数码管轮流显示。

1.3共阳极数码管的驱动设计

将数码管每个LED灯对应单片机的一个I/O口。通过单片机的P口来控制LED灯的亮和灭。I/O口之间互相独立,需要用I/O口直接控制LED。动态显示将数码管的每个引脚一对一连接在一起接单片机的数据,而将各个数码管的公共端单独送至单片机的I/O口进行片选。此外,在此基础上,用单片机与三极管来驱动数码管,从而实现数码管的动态显示。

2.设计方案

2.1方案一:共阳极数码管静态显示

数码管静态显示电路如图2-1所示:1

图2-1 数码管静态显示电路

2.2方案二:共阳极数码管动态显示

数码管动态显示电路如图2-2所示:

图2-2 数码管动态显示电路

2

2.3数码管静态与动态显示的优缺点比较

静态显示方式简单不容易出错,如果电路设计合适,也能够用较少的线完成多个数码管的显示。但与动态显示相比,动态显示电路连接更简单,节省单片机I/O口,从而节省单片机的资源,如今已经有很多这样成熟的基于动态扫描的芯片,并且采用动态显示方式极大的节省单片机的资源,特别是在单片机的I/O数量比较紧张的情况下,更能体现采用动态显示的优越性。因此,在现在的多数电子系统中,数码管多数采用动态扫描技术来显示。

3.方案实施

3.1硬件电路的实施

1.硬件原理框图如下:

稳 压 电 路

AT89S52

单片机

复 位 电 路

两位数码管态显示电路

时 钟 电 路

图3-1 硬件组成框图

该电路的工作原理:AT89S52从稳压电路中获得稳定的+5V电压,接到VCC端,提供稳定的电压;P2口通过电阻接到显示电路的七段数码管的a b c d e f g 端口上,数码管的共阳极接到三极管的集电极上;P0.0、P0.1口接三极管的基极作为位选;RST接复位电路,实现电路的复位;XTAL1、XTAL2接晶振电路;整个电路实现循环动态显示数字00~99.

3

3.2 电源电路设计

图3-2 电源电路

如图3-2所示,当外接交流电源经过变压通过桥堆2W10和 7805时,经C1、C2、C3、C4对电源进行滤波,实现交流电压变为5V的直流电源,从而直接给单片机提供正常的工作电压。

3.3复位及振荡电路

图3-3复位电路

图3-4振荡电路

如图3-3,复位电路用电容与按键的并联来实现,将它们并在一起,一端接高电平,另一端接地,从而实现高电平复位的功能。如图3-4,时钟由12M的晶振来组成振荡电路,来控制单片机对数码管的动态扫描。

4

3.4 数码管显示

图3-5 数码管显示电路

如图3-5所示,两位数码管分别由两个PNP型三极管驱动,三极管的基极通过限流电阻接在单片机P0.0、P0.1,其中P0.0控制数码管的个位,P0.1控制数码管的十位。数码管各段除小数点段外其余七段(a-g)通过限流电阻接在单片机P2口(P2.0-P2.6),两位数码管显示由单片机内部程序控制相应接口为低电平,从而实现从00—99动态循环显示。例如:十位和个位显示原理相同,谨以个位说明。当个位数码管显示5时,5在程序中查表对应的十六进制数为92H,对应二进制为10010010B,其中P2.7、P2.4、P2.1为高电平,DP、e、b段熄灭,P2.6、P2.5、P2.3、P2.2、P2.0为低电平,g、f、d、c、a段点亮,则此时数码管上显示数字5。

3.5 连接方式

单片机采用P2口的I/O来控制数码管的各个引脚。复位键接到引脚9上,数码管的位选通过三极管和电阻分别与单片机的引脚1和39相连,晶振与单片机的引脚18和19连接,高电平与40引脚连接供电,20引脚直接接地。

3.6软件设计

此程序采用汇编语言用十六进制算法编写了两位数码管循环扫描动态显示的专用程序。通过软件的控制使两位数码管能从00计数到99,再回到00,依次进行循环。若5

在计数期间有复位高电平出现时,便重新从00开始计数。并有电源开关控制让电路是否工作,且有指示灯只是电源是否正常。

程序流程图如下:

图3-6 程序流程图

程序如下:

BITS EQU 20H;数码管个位数存放内存位置

TEN EQU 21H;数码管十位数存放内存位置

TEMP EQU 22H;计数器值存放内存位置

START:

MOV TEMP,#0;初始化寄存器,从0开始

STLOP:

ACALL DISPLAY;调用显示子程序

INC TEMP;计数器加1

MOV A,TEMP;

CJNE A,#100,NEXT;判断计数器是否满100

6

MOV TEMP,#0;满100清零从新开始

NEXT:

LJMP STLOP;不满就循环执行

DISPLAY:

MOV A,TEMP;将TEMP中的十六进制数转换成十进制

MOV B,#10;

DIV AB

MOV TEN,A;十位在A

MOV BITS,B;个位在B

MOV DPTR,#NUMTAB;指定查表起始地址

MOV R0,#4;

DPL1:

MOV R1,#250;

DPLOP:

MOV A,BITS;取个位数

MOVC A,@A+DPTR;查个位的7段数码管

MOV P2,A;送出个位的7段代码

CLR P0.0;开个位显示

ACALL DELAY1ms;显示162ms

SETB P0.0;关闭个位显示

MOV A,TEN;取十位显示

MOVC A,@A+DPTR;查十位数的7段代码

MOV P2,A;送出十位的7段代码

CLR P0.1;开十位显示

ACALL DELAY1ms;显示162ms

SETB P0.1;关闭十位显示

DJNZ R1,DPLOP;执行循环250次

DJNZ R0,DPL1;执行循环250*4=1000次

RET

DELAY1ms:

7

MOV R7,#80;延时162ms子程序(2+2*80=162ms,按照12MHZ计算)

DJNZ R7,$;

RET

NUMTAB:DB 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90

END

3.7 实物制作

重点考虑了晶体和电容与单片机的位置关系。为了减少寄生电容,更好的保证振荡器稳定可靠地工作,应使晶体与电容尽可能安装得与单片机芯片近些。

4.结果与结论

4.1 结果

经过对不同方案的分析、比较、取舍,然后进行原理图的设计与仿真,再经过电路板的焊接,软件的调试等环节的操作,最终实现了让数码管在单片机的控制下循环显示两位数00-99。并且在正常的计数过程中,若按下复位键后,技术又重新从00开始计数。有时在刚接入电源时,数码管显示的不是00,这是需要按下复位键才能使其正常工作。最终现实的结果与预想的结果一致。

4.2结论

单片机有着很强大的功能,并有40个引脚,通过单片机的不同I/O端口与外设连接,能够控制外设的工作情况,从而实现不同的符合各种需求功能的电路板。LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果或输入输出信号的状态。

5.收获与致谢

这次两位数码管显示设计的实习,加深了我对单片机的原理和工作过程的了解,以及系统地、全面地掌握单片机应用系统的基本设计方法、设计步骤和电路参数的计算方法。同时,这次实习增强了我的动手能力,也让我对以前所学的知识进行了复习,更加8

熟练掌握了原理图的设计与仿真方法,了解硬件电路的焊接及调试过程应注意的问题,能用汇编语言进行软件的编写与调试。

在这次实习过程中,我非常感谢XXX老师给予我的细心指导和帮助,还有我们小组的每一个成员,这次实习的成功离不开老师的指导和小组的每位成员的努力与付出,所以真心的对大家表示感谢。

6.参考文献

[1] 张毅刚.单片机原理及应用(第二版).北京:高等教育出版社,2010.5

[2]童诗白.模拟电子技术基础(第四版).北京:高等教育出版社,2006.5

[3]林之琦.基于Proteus的单片机可视化软硬件仿真.北京:北京航空航天大学出版社,2006

9

7.附 件

7.1元器件清单

表7-1 元器件清单

数量 名称

1 数码管

1 稳压电源

2 整流桥

2 开关

1

电阻

2

2

名称 型号

单片机 AT89S52

晶振 11.0592MHH

三极管 9015

电解电容 1000UF

指示灯 红色

瓷片电容 104

33p

型号

SN43052

DE7805

2W10

2K

1K

680

数量

1

1

1

1

1

2

8

10

7.2 硬件原理图

图7—1 硬件原理图

11

7.3 实物图

图7-2 实物反面

图7-3 实物正面

12

指导教师评语:

课程设计报告成绩: ,占总成绩比例: 30%

课程设计其它环节成绩:

环节名称: 考勤 ,成绩: ,占总成绩比例: 20%

环节名称: 综合 ,成绩: ,占总成绩比例: 50%

总 成 绩:

指导教师签字:

年 月 日

本次课程设计负责人意见:

负责人签字:

年 月 日

13


本文标签: 数码管 单片机 显示