📄 ad.c
字号:
/************************************************/
/* ADC0804模数转换数码管显示 */
/* http://www.nuedc.net.cn By 杨sir */
/************************************************/
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
sbit wx=P2^3;
sbit dx=P2^4;
sbit cs=P2^7;
sbit wr=P2^6;
sbit rd=P2^5;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x80};
uchar num;
uint num2;
float num1;
float jizhun=5.0;
void display();
void delay(uint ms);
void adcstart();
void adcread();
void main()
{
while(1)
{
adcstart();
adcread();
display();
}
}
void display()
{
num1=num*jizhun/256;
num2=num1*100;
wx=1;
P0=0xdf;
wx=0;
dx=1;
P0=table[num2%10000%1000%100%10];
dx=0;
delay(10);
wx=1;
P0=0xef;
wx=0;
dx=1;
P0=table[num2%10000%1000%100/10];
dx=0;
delay(10);
wx=1;
P0=0xf7;
wx=0;
dx=1;
P0=table[16];
dx=0;
delay(10);
wx=1;
P0=0xfb;
wx=0;
dx=1;
P0=table[num2%10000%1000/100];
dx=0;
delay(10);
wx=1;
P0=0xfd;
wx=0;
dx=1;
P0=table[num2%10000/1000];
dx=0;
delay(10);
wx=1;
P0=0xfe;
wx=0;
dx=1;
P0=table[num2/10000];
dx=0;
delay(10);
}
void adcstart()
{
cs=1;
cs=0;
wr=1;
wr=0;
delay(10);
}
void adcread()
{
rd=1;
rd=0;
delay(10);
num=P1;
cs=1;
rd=1;
}
void delay(uint ms)
{
uchar x;
while(ms--)
{
for(x = 0; x < 120;x++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -