1、#include #include typedef unsigned char uchar;typedef unsigned int uint;/*LCD引脚定义*/#define CS_set PORTD |=BIT(6)#define CS_clr PORTD &=BIT(6)#define SID_set PORTD |=BIT(7)#define SID_clr PORTD &=BIT(7)#define SCLK_set PORTB |=BIT(0)#define SCLK_clr PORTB &=BIT(0)Delay(uint t) while(-t); /*LCD12232端口
2、初始化*/void PORT_Init(void) DDRD |=BIT(6); PORTD |=BIT(6); DDRD |=BIT(7); PORTD |=BIT(7); DDRB |=BIT(0); PORTB |=BIT(0);/*LCD12232写数据*/void Send_DATA(uchar Data,uchar O_Z) uchar i,Order; CS_clr; switch(O_Z) case 0 : Order=0xf8;break;/写指令 case 1 : Order=0xfa;break;/写数据 default : break; SCLK_clr; CS_set
3、; for(i=0;i8;i+) if(Order&0x80) SID_set; else SID_clr; SCLK_clr; SCLK_set; Order=1; Order=Data; Order &=0xf0; for(i=0;i8;i+) if(Order&0x80) SID_set; else SID_clr; SCLK_clr; SCLK_set; Order=1; Order=Data; Order=4; for(i=0;i8;i+) if(Order&0x80) SID_set; else SID_clr; SCLK_clr; SCLK_clr; SCLK_set; Orde
4、r=1; CS_clr; Delay(20);/*显示一字符串*/void Dis_str(uchar Addr,uchar *str) Send_DATA(Addr,0); Delay(30); while(*str!=0) Send_DATA(*str,1); str+; Delay(20); /*LCD12232初始化*/void Init_LCD(void) Delay(2000); Send_DATA(0x06,0); Delay(200); Send_DATA(0x02,0); Delay(200); Send_DATA(0x0c,0); Delay(200); Send_DATA
5、(0x80,0); Delay(200); Send_DATA(0x30,0); Delay(200); Send_DATA(0x01,0); Delay(5000);/*片内ADC初始化*/void ADC_Init(void) /*工作于单次转换模式下*/ DDRC |=(14)|(15); ADMUX=0xc4;/0xc5 ADCSRA=0x84;void main(void) uchar i; uchar Temp_L,Temp_H; uint AD_Data=0; PORT_Init(); Init_LCD(); ADC_Init(); do ADMUX |=0x04;/启用PC4口
6、作模拟量输入 ADCSRA |=0x70;/启动AD转换 while(ADCSRA & (1ADIF); ADCSRA &=(1ADIF); Delay(10); Temp_L=ADCL; Temp_H=ADCH; AD_Data=Temp_H*256+Temp_L; Send_DATA(0x81,0); Send_DATA(AD_Data/1000+0x30,1); Send_DATA(AD_Data%1000/100+0x30,1); Send_DATA(AD_Data%100/10+0x30,1); Send_DATA(AD_Data%10+0x30,1); ADMUX |=0x05;/启用PC4口作模拟量输入 ADCSRA |=0x70;/启动AD转换 while(ADCSRA & (1ADIF); ADCSRA &=(10;i-) Delay(60000); while(1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1