1、软件部分
程序
#include "reg51.h"
#include "absacc.h"
#define COUNT 5000
#define AIN0 XBYTE[0x0000] //定义外部地址
sbit EOC=P3^3; //转换结束信号
unsigned char LED_seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//unsigned char YLED_seg[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0xf7,0xff,0xef};
unsigned char LED_bit[4]={0x01,0x02,0x04,0x08};
unsigned char LED_buf[3]={0};
//fosc=11.0592MHz,9600bps
//串口初始化函数 9600bps
void Sbuf_Init(void)
{
SCON=0x50; //10 位方式
//波特率设置
PCON=0x00; //波特率不倍增
TMOD=(TMOD&0x0f)|0x20;//T1 方式 2
TH1=0xfd; //T1 计数初值
TL1=0xfd;
//ES=1;EA=1; //串口中断使能
TR1=1; //启动定时器
}
void T0_ISR(void) interrupt 1
{
static unsigned char i=0;
TH0=(65536-COUNT)/256;
TL0=(65536-COUNT)%256;
if(i==2)//显示小数点
{
P2=~LED_bit[i]; //先送位码
P1=LED_seg[LED_buf[i]]|0x80;//再送段码;0x80 对应的是段码口的 dp 位
}