还剩6页未读,继续阅读
文本内容:
#includeiom16v.h#includestdio.h#defineucharunsignedchar#defineuintunsignedintintaddata;staticintJ7=0PBV0=0PBV1=1;//**********************************************************voiddelayuintk{uintij;fori=0;ik;i++{forj=0;j___;j++;}}////////////////////////////////////////////////////////////////uintMega16_advoid{DDRA=~10;//转换口设置为输入、无上拉PORTA=~10;ADMUX=0x00;//采用外部参考电压,输出数据右对齐ADCSR=0xC0;//采用单次转换,查询模式,2分频addata=ADCL;//读取低8位数据//addata+=ADCH*256;//读取高2位数据//addata=addata/
2.5;returnaddata;//返回10位数据}///********************************************************voidPwm_initvoid{ifPBV1==0{DDRB|=13;//将OC1A管脚配置为输出ifOCR0addataOCR0=OCR0+2;ifOCR0addataOCR0=OCR0-2;TCCR0=0x69;//启动C/T0PWM}ifPBV1==1{OCR0=0;TCCR0=0x00;//关闭C/T0PORTB=~13;}}////////////////////////////////////////////////////voidlcd_busy{uintval;DDRD=0xF8;DDRC=0x00;PORTD=~15;PORTD|=14;while1{PORTD|=13;DDRC=0x00;val=PINC;ifval0x80break;delay1;PORTD=~13;}DDRC=0xFF;PORTD=~13;}//******************************************************************voidlcd_wcmducharcmd{lcd_busy;DDRD=0xF8;PORTD=~15;PORTD=~14;PORTD|=13;PORTC=cmd;delay1;PORTD=~13;}//***************************************************voidlcd_wdatuchardat{lcd_busy;DDRD=0xF8;PORTD|=15;PORTD=~14;PORTD|=13;PORTC=dat;delay1;PORTD=~13;}//*****************************************************voidlcd_init{lcd_wcmd0x30;//基本指令操作lcd_wcmd0x30;delay1;lcd_wcmd0x0c;//显示开,关光标delay1;lcd_wcmd0x01;//清除LCD的显示内容delay1;}//*****************************************************************voidlcd_posucharXucharY{ucharpos;ifX==1{X=0x80;}elseifX==2{X=0x90;}elseifX==3{X=0x88;}elseifX==4{X=0x98;}pos=X+Y;lcd_wcmdpos;//显示地址}//*****************************************************voidclr_screen{lcd_wcmd0x30;lcd_wcmd0x30;//基本指令操作delay1;lcd_wcmd0x01;//清屏delay1;}//********************************************************ucharvi
[4];ucharvi1
[4];ucharDIS10[]={输入扭力};ucharDIS20[]={输出扭力};ucharDIS23[]={0X300X310X320X330X340X350X360X370X380X39};ucharDIS30[]={单位};ucharDIS31[]={__};ucharDIS4[]={夹具:};ucharDIS41[]={开};ucharDIS42[]={关};ucharDIS43[]={运行};ucharDIS44[]={停止};void__in{ucharij=0;DDRD=0xF8;delay5;//上电,等待稳定lcd_init;//初始化LCDclr_screen;DDRA=~15;DDRA=~16;DDRA=~17;DDRB|=10;DDRB|=11;//*********************************************************while1{Mega16_ad;vi
[0]=0vi
[1]=addata/100vi
[2]=addata%100/10vi
[3]=addata%10;vi1
[0]=0vi1
[1]=OCR0/100vi1
[2]=OCR0%100/10vi1
[3]=OCR0%10;Pwm_init;//************夹具开/关*******************************ifPINA0x80==0J7==0{delay1;ifPINA0x80==0{PBV0=~PBV0;J7=1;}}ifPINA0x80!=0{delay1;ifPINA0x80!=0J7=0;}//************运行/停止*******************************ifPINA0x40==0{delay1;ifPINA0x40==0PBV1=1;}ifPINA0x20==0{delay1;ifPINA0x20==0PBV1=0;}//***************************************/////////////////***“输入扭力”显示**************************lcd_pos10;fori=0;i10;i++{lcd_wdatDIS10[i];}//*******输入扭力数字显示************************lcd_pos15;fori=0;i2;i++{lcd_wdatDIS23[vi[i]];}lcd_pos16;lcd_wdat0x2e;lcd_pos17;fori=2;i4;i++{lcd_wdatDIS23[vi[i]];}/////***********************///////////////////////////////////////////////////////////////////////////****“输出扭力”显示*******************lcd_pos20;fori=0;i10;i++{lcd_wdatDIS20[i];}///***输出扭力数字显示**************************lcd_pos25;fori=0;i2;i++{lcd_wdatDIS23[vi1[i]];}lcd_pos26;lcd_wdat0x2e;lcd_pos27;fori=2;i4;i++{lcd_wdatDIS23[vi1[i]];}/////////////////////////////////////////////////////////////“单位”显示**********************************lcd_pos30;fori=0;i10;i++{lcd_wdatDIS30[i];}////**********单位__显示************************lcd_pos36;fori=0;i2;i++{lcd_wdatDIS31[i];}///////////////////////////////////////////////////**********“夹具”显示********************************lcd_pos40;fori=0;i6;i++{lcd_wdatDIS4[i];}////////****开“******************ifPBV0==0{PORTB|=10;lcd_pos43;fori=0;i2;i++{lcd_wdatDIS41[i];}}else{PORTB=~10;lcd_pos43;fori=0;i2;i++{lcd_wdatDIS42[i];}}////////*******“运行”显示**************************ifPBV1==0{PORTB|=11;lcd_pos46;fori=0;i4;i++{lcd_wdatDIS43[i];}}///////////****停止”**********************ifPBV1==1{PORTB=~11;OCR0=0;lcd_pos46;fori=0;i4;i++{lcd_wdatDIS44[i];}}}}。