内容发布更新时间 : 2025/8/13 16:37:50星期一 下面是文章的全部内容请认真阅读。
AVR单片机电压表程序
AVR电压表程序: #include; #include;
#define uchar unsigned char #define uint unsigned int
#define setb(val,bitn) (val|=(1<<(bitn)))//设置某IO口某位为1
#define clr(val,bitn) (val&=~(1<<(bitn)))//设置某IO口某位为0
#define get(val,bitn) (val&(1<<(bitn)))//读取某位状态如
uchar shi=20,fen=39,miao,a=0xff,num; #pragma data:code//定义程序存在ROM里面 const uchar table[]={ 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86, 0x8e };
/***********************************************/
/*******************延时子程序******************/ /***********************************************/ void delay(uchar z) {
uchar x,y; for(x=0;x<255;x++) for(y=0;y
/***********************************************/ /*******************显示子程序******************/ /***********************************************/ void xian(uint nim) {
PORTB=table[nim/1000]&0x7f; clr(PORTC,3); delay(2); setb(PORTC,3);
PORTB=table[nim00/100]; clr(PORTC,2); delay(2); setb(PORTC,2);
PORTB=table[nim0/10];
clr(PORTC,1); delay(2); setb(PORTC,1); PORTB=table[nim]; clr(PORTC,0); delay(2); setb(PORTC,0); }
/***********************************************/ /*******************显示子程序******************/ /***********************************************/ uint ad() {
uint addata,i;
DDRA&=~BIT(PA0);//设置PA0口为输入
PORTA&=~BIT(PA0);//设置P0口为不带上拉电阻
ADMUX=0;//高2位设为0,关闭AREF参考电压,低5位选择哪个脚为AD输入