- /*********************************包含头文件********************************/
- #include <iom128v.h>
- #include <macros.h>
- /********************************数码管段码表*******************************/
- 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<<REFS1)|(1<<REFS0); // 2.56V
- ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
- }
- /****************************************************************************
- 函数功能:ADC中断函数
- 入口参数:
- 出口参数:
- ****************************************************************************/
- #pragma interrupt_handler adc_isr:iv_ADC
- void adc_isr(void)
- {
- int data_H,data_L;
- ADCSRA = 0x00;
- adc_rel=ADC;
- ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADIE);
- }
- /****************************************************************************
- 函数功能:数据输出程序
- 入口参数: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);
- }
- }
复制代码
|