亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

使用普中的STC89C52RC+LCD12864,只亮背光無法顯示

查看數: 1166 | 評論數: 11 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2026-4-9 18:45

正文摘要:

如圖,我使用的是集成的單片機板子,驅動程序是AI寫的(內容應該沒有問題),接口根據單片機手冊也做了對應調整沒有問題,電位器也反復轉動了好多次,始終無法顯示字符串,只發光,哪里出現了問題

回復

ID:384109 發表于 2026-4-11 20:23
現在大的12864基本都是st7920的,例程很多,個人感覺,不如沒字庫的12864好用,容易用
ID:229502 發表于 2026-4-11 20:11
說一句,要看12864的驅動芯片,不同的驅動芯片掃描方式不一樣。
ID:462768 發表于 2026-4-10 18:44
我理解啊,問問題之前都是先問一下ai,ai雖然缺點,但是有時候多問兩邊就有可能跑起來了。跑起來了,在研究怎么看懂。沒辦法,業余的也沒人教,從頭一點一點學,也來不及,都快餓死了,不能在去研究種地吧,
ID:584814 發表于 2026-4-10 18:18
再用AI幫你查問題就可以
ID:155507 發表于 2026-4-10 11:14
發表于 2026-4-9 18:50
我的接線是這樣的,請問問題出在哪里?

你這個是lcd 12864 st7920

給你個程序
  1. /**************************************************************************************
  2. (PRECHIN 普中)

  3. 實驗名稱:LCD12864液晶顯示實驗(帶字庫)
  4. 接線說明:        
  5. 實驗現象:下載程序后,LCD12864上顯示漢字字符信息
  6. 注意事項:                                                                                                                                                                  
  7. ***************************************************************************************/
  8. #include "reg52.h"

  9. typedef unsigned int u16;        //對系統默認數據類型進行重定義
  10. typedef unsigned char u8;
  11. typedef unsigned long u32;

  12. //管腳定義
  13. sbit LCD12864_RS=P2^6; //數據命令選擇
  14. sbit LCD12864_WR=P2^5; //讀寫選擇
  15. sbit LCD12864_E =P2^7; //使能信號
  16. #define LCD12864_DATAPORT        P0        //LCD12864數據端口定義
  17. sbit LCD12864_PSB=P3^2; //8位或4并口/串口選擇

  18. //函數聲明
  19. void lcd12864_init(void);
  20. void lcd12864_clear(void);
  21. void lcd12864_show_string(u8 x,u8 y,u8 *str);

  22. void delay_10us(u16 ten_us);
  23. void delay_ms(u16 ms);

  24. /*******************************************************************************
  25. * 函 數 名       : delay_10us
  26. * 函數功能         : 延時函數,ten_us=1時,大約延時10us
  27. * 輸    入       : ten_us
  28. * 輸    出             : 無
  29. *******************************************************************************/
  30. void delay_10us(u16 ten_us)
  31. {
  32.         while(ten_us--);        
  33. }

  34. /*******************************************************************************
  35. * 函 數 名       : delay_ms
  36. * 函數功能         : ms延時函數,ms=1時,大約延時1ms
  37. * 輸    入       : ms:ms延時時間
  38. * 輸    出             : 無
  39. *******************************************************************************/
  40. void delay_ms(u16 ms)
  41. {
  42.         u16 i,j;
  43.         for(i=ms;i>0;i--)
  44.                 for(j=110;j>0;j--);
  45. }


  46. /*******************************************************************************
  47. * 函 數 名       : lcd12864_write_cmd
  48. * 函數功能         : LCD12864寫命令
  49. * 輸    入       : cmd:指令
  50. * 輸    出             : 無
  51. *******************************************************************************/
  52. void lcd12864_write_cmd(u8 cmd)
  53. {
  54.         LCD12864_RS=0;//選擇命令
  55.         LCD12864_WR=0;//選擇寫
  56.         LCD12864_E=0;
  57.         LCD12864_DATAPORT=cmd;//準備命令
  58.         delay_ms(1);
  59.         LCD12864_E=1;//使能腳E先上升沿寫入
  60.         delay_ms(1);
  61.         LCD12864_E=0;//使能腳E后負跳變完成寫入
  62. }

  63. /*******************************************************************************
  64. * 函 數 名       : lcd12864_write_data
  65. * 函數功能         : LCD12864寫數據
  66. * 輸    入       : dat:數據
  67. * 輸    出             : 無
  68. *******************************************************************************/
  69. void lcd12864_write_data(u8 dat)
  70. {
  71.         LCD12864_RS=1;//選擇數據
  72.         LCD12864_WR=0;//選擇寫
  73.         LCD12864_E=0;
  74.         LCD12864_DATAPORT=dat;//準備數據
  75.         delay_ms(1);
  76.         LCD12864_E=1;//使能腳E先上升沿寫入
  77.         delay_ms(1);
  78.         LCD12864_E=0;//使能腳E后負跳變完成寫入
  79. }

  80. /*******************************************************************************
  81. * 函 數 名       : lcd12864_init
  82. * 函數功能         : LCD12864初始化
  83. * 輸    入       : 無
  84. * 輸    出             : 無
  85. *******************************************************************************/
  86. void lcd12864_init(void)
  87. {
  88.         LCD12864_PSB=1;//選擇8位或4位并口方式
  89.         lcd12864_write_cmd(0x30);//數據總線8位,基本指令操作
  90.         lcd12864_write_cmd(0x0c);//整體顯示關,游標顯示關,游標正常顯示
  91.         lcd12864_write_cmd(0x06);//寫入新數據后光標右移,顯示屏不移動
  92.         lcd12864_write_cmd(0x01);//清屏        
  93. }

  94. /*******************************************************************************
  95. * 函 數 名       : lcd12864_clear
  96. * 函數功能         : LCD12864清屏
  97. * 輸    入       : 無
  98. * 輸    出             : 無
  99. *******************************************************************************/
  100. void lcd12864_clear(void)
  101. {
  102.         lcd12864_write_cmd(0x01);        
  103. }

  104. /*******************************************************************************
  105. * 函 數 名       : lcd12864_show_string
  106. * 函數功能         : LCD12864顯示字符串
  107. * 輸    入       : x,y:顯示坐標,x=0~7,y=0~3;
  108.                                    str:顯示字符串數據
  109. * 輸    出             : 無
  110. *******************************************************************************/
  111. void lcd12864_show_string(u8 x,u8 y,u8 *str)
  112. {
  113.         if(y<=0)y=0;
  114.         if(y>3)y=3;
  115.         x&=0x0f;        //限制x,y不能大于顯示范圍

  116.         switch(y)
  117.         {
  118.                 case 0: x|=0x80;break;//第1行地址+x的偏移
  119.                 case 1: x|=0x90;break;//第2行地址+x的偏移
  120.                 case 2: x|=0x88;break;//第3行地址+x的偏移
  121.                 case 3: x|=0x98;break;//第4行地址+x的偏移
  122.         }
  123.         lcd12864_write_cmd(x);
  124.         while(*str!='\0')
  125.         {
  126.                 lcd12864_write_data(*str);
  127.                 str++;               
  128.         }
  129.                
  130. }


  131. /*******************************************************************************
  132. * 函 數 名       : main
  133. * 函數功能         : 主函數
  134. * 輸    入       : 無
  135. * 輸    出             : 無
  136. *******************************************************************************/
  137. void main()
  138. {        
  139.         lcd12864_init();//LCD12864初始化

  140.         lcd12864_show_string(0,0,"Hello World!");//第1行字符串顯示
  141.         lcd12864_show_string(0,1,"大家好!");//第2行字符串顯示
  142.         lcd12864_show_string(0,2,"歡迎使用51開發板");//第3行字符串顯示
  143.         lcd12864_show_string(0,3,"好好學習天天向上");//第4行字符串顯示
  144.         while(1)
  145.         {
  146.                
  147.         }        
  148. }


復制代碼




ID:1064915 發表于 2026-4-10 11:10
無法顯示正常
ID:647261 發表于 2026-4-10 09:42
據說其他軟件代碼用AI很方便,但以我用AI寫單片機代碼的經歷來說,AI并不靠譜,不是這里錯一點就是那里錯一點
玩單片機,還是要自己會寫代碼才行,AI只能參考
ID:1161211 發表于 2026-4-10 08:39
先學習例程點亮后,再修改成自己需要的程序
ID:1121801 發表于 2026-4-10 08:05
用AI寫程序的話,還玩什么單片機
ID:1133081 發表于 2026-4-10 06:22
你問哪里出了問題,其實你自己知道,因為沒有動腦子。記住防火防盜防AI。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表