📄 mc14433.c
字号:
#include<reg52.h>
#include<intrins.h>
#define disdata P0
#define discan P2
#define uchar unsigned char
#define uint unsigned int
sbit q0=P1^0;
sbit q1=P1^1;
sbit q2=P1^2;
sbit q3=P1^3;
sbit ds1=P1^4;
sbit ds2=P1^5;
sbit ds3=P1^6;
sbit ds4=P1^7;
uchar a=0xf,b,c;
uchar code dis_7[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0xb9};
//共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" "-|"
uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; //列扫描控制字
data mc14433[4] _at_ 0x20;
/*11us延时*/
void delay(uint t){
for(;t>0;t--);
}
/*显示扫描涵数*/
scan()
{
char k;
for(k=0;k<4;k++) //4位LED扫描控制
{
disdata=dis_7[mc14433[k]]; //数据显示
discan=scan_con[k]; //位选
delay(200);
}
}
/*主涵数*/
void main(){
EA=1;
EX1=1;
IT1=1;
disdata=0xff;
discan=0xff;
while(1){
scan();
}
}
/*读mc14433*/
void mc()interrupt 2 using 1 {
while(ds1==0);
if(q0==1){
if(q2==1){mc14433[3]=0x01;
mc14433[2]=0x0a;
mc14433[1]=0x0a;
mc14433[0]=0x0a;
}
else{mc14433[3]=0x0c;
mc14433[2]=0x0a;
mc14433[1]=0x0a;
mc14433[0]=0x0a;
}
}
else{
if(q2==0){
if(q3==1){
mc14433[3]=0x0b;}
else{mc14433[3]=0x0c;}
}
else{
if(q3==1){
mc14433[3]=0x00;
}
else{mc14433[3]=0x01;
}
}
while(ds2==0);
mc14433[2]=(P1&0x0f);
while(ds3==0);
mc14433[1]=(P1&0x0f);
while(ds4==0);
mc14433[0]=(P1&0x0f);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -