51单片机数码管动态扫描C程序
2010-06-29 13:19
295 查看
#include <reg51.h>
sbit P00 = P0 ^ 0;
sbit P01 = P0 ^ 1;
sbit P02 = P0 ^ 2;
sbit P03 = P0 ^ 3;
int DATA_LED[11] =
{
//0~9的数码管段码 A0H,BBH,62H,2AH,39H,2CH,24H,BAH,20H,28H 根据具体电而定,不通用
0xA0, //0
0xBB, //1
0x62, //2
0x2A, //3
0x39, //4
0x2C, //5
0x24, //6
0xBA, //7
0x20, //8
0x28, //9
0xFF
};
void delay(int m) //延时程序,延时m*0.5毫秒
{
unsigned int i;
unsigned int j;
for (i = 0; i < m; i++)
{
for (j = 0; j < 500; j++){}
}
}
void led(int n) //数码管显示及数据处理程序
{
P1 = 0xFF;
P1 = DATA_LED[n % 10]; //个位
P00 = 0;
delay(1);
P00 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 10 % 10]; //十位
P01 = 0;
delay(1);
P01 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 100 % 10]; //百位
P02 = 0;
delay(1);
P02 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 1000 % 10]; //千位
P03 = 0;
delay(1);
P03 = 1;
}
void main(void)
{
while (1)
{
led(404); //显示数字404,实际显示的是0404,需要在led()函数中判断,没有千位的情况,不是让显示成0
}
}
sbit P00 = P0 ^ 0;
sbit P01 = P0 ^ 1;
sbit P02 = P0 ^ 2;
sbit P03 = P0 ^ 3;
int DATA_LED[11] =
{
//0~9的数码管段码 A0H,BBH,62H,2AH,39H,2CH,24H,BAH,20H,28H 根据具体电而定,不通用
0xA0, //0
0xBB, //1
0x62, //2
0x2A, //3
0x39, //4
0x2C, //5
0x24, //6
0xBA, //7
0x20, //8
0x28, //9
0xFF
};
void delay(int m) //延时程序,延时m*0.5毫秒
{
unsigned int i;
unsigned int j;
for (i = 0; i < m; i++)
{
for (j = 0; j < 500; j++){}
}
}
void led(int n) //数码管显示及数据处理程序
{
P1 = 0xFF;
P1 = DATA_LED[n % 10]; //个位
P00 = 0;
delay(1);
P00 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 10 % 10]; //十位
P01 = 0;
delay(1);
P01 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 100 % 10]; //百位
P02 = 0;
delay(1);
P02 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 1000 % 10]; //千位
P03 = 0;
delay(1);
P03 = 1;
}
void main(void)
{
while (1)
{
led(404); //显示数字404,实际显示的是0404,需要在led()函数中判断,没有千位的情况,不是让显示成0
}
}
相关文章推荐
- 51单片机数码管动态扫描不用延迟不用定时器照样没有余辉
- 51单片机开发系列三_数码管动态扫描显示
- 第二十六节:在主函数while循环中驱动数码管的动态扫描程序。
- 51单片机数码管的动态显示
- 第二十七节:在定时中断里动态扫描数码管的程序。
- 关于6位数码管动态扫描显示程序的一些问题
- 51单片机使用定时器进行数码管动态扫描程序
- 51单片机数码管动态显示
- 51单片机之动态数码管的实现
- 51单片机:8位数码管动态显示,从12345678开始,每次按S1键加1
- 51单片机入门之五:数码管显示(动态)
- 51单片机一位数码管汇编程序
- 一天:51单片机从入门到一个动态数码管显示数字控制
- 整理2010年51单片机程序--4*4按键与数码管显示
- 重拾单片机 第二天 数码管的使用 (动态扫描数码管)
- 51单片机 学习之旅[2] 数码管
- 外置式与增量式PID模板程序(51单片机c语言)
- 单片机按键与数码管试验程序 Proteus仿真
- 第六个试验:认识数码管扫描程序----51单片机汇编语言试验教程
- 51单片机延时程序的简单研究