欢迎来到天天文库
浏览记录
ID:22855953
大小:48.51 KB
页数:8页
时间:2018-11-01
《片机液晶屏c程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#include#defineucharunsignedchar#defineuintunsignedintintaddata;staticintJ7=0,PBV0=0,PBV1=1;//**********************************************************voiddelay(uintk){uinti,j;for(i=0;i2、//////////////////////uintMega16_ad(void){DDRA&=~(1<<0);//转换口设置为输入、无上拉PORTA&=~(1<<0);ADMUX=0x00;//采用外部参考电压,输出数据右对齐ADCSR=0xC0;//采用单次转换,查询模式,2分频addata=ADCL;//读取低8位数据//addata+=ADCH*256;//读取高2位数据//addata=addata/2.5;returnaddata;//返回10位数据}///***********************************************3、*********voidPwm_init(void){if(PBV1==0){DDRB4、=(1<<3);//将OC1A管脚配置为输出if(OCR0addata)OCR0=OCR0-2;TCCR0=0x69;//启动C/T0PWM}if(PBV1==1){OCR0=0;TCCR0=0x00;//关闭C/T0PORTB&=~(1<<3);}}////////////////////////////////////////////////////voidlcd_busy(){uintval;DDRD=0xF8;5、DDRC=0x00;PORTD&=~(1<<5);PORTD6、=(1<<4);while(1){PORTD7、=(1<<3);DDRC=0x00;val=PINC;if(val<0x80)break;delay(1);PORTD&=~(1<<3);}DDRC=0xFF;PORTD&=~(1<<3);}//******************************************************************voidlcd_wcmd(ucharcmd){lcd_busy();DDRD=0xF8;PORTD&=~(1<<5);PORTD&=8、~(1<<4);PORTD9、=(1<<3);PORTC=cmd;delay(1);PORTD&=~(1<<3);}//***************************************************voidlcd_wdat(uchardat){lcd_busy();DDRD=0xF8;PORTD10、=(1<<5);PORTD&=~(1<<4);PORTD11、=(1<<3);PORTC=dat;delay(1);PORTD&=~(1<<3);}//**************************************************12、***voidlcd_init(){lcd_wcmd(0x30);//基本指令操作lcd_wcmd(0x30);delay(1);lcd_wcmd(0x0c);//显示开,关光标delay(1);lcd_wcmd(0x01);//清除LCD的显示内容delay(1);}//*****************************************************************voidlcd_pos(ucharX,ucharY){ucharpos;if(X==1){X=0x80;}elseif(X==2){X=0x90;}elseif(X13、==3){X=0x88;}elseif(X==4){X=0x98;}pos=X+Y;lcd_wcmd(pos);//显示地址}//*****************************************************voidclr_screen(){lcd_wcmd(0x30);lcd_wcmd(0x30);//基本指令操作delay(1);lcd_wcmd(0x01);//清屏delay(1);}//********************************************************ucharvi[4];ucha14、rvi1[4];ucha
2、//////////////////////uintMega16_ad(void){DDRA&=~(1<<0);//转换口设置为输入、无上拉PORTA&=~(1<<0);ADMUX=0x00;//采用外部参考电压,输出数据右对齐ADCSR=0xC0;//采用单次转换,查询模式,2分频addata=ADCL;//读取低8位数据//addata+=ADCH*256;//读取高2位数据//addata=addata/2.5;returnaddata;//返回10位数据}///***********************************************
3、*********voidPwm_init(void){if(PBV1==0){DDRB
4、=(1<<3);//将OC1A管脚配置为输出if(OCR0addata)OCR0=OCR0-2;TCCR0=0x69;//启动C/T0PWM}if(PBV1==1){OCR0=0;TCCR0=0x00;//关闭C/T0PORTB&=~(1<<3);}}////////////////////////////////////////////////////voidlcd_busy(){uintval;DDRD=0xF8;
5、DDRC=0x00;PORTD&=~(1<<5);PORTD
6、=(1<<4);while(1){PORTD
7、=(1<<3);DDRC=0x00;val=PINC;if(val<0x80)break;delay(1);PORTD&=~(1<<3);}DDRC=0xFF;PORTD&=~(1<<3);}//******************************************************************voidlcd_wcmd(ucharcmd){lcd_busy();DDRD=0xF8;PORTD&=~(1<<5);PORTD&=
8、~(1<<4);PORTD
9、=(1<<3);PORTC=cmd;delay(1);PORTD&=~(1<<3);}//***************************************************voidlcd_wdat(uchardat){lcd_busy();DDRD=0xF8;PORTD
10、=(1<<5);PORTD&=~(1<<4);PORTD
11、=(1<<3);PORTC=dat;delay(1);PORTD&=~(1<<3);}//**************************************************
12、***voidlcd_init(){lcd_wcmd(0x30);//基本指令操作lcd_wcmd(0x30);delay(1);lcd_wcmd(0x0c);//显示开,关光标delay(1);lcd_wcmd(0x01);//清除LCD的显示内容delay(1);}//*****************************************************************voidlcd_pos(ucharX,ucharY){ucharpos;if(X==1){X=0x80;}elseif(X==2){X=0x90;}elseif(X
13、==3){X=0x88;}elseif(X==4){X=0x98;}pos=X+Y;lcd_wcmd(pos);//显示地址}//*****************************************************voidclr_screen(){lcd_wcmd(0x30);lcd_wcmd(0x30);//基本指令操作delay(1);lcd_wcmd(0x01);//清屏delay(1);}//********************************************************ucharvi[4];ucha
14、rvi1[4];ucha
此文档下载收益归作者所有