- /************************************************
- 功能:LED--8051驱动测试程序(共阴极)
- 使用:调用函数 LEDn_display(*****)
- n表示用几个数码管显示n<=4
- 参数传递跟据具体情况确定
- 时间:2011年1月7日
- ************************************************/
- #include
- #include
- #define uint unsigned int
- #define uchar unsigned char
-
- sbit dula=P2^6; //段码控制
-
- sbit wela=P2^7; //位码控制
-
-
- /*共阴(CC)极显示段码*/
- uchar code LED_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
-
- void LED_delay(unsigned char LED_i) //1ms延时程序
-
- {
- unsigned char LED_j,LED_k;
- for(LED_j=LED_i;LED_j>0;LED_j--)
- for(LED_k=125;LED_k>0;LED_k--);
- }
-
- void LED1_display(uchar sh_c,uchar g_c) //1位显示程序
-
- {
- //显示个位
-
- P0=0xfb; wela=1; wela=0; //第一个数码码管当前显示
-
- P0=LED_table[g_c]; dula=1; dula=0; //显示的数字
-
- LED_delay(5);
- }
-
- void LED2_display(uchar sh_c,uchar g_c) //2位显示程序
-
- {
- //显示十位
-
- wela=0; P0=0xfd; wela=1; wela=0;
- dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
- LED_delay(5);
-
- //显示个位
-
- P0=0xfb; wela=1; wela=0;
- P0=LED_table[g_c]; dula=1; dula=0;
- LED_delay(5);
- }
-
- void LED3_display(uchar bai_c,uchar sh_c,uchar g_c) //3位显示程序
-
- {
-
- //显示百位
-
- P0=0xfe; wela=1; wela=0;
- P0=LED_table[bai_c]; dula=1; dula=0;
- LED_delay(5);
-
- //显示十位
-
- wela=0; P0=0xfd; wela=1; wela=0;
- dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
- LED_delay(5);
-
- //显示个位
-
- P0=0xfb; wela=1; wela=0;
- P0=LED_table[g_c]; dula=1; dula=0;
- LED_delay(5);
- }
-
- void LED4_display(uchar qian_c,uchar bai_c,uchar sh_c,uchar g_c) //4位显示程序
-
- {
- //显示千位
-
- P0=0xfe; wela=1; wela=0;
- P0=LED_table[bai_c]; dula=1; dula=0;
-
- //显示百位
-
- P0=0xfe; wela=1; wela=0;
- P0=LED_table[bai_c]; dula=1; dula=0;
- LED_delay(5);
-
- //显示十位
-
- wela=0; P0=0xfd; wela=1; wela=0;
- dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
- LED_delay(5);
-
- //显示个位
-
- P0=0xfb; wela=1; wela=0;
- P0=LED_table[g_c]; dula=1; dula=0;
- LED_delay(5);
- }
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』