📄 scan.c
字号:
#define SUBRAM
#include "ram.c"
/*P0.0-P0.3->低4位*/
/*P5.0-P5.3->高4位*/
/*0->开,1->关*/
const unsigned char Dig_tab[] = { 0b11000000,0b11111100,0b01010010,0b01010100,
0b01101100,0b01000101,0b01000001,0b11001100,
0b01000000,0b01000100,0b01001000,0b01100001,
0b11000011,0b01110000,0b01000011,0b01001011};
void openDig0(),openDig1(),openDig2(),openDig3(),dig_off();
/*---------------------------------*/
void openDig0()
{
dig4 = 1;
dig2 = 1;
dig3 = 1;
dig1 = 0;
}
void openDig1()
{
dig1 = 1;
dig3 = 1;
dig4 = 1;
dig2 = 0;
}
void openDig2()
{
dig1 = 1;
dig2 = 1;
dig4 = 1;
dig3 = 0;
}
void openDig3()
{
dig1 = 1;
dig2 = 1;
dig3 = 1;
dig4 = 0;
}
void dig_off()
{
dig1 = 1; /*数码管*/
dig2 = 1; /*数码管*/
dig3 = 1;
dig4 = 1;
}
/*-------------------------*/
/*传递参数:
data_showL
data_showh
led_show
*/
/*-------------------------*/
void LEDscan()
{
if (++TmsCnt >= 2) /*led扫描时间:2*1ms = 2ms*/
{
TmsCnt = 0x00;
if (++show_cnt >= 4) /*show_cnt之前已清0,++后为1*/
{
show_cnt = 0x00;
}
dig_off(); /*送数前先关显示*/
switch(show_cnt)
{
case 0:
send_byte = Dig_tab[show_buff[show_cnt]];
P0 = (P0 | 0x0f) & (send_byte | 0xf0);
P5 = (P5 | 0x0f) & ((send_byte >> 4) | 0xf0);
openDig0();
break;
case 1:
send_byte = Dig_tab[show_buff[show_cnt]];
P0 = (P0 | 0x0f) & (send_byte | 0xf0);
P5 = (P5 | 0x0f) & ((send_byte >> 4) | 0xf0);
openDig1();
break;
case 2:
send_byte = Dig_tab[show_buff[show_cnt]];
P0 = (P0 | 0x0f) & (send_byte | 0xf0);
P5 = (P5 | 0x0f) & ((send_byte >> 4) | 0xf0);
openDig2();
break;
default:
send_byte = Dig_tab[show_buff[show_cnt]];
P0 = (P0 | 0x0f) & (send_byte | 0xf0);
P5 = (P5 | 0x0f) & ((send_byte >> 4) | 0xf0);
openDig3();
break;
}
}
}
/*-------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -