|
發(fā)布時間: 2020-11-22 23:08
正文摘要:我也不知道是哪的問題!求各位大佬幫我找找問題!!! 顯示屏一直就這樣! 我顯示屏上的vo沒接,do到d7依次接的P20--P27! 這是我寫的單片機代碼! #include<reg51.h> #define uchar unsigned ... |
| 查看一下是不是接線出現(xiàn)了錯誤 |
kriswang 發(fā)表于 2021-7-6 09:45 如7樓所說的,delay里的數(shù)據類型不能改 先看樓主的代碼
看看代碼是在干什么 j = 239 -> while(--j) 先把j減一,再看看是否不等于零(不等于零為真,等于零為假) 當減了239下,while(--j)會跳出進入do...while(--i) i會被減一再進入while(--j) 重點來了,此是j已經是0,再減就會變回65535 (uint = unsigned int 范圍是0~65535) 所以樓主的delay會輪回239 + 65536= 65775 次 如改為七樓的unsigned char(0~255)的delay則會輪回239 + 256 = 495 次 是樓主的132分之一 12T 8051在12Mhz 的運行速度大概是 2us一行 七樓的delay約等于1ms 而樓主的delay就要132ms 對于1602來說太久了 |
| 怎么能夠顯示出來的,能不能教一下 |
| 檢查v0口是否接了電阻,如果接了,看接的電阻是否合適 |
HSY666NB 發(fā)表于 2020-11-23 21:44 3腳接個2K電阻 |
| 感謝大家!謝謝各位大佬!問題解決了! |
wulin 發(fā)表于 2020-11-23 21:03 我沒有接那個10k電阻,但是其他的我改了一下,顯示出來了!感謝大佬!謝謝! |
|
這是我的代碼:你更改 LCD_Data和三個LCD的腳就可以直接用了 用法是在main()里面先初始化LCD_Init();再直接調用LcdShowStr(4,0);屏幕上顯示的是LED_NUM[3]里的三個數(shù)據 附上原理圖 #define LCD_Data P0 sbit LCD_E=P2^7; sbit LCD_RW=P2^5; sbit LCD_RS=P2^6; unsigned char LED_NUM[3]; void LCD_ReadStatus(void) { |
3.png (63.13 KB, 下載次數(shù): 58)
| 參與人數(shù) 1 | 黑幣 +50 | 收起 理由 |
|---|---|---|
|
| + 50 | 回帖助人的獎勵! |
| 看一下電路接對了嗎 |
|
本帖最后由 wulin 于 2020-11-24 05:56 編輯 硬件:P0.5~P0.7要加10K上拉電阻! 軟件: void delay() //1ms@12.000MHz { unsigned char i, j;//數(shù)據類型不同延時相差很大!!! i = 2; j = 239; do { while (--j); } while (--i); } void main() { init(); writecmd(0x82); writedata(0x41); while(1);//此句不可以少!!! } |
楊雪飛 發(fā)表于 2020-11-23 09:18 還是沒有顯示呢! |
| 我是V0和Vss之間搭一個5.1K電阻, |
| 或者按照電路原理圖給的,接一可調電阻,調節(jié)直至顯示清晰 |
| V0找個200歐電阻接地 |