adc0809.c
来自「一个用 proteus + keil 实现的仿真 A、D 数模转换的实例」· C语言 代码 · 共 64 行
C
64 行
#include<reg51.h>
sbit OE=P2^4;
sbit ST=P2^5;
sbit EOC=P2^6;
volatile unsigned char result;
/* 共阴段代码 */
unsigned char nCode[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF}; /* 0~9, OFF */
void delay(unsigned char ms)
{
unsigned char i;
while(ms-->0)
{
for(i=0;i<122;++i);
}
}
void Disp(unsigned char m_data)
{
unsigned char i;
unsigned char k=0x08;
for(i=0;i<4;i++)
{
P3=k;
P1=nCode[m_data%10];
m_data/=10;
delay(4);
k>>=1;
}
}
void InitDevice(void)
{
ST=0;
OE=0;
}
unsigned char ADC(void)
{
unsigned char datain;
ST=0;
ST=1;
ST=0;
while(!EOC);
OE=1;
datain=P0;
OE=0;
return datain;
}
void main(void)
{
InitDevice();
while(1)
{
Disp(ADC());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?