源码 2 -- 8 位共阴极数码管的基本显示
程序就是利用锁存器,动态显示数字,使 8 位数码管看起来同时显示不同的字样……
附上源码:(初出茅庐,难免有写的不好的地方,仅作备份之用,欢迎指点,喷子退散……)
#include
#defineDATA P1 // 定义 P1 为数据输入
sbitSEG = P0^0;// 定义 段锁存器
sbitBIT = P0^2;// 定义 位锁存器
unsigned char codeSEG_CODE[ ] = {0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f};// 段码 1-8
unsigned char codeBIT_CODE[ ] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
// 位码 从 0 位至 7 位
voidDelay(unsigned intt);
voidmain (void)
{
unsigned chari = 0;
while(1) {
SEG = 1; // 关段锁存
DATA = SEG_CODE[i];// 送段码
SEG = 0;// 开段锁存,指定了某位具体显示什么数字
BIT = 1;// 关位锁存
DATA = BIT_CODE[i];// 送位码
BIT = 0;// 开位锁存,指定了哪一位显示
Delay(200); // 经测试:200 为佳,过小出现重影,过大出现闪烁
// 20 重影,300 数字抖动,2000 扫描闪烁
i++;
if(i==8) i = 0;// 循环显示
}
}
voidDelay(unsigned intt)
{
while(t--);
}
补充一个技巧:
突然某一位想显示小数点了,怎么办?
假如你正在使用temp[i]代表某一个显示字符,突然想显示小数点,可以使用temp[i] | 0x80,通过“或”运算实现加上小数点……
C51共阴极数码管基本显 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)