单片机控制数码管显示1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技术
任务1:
•数码管循环显示 0~9
单片机应用技术
【项目实践】 【活动一】总体设计
1.系统组成
本系统功能由硬件和软件两大部份协调完成,硬件部分 主要完成信息的显示;软件主要完成信号的处理及控制功能 等。 本系统的硬件采用模块化设计,以AT89S52单片机为核 心,与数码管接口电路组成控制系统。该系统硬件主要包括 以下几个模块:AT89S52主控模块、数码管显示模块等。 其中AT89S52主要完成外围硬件的控制以及一些运算功能, 数码管显示模块完成字符、数字的显示功能。系统组成方框 图如图2.1所示。
公共脚接低电平 A、B、C、D、E、F引 脚接高电平 G、Dp引脚接低电平
单片机应用技术
Dp 0
G 0
F 1
E 1Hale Waihona Puke Baidu
D 1
C 1
B 1
A 1
显示数字0的段码为:0x3F
根据这种方法,依次写出数字0-9的段码: 数字0 0x3F 数字5 0x6D 数字1 0x06 数字6 0x7D 数字2 0x5B 数字7 0x07 数字3 0x4F 数字8 0x7F 数字4 0x66 数字9 0x6F
单片机应用技术
#include <REG51.H> unsigned char code table1[]={0x06,0x5b,0x4f,0x66,0x6d};//1-5的字形码 unsigned char code table2[]={0x76,0x79,0x38,0x38,0x3f};//HELLO的字形码 unsigned char code table3[]={0xfe,0xfd,0xfb,0xf7,0xef};//位选码 unsigned char i,a; sbit button=P1^7;//位定义,不能直接用P1^7
P2.4 P2.3 0 1 0 1 1 1 0 1 0 0 1 0
P2.1 P2.0 0 0 0 0 0 1 0 1 0 0 1 0 C0H F9H A4H B0H 99H 92H
数字6
数字7 数字8 数字9
1
1 1 1
0
1 0 0
0
1 0 0
0
1 0 1
0
1 0 0
0
0 0 0
1
0 0 0
0
0 0 0
单片机应用技术
0-99计数显示c语言程序
• • • • • • • • • • •
#include <AT89X52.H> //包含AT89X52.H头文件 /*定义0~9十个数字的字型码表*/ unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char Count; //定义变量放置计数数值 void delay10ms(void) //定义10ms延时函数 { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); }
C1
30pF
R1
GND VCC 10k
9
RST
C3
10uF 29 30 31 PSEN ALE EA
R2
4.7k
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52
GND
2 3 4 5 6 7 8 9
S1 S2 S3 S4 S5 S6
单片机应用技术
一维数组的查表功能
数组的一个非常有用的功能之一就是查表。表可以事 先计算后装入程序存储器中。 如: • unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; //定义数组tab[],并初始化
单片机应用技术
0-99计时器显示c语言程序
void main(void) { Count=0; //计数变量初始为0 For(Count=0; Count<100; Count++) { P0=table[Count/10]; //显示十位数 P2=table[Count%10]; //显示个位数
管 外 形 和 电 路 结 构
数码管引脚顺序
单片机应用技术
数码管段码图
单片机应用技术
【教学目标】
1、终极目标:
制作在数码管上显示任意字符的单片机控制系统。
2、促成目标:
(1) 掌握单片机查表程序的设计方法; (2) 掌握单片机的LED显示接口电路工作原理及其应用; (3) 掌单片机LED显示接口的程序设计方法; (4) 初步掌握单片机应用系统分析和软硬件设计的基本方 法,建立单片机系统设计的基本概念;
R1
10k
C2
30pF
9
RST
C3
10uF 29 30 31 PSEN ALE EA
R2
10k
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89S52
2 3 4 5 6 7 8
单片机应用技术 静态显示的概念 静态显示是指显示驱动电路具有输出锁存功能,待 显示的字符编码被CPU送出后,数码管会一直显示该字符 不变,CPU不需要再控制数码管,如果要显示新的字符, CPU只要再次送出即可。 采用静态显示方式,较小的电流就可以获得较高的 亮度,且占用CPU时间较少,编程简单,显示便于检测和 控制,但其占用的I/O口线较多,硬件电路复杂,成本高 ,只适合显示位数较少的场合。
单片机应用技术
【项目实践】
电源电路
时钟电路
单 片 机
数码管显示电路
复位电路
图2.1 数码管显示系统组成方框图
单片机应用技术
应用软件采用模块化设计方法。该系统软件主 要由主程序、延时子程序等模块组成,系统软件结 构框图如图2.2所示。
延时子程序
主程序
图2.2 系统软件结构框图
单片机应用技术
2.系统工作原理
•
•
单片机应用技术
任务2 0-99计数器
利用AT89c52单片机来制作一个 0~99计时器, 并且通过两个共阴数码管显示计数结果,数码管 显示采用静态显示方式。
单片机应用技术 0-99计数器电路设计
RP1
4.7k-7
C1
1
30pF
U1 X1
19 XTAL1 CRYSTAL 18 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 P20 P21 P22 P23 P24 P25 P26 P20 P21 P22 P23 P24 P25 P26
•
• •
特点
• 原理简单;显示亮度强,无闪烁;占用I/O资源较多。
单片机应用技术
动态显示方式
连接
所有LED的段选线共同连接在一起共用一个 8位I /O 口,而每个 LED 的位选分别由一根相应的 I/O 口线控 制。因此必须采用动态扫描显示方式,每一个时刻只 选通其中一个 LED ,同时在段选口送出该位 LED 的字型 码。
数码管由8个发光二极管构成,可以用来显示数字、 字符等,它在家电及工业控制中有着很广泛的应用,例如 用来显示温度、数量、重量、日期、时间等,具有显示醒 目、直观的有点,如图2.3所示。
图2.3 数码管实物图
【项目实践】
单片机应用技术
图2.4 数码管内部结构图
二、数码管 如何显示数 字0 共阴极数码管
单片机应用技术
A B C D E F G DP
RP1
VCC 1kx8
C2
1
30pF
U1 X1
19 XTAL1 12M 18 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 S1 S2 S3 S4 S5 S6 A B C D E F G DP
单片机应用技术
表2.1 共阳数码管显示数字的段码表
段名称 对应引 脚 数字0 数字1 数字2 数字3 数字4 数字5 DP G F P2. 5 0 1 1 1 0 0 E D C P2. 2 0 0 1 0 0 0 B A 对应段 码
P2.7 P2.6 1 1 1 1 1 1 1 1 0 0 0 0
三、共阴极数 码管如何显示 其他数字
单片机应用技术
单片机应用技术
四、电路连 接
单片机应用技术
五、程序语句
要让数码管显示数字0,只需要将单片机的P2端口输出数 字0对应的段码0x3F即可,程序语句为P2=0x3F 同理显示数字1,程序语句为P2=0x06 同理显示数字9,程序语句为P2=0x6F
单片机应用技术
82H
F8H 80H 90H
单片机应用技术 如表2.1所示,由于数码管显示的数字“0~9”的字型码 “0C0H、0F9H、0A4H、0B0H、99H、92H、82H、0F8H、 80H、90H”没有规律可循,只能采用查表的方式来完成我们所需 的要求。在程序设计中可以设计一个变量,每隔一定时间在 “0~9”之间变化,然后按照这个数据去查找段码表,把查到的 数据送到P2口。 所谓表格是指在程序中定义的一串有序的常数,如平方表、 字形码表、键码表等。因为程序一般都是固化在程序存储器(通 常是只读存储器ROM类型)中,因此可以说表格是预先定义在 程序的数据区中,然后和程序一起固化在ROM中的一串常数。 在程序设计中,有时需要预先把非线性数据以表格的形式存 放在存储器中,然后使用程序读出,这种能读出数据表格的程序 就称为查表程序。 查表程序的关键是表格的定义和如何实现查表。
单片机应用技术
思考:用单片机系统可控制 LED 可实现信 号灯的不同效果显示,那么能不能用单片 机系统控制LED来实现字符显示呢?
单片机应用技术
学习情境2
数码管显示系统设计
单片机应用技术
单片机应用技术
数字型数码管应用
电子万年历
的士计价器
电子秤
电梯外呼器
制 数 码 管 显 示 数 字 ?
单片机应用技术
delay10ms();
}
while(1) ; //等待
}
单片机应用技术
动态显示
动态显示的特点是将所有位数码管的段选线并联在一起 ,由位选线控制是哪一位数码管有效。选亮数码管采用动 态扫描显示。所谓动态扫描显示即轮流向各位数码管送出 字形码和相应的位选,利用发光管的余辉和人眼视觉暂留 作用,使人的感觉好像各位数码管同时都在显示。动态显 示的亮度比静态显示要差一些,所以在选择限流电阻时应 略小于静态显示电路中的。
unsigned char k; while(1) { for(k=0;k<10;k++) { P2 = tab[k]; // 查表取数
单片机应用技术
4.LED数码管显示方式
根据LED显示的硬件设计方法的不同, LED显示驱动分为静态法和动态法两种方法。
单片机应用技术 静态显示方式
连接
所有 LED 的位选均共同连接到 +VCC 或 GND ,每个LED 的 8 根段选 线分别连接一个 8 位并行 I/O 口,从该 I/O 口送出相应的字型码显 示字型。
单片机应用技术
定义段码表
• unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90}; 查表语句
unsigned char k; while(1) { for(k=0;k<10;k++) { P2 = tab[k]; // 查表取数 …
五、单片机控制 数码管显示
代码如下:
#include <reg51.h> void main() { while(1) { P2=0x3F; } }
单片机应用技术
对于共阳极数码管而言,要想显示数字或字母,首先 应该选中该数码管,然后相应字段被点亮。例如:显 示一个“3”字,那么应当是a亮、b亮、c亮、d亮、e 不亮、f不亮、g亮、dp不亮。那么可以列出数码管显 示数字的段码表如表2.1所示。