📄 ad0808.c
字号:
#include<stdio.h>
#include<reg52.h>
#include<absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar xdata *ad_0808;
#define IN0 XBYTE[0x7ff8]//0808的0通道地址
#define PA_8255 XBYTE[0x8000]//8255A口
#define PB_8255 XBYTE[0x8001]//8255B
//#define PC_8255 XBYTE[0x8002]//8255C
#define control_8255 XBYTE[0X8003]//8255 control
sbit EOC=P1^2;
uchar code display[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0,1,2,3,4,5,6,7,8,9
uchar code displaydian[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//0.,1.,2.,3.,4.,5.,6.,7.,8.,9.
uchar idata CH_data;
void delay(uint N)// 函数功能:延时子程序,实现(16*N+24)us的延时
{ // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
uint i;
for(i=0;i<N;i++)
;
}
void jisuanxianshi(uchar b) //将采集的数据转换成实际的十进制数字(小数),并显示
{
uint gewei,xiaoshu1,xiaoshu2,xiaoshu3,xiaoshu4,xiaoshu5,xiaoshu6,xiaoshu7,xiaoshu8;
float a;
uint m;
a=(b/255.0)*5;
gewei=a;
xiaoshu1=(a-gewei)*10;
xiaoshu2=(a-gewei-xiaoshu1/10.00)*100;
xiaoshu3=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00)*1000;
xiaoshu4=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00-xiaoshu3/1000.00)*10000;
xiaoshu5=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00-xiaoshu3/1000.00-xiaoshu4/10000.00)*100000;
xiaoshu6=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00-xiaoshu3/1000.00-xiaoshu4/10000.00-xiaoshu5/100000.00)*1000000;
xiaoshu7=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00-xiaoshu3/1000.00-xiaoshu4/10000.00-xiaoshu5/100000.00-xiaoshu6/1000000.00)*10000000;
xiaoshu8=(a-gewei-xiaoshu1/10.00-xiaoshu2/100.00-xiaoshu3/1000.00-xiaoshu4/10000.00-xiaoshu5/100000.00-xiaoshu6/1000000.00-xiaoshu7/10000000.00)*100000000;
if(xiaoshu8>4)
{
xiaoshu7+=1;
if(xiaoshu7==10)
{
xiaoshu6+=1;
xiaoshu7=0;
if(xiaoshu6==10)
{
xiaoshu5+=1;
xiaoshu6=0;
if(xiaoshu5==10)
{
xiaoshu4+=1;
xiaoshu5=0;
if(xiaoshu4==10)
{
xiaoshu3+=1;
xiaoshu4==0;
if(xiaoshu3==10)
{
xiaoshu2+=1;
xiaoshu3==0;
if(xiaoshu2==10)
{
xiaoshu1+=1;
xiaoshu2==0;
if(xiaoshu1==10)
{
gewei+=1;
xiaoshu1==0;
}
}
}
}
}
}
}
}
for(m=0;m<1000;m++)
{
PB_8255=0x80;
PA_8255=display[xiaoshu7];
delay(20);
PB_8255=0x40;
PA_8255=display[xiaoshu6];
delay(20);
PB_8255=0x20;
PA_8255=display[xiaoshu5];
delay(20);
PB_8255=0x10;
PA_8255=display[xiaoshu4];
delay(20);
PB_8255=0x08;
PA_8255=display[xiaoshu3];
delay(20);
PB_8255=0x04;
PA_8255=display[xiaoshu2];
delay(20);
PB_8255=0x02;
PA_8255=display[xiaoshu1];
delay(20);
PB_8255=0x01;
PA_8255=displaydian[gewei];
delay(20);
}
}
void main()
{
control_8255=0x80;/*8255,方式0,ABC口输出*/
ad_0808=&IN0;
*ad_0808=0;
while(EOC==0)
CH_data=*ad_0808;
jisuanxianshi(CH_data);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -