/*********************************包含头文件********************************/
#include #include /********************************数码管段码表*******************************/ extern const unsigned char tab[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F}; /*********************************端口定义**********************************/ #define sclon PORTG |=BIT(0); //时钟高 #define scloff PORTG &=~BIT(0); #define dion PORTG |=BIT(1); //数据高 #define dioff PORTG &=~BIT(1); /*********************************全局变量**********************************/ unsigned int adc_rel; int dat; /**************************************************************************** 函数功能:ADC初始化函数 入口参数: 出口参数: ****************************************************************************/ void adc_init(void) { ADCSRA=0x00; //关ADC ADMUX = (1< /**************************************************************************** 函数功能:ADC中断函数 入口参数: 出口参数: ****************************************************************************/ #pragma interrupt_handler adc_isr:iv_ADC void adc_isr(void) { int data_H,data_L; ADCSRA = 0x00; adc_rel=ADC; ADCSRA = (1< /**************************************************************************** 函数功能:数据输出程序 入口参数:temp 出口参数: ****************************************************************************/ void dataOUT(unsigned char temp) { unsigned char i,temp1; temp1 = tab[temp]; for(i = 0;i < 8;i++ ) { scloff; if((temp1&0x80)!= 0x80) { dioff;} else { dion;} sclon; temp1 <<=1; scloff; } } /**************************************************************************** 函数功能:延时子程序 入口参数: 出口参数: ****************************************************************************/ void delay(void) { int i; for(i=0;i<200;i++); } /**************************************************************************** 函数功能:显示子程序 入口参数:k 出口参数: ****************************************************************************/ void display(unsigned int k) { dataOUT(k/1000); PORTG &=0x03; delay(); dataOUT(k/100%10); PORTG |=0x04; delay(); dataOUT(k/10%10); PORTG &=0x0B; PORTG |=0x08; delay(); dataOUT(k%10); PORTG |=0x0C; delay(); } /**************************************************************************** 函数功能:主程序 入口参数: 出口参数: ****************************************************************************/ void main(void) { DDRE=0x00; DDRG=0xff; adc_init(); SEI(); display(0); while(1) { delay(); display(adc_rel); } }
上一篇:分享:LCD1602温度检测显示程序(ATmega16)
下一篇:ATmega8的eeprom读写操作程序
推荐阅读
史海拾趣



ASM10DTBD-S664






京公网安备 11010802033920号