AVR单片机电压表程序 下载本文

内容发布更新时间 : 2024/5/10 7:37:11星期一 下面是文章的全部内容请认真阅读。

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输入