内容发布更新时间 : 2024/11/17 3:40:32星期一 下面是文章的全部内容请认真阅读。
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输入