📄 xianshiad.c
字号:
#include <REG52.H>
#include <stdio.h>
#include <absacc.h>
#include <math.h>
#define DIGPORT XBYTE [0x0000] //字形地址
#define WORDPORT XBYTE [0x0001] //字位地址
#define ADRW XBYTE [0x0003] //ad0809地址
#define uchar unsigned char
uchar code TABLE[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
uchar code ZIWEI[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
int a[]= {0,0,0,0,0,0,0,0};
uchar tmp;
unsigned int aa; //等待时间变量
void xianshi(void);
void xianshizi(long ain);
main ()
{
while (1)
{
ADRW=0x07;
for(aa=0; aa<500; aa++); //延时一段时间
tmp=ADRW; //读取A/D转换结果
xianshizi(tmp); //传入数值
}
}//end main
//用于显示转换好的数组中的各值
void xianshi(void)
{unsigned char i;
unsigned char k;
for (i=0;i<8;i++)
{DIGPORT=TABLE[a[i]]; //送字形码
WORDPORT=ZIWEI[i]; //送字位码
for (k=0;k<200;k++) //加入延时 降低刷新速度 提高亮度
{}
WORDPORT=0x00; //关断
}
}//end xianshi
//用于将10进制数拆成各位函数
//其中ain为形参 传入函数并各位拆开 函数无输出
void xianshizi(long ain)
{long x1=100000000;
long x2=10000000;
unsigned char j;
for (j=0;j<8;j++)
{a[j]=(ain % x1)/x2; //第一次拆出最高位 直至最低位
x1=x1/10; //相关算法见兰本
x2=x2/10;
}
xianshi(); //led显示数值
}//end xianshizi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -