单片机学习笔记(三)——数码管显示
来源:互联网 发布:windows无法打开此文件 编辑:程序博客网 时间:2024/06/04 13:23
LED显示器的接法:
(1)共阴极
(2)共阳极
共阴极 共阳极
七段数码管加上一个小数点,共计 8 段。因此为LED显示器提供的编码正好是一个字节。TX 实验板用共阴 LED显示器,根据电路连接图显示 16 进制数的编码已列在下表。
LED数码显示方式及电路:
(1)静态显示方式
特点:每个数码管的段选必须接一个 8 位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
优点:占用CPU时间少,显示便于监测和控制。
缺点:硬件电路比较复杂,成本较高。
(2)动态显示方式
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示(即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示)。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
LED数码显示程序(C 语言):
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2 ^ 6;//段选
sbit wela = P2 ^ 7;//位选
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);//延时
int main()
{
wela = 1;//11101010 打开锁存器
P0 = 0xea; //选择LED数码管
wela = 0; //锁住LED数码管
while(1)
{
for(num = 0; num < 16; num++)
{
dula = 1; //打开锁存器
P0 = table[num]; //数值编码
dula = 0; //锁住LED显示
Delay(1000); //延时1s
}
}
return 0;
}
void Delay(unsigned int xx) //输入 xx :ms
{
while(xx--)
{
Delay1ms();
}
}
void Delay1ms()//@11.0592MHz 1ms
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
1 0
- 单片机学习笔记(三)——数码管显示
- 51单片机学习笔记【三】——数码管实验
- C51单片机学习(三):数码管动态显示和键盘
- 学习笔记 从零开始学单片机(2) 全八段数码管显示
- 51单片机—数码管显示
- 单片机—数码管静态显示
- 单片机实验——电子表(数码管动态显示技术)
- 单片机入门——数码管动态显示
- 单片机数码管动态显示—C语言版
- 嵌入式学习笔记(6)——51单片机之数码管
- 51单片机学习笔记(二) 单个数码管显示1到9
- C51单片机学习(一):LED和数码管静态显示
- 单片机——数码管
- 51单片机学习(三)数码管秒表完成啦!
- 8051单片机学习篇(三)----对数码管的操作
- FPGA学习笔记一(数码管显示)
- C51学习笔记(一)---数码管显示
- 数码管流动显示(自己的单片机)
- CSS里padding和margin的区别是什么?
- Android项目程序结构
- UVA 10375 - Choose and divide(数论)(组合数学)
- 辅助函数
- c++实验6--矩阵求和
- 单片机学习笔记(三)——数码管显示
- (4.6.12.7)Activity中ConfigChanges属性的用法
- struts2复制项目的时候需要注意的
- 手机开发实战39——设计模式介绍
- 手机开发实战40——手机模块设计1
- 手机开发实战41——手机模块设计2
- js连接sqlite(IE内核浏览器适用)
- php数组分组问题
- CentOS Yum命令