熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
首先是這個(gè)void LCD_set_pos(ucgar);應(yīng)該寫成void LCD_set_pos(uchar);,個(gè)人覺得里面應(yīng)該加上變量,但是剛剛改的時(shí)候有點(diǎn)問題,不知道什么原因 |
函數(shù)沒定義吧 |
709242699 發(fā)表于 2019-3-18 18:55 是復(fù)制粘貼的原因,那么多main函數(shù)? |
根據(jù)錯(cuò)誤提示,說明ms附近少了一個(gè))右括號(hào),故需要仔細(xì)檢查ms附近的代碼,使括號(hào)匹配即可。 |
參與人數(shù) 1 | 黑幣 +60 | 收起 理由 |
---|---|---|
![]() | + 60 | 回帖助人的獎(jiǎng)勵(lì)! |
#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define delayNOP() {_nop_();_nop_();_nop_();_nop_();} void LCD_Initialize(); void LCD_set_pos(ucgar); void LCD_write_data(uchar); void Display_String(uchar*,uchar); sbit K1=P1^0; sbit K2=P2^0; sbit BEEP=P3^0; sbit LCD_RS=P2^0; sbit LCD_RW=P2^1 ; sbit LCD_EN=P2^2; uchar KeyCount=0; uchar code msg1[]={"Second Watch 0"}; uchar code msg2[]={">>>> "}; uchar code prompts[][16]= { {"::1---->"}, {"::1---->::2"}, {"::1->2::3-->"}, {"::1->2::3->4"} }; uchar Time_Buffer[] ={0,0,0,0} ; uchar LCD_Dispaly_Buffer[]={"00:00:00:00"}; void Beep() { uchar i,j=70; for(i=0;i<180;i++) { while(--j);BEEP=~BEEP ; } BEEP= 0 ; } void DelayX(uint ms) { uchar i; while(ms--)for(i=0;i<120;i++); } void Show_second() { uchar i; LCD_Set_POS(0x45); //設(shè)置LCD顯示起點(diǎn) for(i=3;i!= 0xff ;i--) { LCD_Display_BUffer[2*i+1]=Time_Buffer[i]/10+'0'; LCD_Display_BUffer[2*i ]=Time_Buffer[i]&10+'0'; LCD_write_Data(LCD_Display_Buffer[2*i+1]) ; LCD_write_Data(LCD_Display_Buffer[2*i]); LCD_write_Data (':'); } } void Time() interrupt 1 using 0 { TH0 =-10000/256; TLO =-10000&256; Time_Buffer[0]++; if(Time_Buffer[0]==100) { Time_Buffer[0]=0;Time_Buffe[1]++; } if(Time_Buffer[1]==60) { Time_Buffer[1]=0;Time_Buffer[2]++; } if(Time_Buffer[2]==60) { Time_Buffer[2]=0;Time_Buffer[3]++; } if(Time_Buffer[3]==24) Time_Buffer[3] =0;; } void main () { uchar i ; IE=0x82 TMOD=0X01 THO=-10000/256 ; TLO=-10000%256; LCD_Initialize(); Display_string(msg1,0x00); Display_string(msg2,0x40); while(1) { if(K1==0) { DelayX(100); i=++KeyCount; switch(i) { case1; case3;TRO=1; Display_string(Prompts[i-1],0); case2; case4;TRO=0; Display_string(Prompts[i-1],0); break; default :TRO =0; break; } while (K1==0); Beep(); } else if(K2==0) { TRO=0; Keycount ; for ( i=0 ;i<4;i++) Time_Buffer[i]=0; Display_String(msg1,0); Beep(); DelayX(100); while(K2==0); } show_Second(); } } #include <reg51.h> #include <intrins.h> #define uchar unsigned char typedef unsigned char INT8U; #define DelayNOP(){_nop_();_nop_();_nop_();_nop_();} sbit LCD_RS=P2^0 ; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; bit LCD_BUSY_Check(); void LCD_Tnitialize(); void LCD_Set_Pos(uchar); void LCD_Write_Coommand(uchar); void LCD_Write_Data(uchar); void DelayMS(uint ms) { uchar t; while(ms--) for (t=0 ;t<120;t++ ); } bit LCD_Busy_check() { bit Result; LCD_RS =0 ; LCD_RW=1 ;LCD_EN=1; DelayNOP(); Resullt = (bit)(P0&0x80); LCD_EN=0; return Result; } void LCD_write_Command (uchar cmd) { while (LCD_Busy_Check()); LCD_RS=0 ;LCD_RW=0 ; LCD_EN=0 ; _nop_(); _nop_(); p0=cmd; DelayNOP(); LCD_EN=1 ; DelayNOP(); LCD_EN=0 ; } void LCD_Write_Data(uchar str) { while (LCD_Busy_check()); LCD_RS=1;LCD_RW=0; LCD_EN=0; P0=STR; DelayNOP(); LCD_EN=1; DelayNOP(); LCD_EN=0; } void LCD_Initialize() { DelayMS(5);LCD_Write_Command(0x38); DelayMS(5);LCD_Write_Command(0x0c); DelayMS(5);LCD_Write_Command(0x06); DelayMS(5);LCD_Write_Command(0x01); DelayMS(5); } void LCD_set_Pos(uchar Position) { LCD_Write_Command(Position 0x80); } void Display_String(uchar*str, uchar LineNo) { uchar k; LCD_Set_Pos(LineNo); for (k=0 ; k<16;k++) LCD_write_Data(str[k]); } 小胖胖的 2019/3/16/周六 18:42:40 for (i=3; i !=0xff;i--) { LCD_Display_Buffer[2*i+1]=Time_Buffer[i]/10+'0'; LCD_Display_Buffer[2*i ]=Time_Buffer[i]&10+'0'; LCD_write_Data(LCD_Display_Buffer[2*i+1]) ; LCD_write_Data(LCD_Display_Buffer[2*i]); LCD_write_Data (':'); } } void Time() interrupt 1 using 0 { TH0 =-10000/256; TLO =-10000&256; Time_Buffer[0]++; if(Time_Buffer[0]==100) { Time_Buffer[0]=0;Time_Buffe[1]++; } if(Time_Buffer[1]==60) { Time_Buffer[1]=0;Time_Buffer[2]++; } if(Time_Buffer[2]==60) { Time_Buffer[2]=0;Time_Buffer[3]++; } if(Time_Buffer[3]==24) Time_Buffer[3] =0;; } void main () { uchar i ; IE=0x82 TMOD=0X01 THO=-10000/256 ; TLO=-10000%256; LCD_Initialize(); Display_string(msg1,0x00); Display_string(msg2,0x40); while(1) { if(K1==0) { DelayX(100); i=++KeyCount; switch(i) { case1; case3;TRO=1; Display_string(Prompts[i-1],0); case2; case4;TRO=0; Display_string(Prompts[i-1],0); break; default :TRO =0; break; } while (K1==0); Beep(); } else if(K2==0) { TRO=0; Keycount ; for ( i=0 ;i<4;i++) Time_Buffer[i]=0; Display_String(msg1,0); Beep(); DelayX(100); while(K2==0); } show_Second(); } } #include <reg51.h> #include <intrins.h> #define uchar unsigned char typedef unsigned char INT8U; #define DelayNOP(){_nop_();_nop_();_nop_();_nop_();} sbit LCD_RS=P2^0 ; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; bit LCD_BUSY_Check(); void LCD_Tnitialize(); void LCD_Set_Pos(uchar); void LCD_Write_Coommand(uchar); void LCD_Write_Data(uchar); void DelayMS(uint ms) { uchar t; while(ms--) for (t=0 ;t<120;t++ ); } bit LCD_Busy_check() { bit Result; LCD_RS =0 ; LCD_RW=1 ;LCD_EN=1; DelayNOP(); Resullt = (bit)(P0&0x80); LCD_EN=0; return Result; } void LCD_write_Command (uchar cmd) { while (LCD_Busy_Check()); LCD_RS=0 ;LCD_RW=0 ; LCD_EN=0 ; _nop_(); _nop_(); p0=cmd; DelayNOP(); LCD_EN=1 ; DelayNOP(); LCD_EN=0 ; } void LCD_Write_Data(uchar str) { while (LCD_Busy_check()); LCD_RS=1;LCD_RW=0; LCD_EN=0; P0=STR; DelayNOP(); LCD_EN=1; DelayNOP(); LCD_EN=0; } void LCD_Initialize() { DelayMS(5);LCD_Write_Command(0x38); DelayMS(5);LCD_Write_Command(0x0c); DelayMS(5);LCD_Write_Command(0x06); DelayMS(5);LCD_Write_Command(0x01); DelayMS(5); } void LCD_set_Pos(uchar Position) { LCD_Write_Command(Position 0x80); } void Display_String(uchar*str, uchar LineNo) { uchar k; LCD_Set_Pos(LineNo); for (k=0 ; k<16;k++) LCD_write_Data(str[k]); } |
沒有定義啊 在前面加上 #define uint unsigned int 定義一下 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
這個(gè)問題應(yīng)該是你在函數(shù)初始只定義了uchar,沒有定義uint,造成37行的Error 141錯(cuò)誤,然后提示40行“ms”未定義的錯(cuò)誤;查看你程序的初始部分,是否只有“#define uchar unsigned char”,而沒有"#define uint unsigned int"?把后面這一句添上就行了! |
參與人數(shù) 1 | 黑幣 +40 | 收起 理由 |
---|---|---|
![]() | + 40 | 回帖助人的獎(jiǎng)勵(lì)! |
將uint換成unsigned int 或者宏定義一下#define uint unsigned int |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
錯(cuò)誤內(nèi)容是:"MS"沒有定義 C語(yǔ)言的基本規(guī)則是:先申明后使用。你的ms這個(gè)變量沒有先申明,后以報(bào)錯(cuò) |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)