📄 adc0809.c
字号:
#include<AT89X51.h>
#include<absacc.h>
#include<intrins.h>
#include"math.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define START P2_4 //启动信号,低电平有效
#define OE P2_5 //输出允许信号,
#define EOC P2_6 //转换结合信号,结束硬件置1
uchar data led[4];
ulong data tvdata;
uchar code tv[]={0xfe,0xfd,0xfb,0xf7}; //位选代码
uchar code a[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数字代码
/***********************************
延时程序
***********************************/
void delay(void)
{
uint i;
for(i=0;i<15;i++);
}
/***********************************
显示程序
***********************************/
void ledxianshi(void) //显示模块
{
uchar k,i;
tvdata=tvdata*5000/255;
led[0]=tvdata%10;
led[1]=tvdata/10%10;
led[2]=tvdata/100%10;
led[3]=tvdata/1000;
for(k=0;k<4;k++)
{
P2=tv[k]; //位选
i=led[k];
if(k==3)
P0=a[i]|0x80;
else P0=a[i]; //送数据
delay();
}
}
/***********************************
主函数
***********************************/
void main(void)
{
while(1)
{
START=1;
START=0; //启动转换
while(EOC==0); //等待转换结束,EOC=1;跳出循环。
OE=1; //允许输出
tvdata=P1;
OE=0; // 禁止输出
ledxianshi(); //显示
delay();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -