📄 数字电压表1.c
字号:
/*OE=P3.7;EOC=P3.6;START=P3.5;ALE=P3.4;C=P3.3;B=P3.2;A=P3.1*/
#include <reg52.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_7[11]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};
/* 共阳七段LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" */
uchar code scan_con[4]={0xf7,0xfB,0xfD,0xfE};
//uint data disdata[4]={0x00,0x00,0x00,0x00};
uchar dispbuf[8]={10,10,10,10,10,0,0,0};
uchar k;
sbit ST=P3^5;
sbit OE=P3^7;
sbit EOC=P3^6;
sbit ALE=P3^4;
unsigned char channel=0x51;//IN 001010001B
unsigned char getdata;
delay(uint x)
{ uint a,b;
for(a=0;a<x;a++)
for(b=0;b<120;b++)
;
}
scan()
{
dispbuf[2]=getdata/51;//因为getdata的值最大为256,即/51就可以得到最大值5v
dispbuf[4]=getdata%51;
dispbuf[4]=dispbuf[4]*10;
dispbuf[1]=dispbuf[4]/51;
dispbuf[4]=dispbuf[4]%51;
dispbuf[4]=dispbuf[4]*10;
dispbuf[0]=dispbuf[4]/51;
for(k=0;k<4;k++)
{
P1=dis_7[dispbuf[k]];
P2=scan_con[k];
delay(3);
P1=0xff;
}
}
main()
{ P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
while(1)
{P3=channel;
ALE=0;_nop_();_nop_();ALE=1;
ST=1;
_nop_();_nop_();
ST=0;
_nop_();_nop_();_nop_();_nop_();
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
scan();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -