📄 adc0809.txt
字号:
#include <AT89X52.H>
unsigned char code dispbitcode[4]={0x0f,0x1f,0x2f,0x3f}; //数码管选择代码
unsigned char code dispcode[10]={0xf0,0xf1,0xf2,0xf3,0xf4, //字型代码
0xf5,0xf6,0xf7,0xf8,0xf9};
unsigned char data buf[4]={0x00,0x00,0x00,0x08}; //数据存储
unsigned char data Pcode,Pbit,data1;
char i,j;
unsigned int get=0;
sbit star=P3^6;
sbit oe=P3^7;
void delay(); //延时声明
void delay1(); //延时声明
void main(void) //主函数
{
while(1)
{
P1=0xff; //初始化
P0=0xff;
P2=0x00;
P3=0xff;
star=1; //驱动ad
star=0;
star=1;
delay1(); //延时给AD处理数据
EX1=1; //开INT1中断
IT1=1; //INT1边沿触发
EA=1; //允许中断
}
}
void int1(void) interrupt 2 //外部中断1
{
EA=0; //关中断
oe=0; //允许数据输入
get=P0; //获取数据
oe=1; //禁止数据输入
data1=get*200/255; //数据处理
buf[2]=data1/100; //存百位
data1=data1%100;
buf[1]=data1/10; //存十位
buf[0]=data1%10; //存个位
for(j=0;j<=30;j++) //循环显示30次
{
for(i=0;i<4;i++) //字形输出
{
Pcode=dispcode[buf[i]];
Pbit=dispbitcode[i];
P1=Pcode&Pbit;
delay();
}
}
}
void delay() //延时子程序
{
unsigned char n, m;
for (n=3; n > 0; n--)
for (m = 200; m > 0; m--);
}
void delay1()
{
unsigned char k;
for(k=0;k<=50;k++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -