![]() |
發布時間: 2017-6-6 11:57
正文摘要:#include<reg51.h> #include<lcd1602.h> #define uchar unsigned char #define uint unsigned int uchar int_time; uchar second; uchar minute; uchar hour; uchar code date[]="H.I.T.CHINA"; ... |
應該是缺定義![]() |
這代碼對嗎? |
是不是沒有聲明頭文件? |
你頭文件缺了吧,你試一下把用的頭文件補上去 |
write_data 這個是調用的子程序沒有先聲明,也就是說你先調用了子程序,后面才聲明,這是有誤的,這是一種可能。 |
應該是write_data 這個函數沒有定義,查查頭文件里面有沒有定義 |
我不知道你的程序是哪里來的,從程序頭文件來看,應該和1602顯示有關,這就是問題的關鍵了。 第一:你調用了LCD1602.H頭文件,你知道它定義了哪些函數嗎? 你的截圖中可以看到,17行是“寫數據”函數,但那不是1602頭文件中的函數名稱啊。所以報錯“找不到該函數” 第二:不僅如此,下面還有很多這樣的函數,就是這行不錯,其它行也要錯,如19、22、27、28、29行。 第三、你提問,但很多信息不全。如:write_sfm()這個函數,我就不知道是干什么用的,因為不知道你的程序功能。你只說程序有問題,但為什么不說清楚——你的程序是干什么用的,什么功能有問題,而且你發的程序不全,所以,也不能判斷是不是這個程序的問題,或是其它頭文件、其它C文件的問題。 很可能這不是你做的,而且沒有好好讀一讀程序,它需要什么樣的其它程序——如你的截圖中看到,那個頭文件LCD1602.H就沒有找開,找不到,那可不是系統頭文件,是驅動1602的專用頭文件。 |
你的宏定義呢 |
你確定這是完整源代碼么? |