久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6702|回復: 12
打印 上一主題 下一主題
收起左側

單片機LCD1602程序上電后出現白色方塊如何解決?

  [復制鏈接]
跳轉到指定樓層
樓主
5黑幣
如題,在導入程序后運行出現如下圖所示的狀況。求助如何解決
基于STC89C52的IC智能水卡程序設計問題



主程序
  1. #include "reg52.h"
  2. #include "main.h"
  3. #include "mfrc522.h"
  4. #include<intrins.h>         //函數處理頭文件   
  5. #include<string.h>          //字符串處理頭文件  
  6. #include<stdio.h>           // 輸入輸出函數頭文件

  7. /********************************************************************************************/
  8. //數值類別
  9. typedef signed   char      int8;                 // 有符號8位整型變量
  10. typedef unsigned char      uint8;                // 無符號8位整型變量
  11. typedef signed   int       int16;                // 有符號16位整型變量
  12. typedef unsigned int       uint16;               // 無符號16位整型變量
  13. /********************************************************************************************/
  14. // 定義特殊寄存器                       
  15. sfr wdt_contr=0xe1;                                 //定義看門狗地址
  16. sfr isp_data =0xe2;                                 //定義ISP數據寄存器
  17. sfr isp_addrh=0xe3;                                 //定義ISP地址高8位
  18. sfr isp_addrl=0xe4;                                 //定義ISP地址低8位
  19. sfr isp_cmd  =0xe5;                                 //定義ISP命令模式寄存器
  20. sfr isp_trig =0xe6;                                 //定義ISP命令觸發寄存器
  21. sfr isp_contr=0xe7;                                 //定義ISP控制模式寄存器

  22. //unsigned char code data1[16] = {0x64,0x00,0x00,0x00,0x1B,0xFF,0xFF,0xFF,0x64,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};//100
  23. unsigned char code data1[16] = {0xC8,0x00,0x00,0x00,0x37,0xFF,0xFF,0xFF,0xC8,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};//200
  24. //M1卡的某一塊寫為如下格式,則該塊為錢包,可接收扣款和充值命令
  25. //4字節金額(低字節在前)+4字節金額取反+4字節金額+1字節塊地址+1字節塊地址取反+1字節塊地址+1字節塊地址取反
  26. unsigned char data2[4]  = {0x00,0x00,0x00,0x01};//存值減值金額
  27. unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //密碼
  28. unsigned char TYPE_DATA[2];//類型
  29. unsigned char ID_DATA[4];  //ID地址
  30. unsigned char value_DATA[4];//卡里面的值                                                                                         
  31. unsigned char g_ucTempbuf[20];//
  32. unsigned char code dis0[] = {"Total:"};
  33. unsigned char code dis1[] = {" "};
  34. unsigned char code dis2[] = {"CardID:"};
  35. unsigned char code dis3[] = {"Met:"};        
  36. unsigned char code dis4[] = {" Card:"};  
  37.    
  38. unsigned char code dis6[] = {"0123456789ABCDEF"};
  39. unsigned int tt=0,keyfalg,falg_pro;  
  40. unsigned char mc;
  41. uint16 tot=0,mon=0,card=0;
  42. uint8  a=0,b=0,c=0,d=0;
  43. /********************************************************************************************/

  44. //EEPROM驅動開始
  45. /*********************************************************************************
  46. * 函數名稱:eepromEraseSector (uint16 address)  
  47. * 功    能:EEPROM擦除程序
  48. * 入口參數:address
  49. * 出口參數:無
  50. **********************************************************************************/
  51. //擦除片內EEPROM的一個扇區   
  52. //擦除只能以扇區為最小單位進行,沒法只擦除一個字節   
  53. //一個扇區是512個字節   
  54. //本函數參數里面的地址落在哪個扇區,則該扇區內數據都將被擦除   
  55. //例如:STC89C51RC片內EEPROM第一扇區開始地址為0x2000,結束地址為0x21ff   
  56. //如果調用 eepromEraseSector(0x2001),則第一扇區內數據都將被擦除   
  57. //擦除成功后,該扇區內各字節都將變為0xff   
  58. void eepromEraseSector (uint16 address)  
  59. {  
  60. uint8 i;  
  61. isp_addrl=address;  
  62. isp_addrh=address>>8;  
  63. isp_contr=0x01;   
  64. isp_contr=isp_contr|0x81; // 0x80 if SYSCLK<40MHz, 0x81 if SYSCLK<20MHz, 0x82 if SYSCLK<10MHz, 0x83 if SYSCLK<5MHz   
  65. isp_cmd=0x03;   //送擦除扇區命令
  66. isp_trig=0x46;  
  67. isp_trig=0xb9;  //觸發寄存器
  68. for(i=0;i<3;i++);  
  69. isp_contr=0x00;
  70. isp_cmd  =0x00;
  71. isp_trig =0x00;
  72. isp_addrl=0x0;  
  73. isp_addrh=0x0;      
  74. }  
  75. /**********************************************************************************
  76. * 函數名稱:eepromWrite(uint16 address, uint8 write_data)   
  77. * 功    能:EEPROM寫程序
  78. * 入口參數:address,write_data
  79. * 出口參數:無
  80. ***********************************************************************************/
  81. //對STC片內EEPROM的指定地址寫入數據(即,字節編程)。   
  82. //注意:字節編程是指將eeprom的1寫成1或0,將0寫成0,而無法將0寫成1   
  83. //所以,在寫入數據前,一定要用扇區擦除將所有字節變為0xff
  84. void eepromWrite(uint16 address, uint8 write_data)
  85. {  
  86. uint8 i;  
  87. isp_data=write_data;  
  88. isp_addrl=address;  
  89. isp_addrh=address>>8;  
  90. isp_contr=0x01;   
  91. isp_contr=isp_contr|0x81; // 0x80 if SYSCLK<40MHz, 0x81 if SYSCLK<20MHz, 0x82 if SYSCLK<10MHz, 0x83 if SYSCLK<5MHz   
  92. isp_cmd=0x02;  //送寫數據命令
  93. isp_trig=0x46;  
  94. isp_trig=0xb9;  //觸發寄存器
  95. for(i=0;i<3;i++);  
  96. isp_contr=0x00;
  97. isp_cmd  =0x00;
  98. isp_trig =0x00;
  99. isp_addrl=0x0;  
  100. isp_addrh=0x0;
  101. }  
  102. /***********************************************************************************
  103. * 函數名稱:eepromRead(uint16 address)   
  104. * 功    能:EEPROM讀程序
  105. * 入口參數:address
  106. * 出口參數:z
  107. ************************************************************************************/
  108. //讀取STC單片機內部EEPROM的一個字節   
  109. //主要不同的STC單片機EEPROM起始地址不同   
  110. //例如:STC89c52RC的片內EEPROM起始地址為0x2000
  111. uint8 eepromRead(uint16 address)  
  112. {  
  113. uint8 i,z;  
  114. isp_addrl=address;  
  115. isp_addrh=address>>8;  
  116. isp_contr=0x01;  
  117. isp_contr=isp_contr|0x81; // 0x80 if SYSCLK<40MHz, 0x81 if SYSCLK<20MHz, 0x82 if SYSCLK<10MHz, 0x83 if SYSCLK<5MHz   
  118. isp_cmd=0x01;  //送讀數據命令
  119. isp_trig=0x46;  
  120. isp_trig=0xb9;  //觸發寄存器
  121. for(i=0;i<3;i++);  
  122. isp_contr=0x00;
  123. isp_cmd  =0x00;
  124. isp_trig =0x00;
  125. isp_addrl=0x0;  
  126. isp_addrh=0x0;   
  127. z=isp_data;  
  128. return(z);  
  129. }  
  130. void wreeprom(void){
  131. a=tot/256;
  132. b=tot%256;
  133. c=mon/256;
  134. d=mon%256;
  135. eepromEraseSector (0x2000);//擦除eeprom
  136. eepromWrite(0x2000, a);//寫入eeprom
  137. eepromWrite(0x2001, b);//寫入eeprom
  138. eepromWrite(0x2002, c);//寫入eeprom
  139. eepromWrite(0x2003, d);//寫入eeprom
  140. }


  141. //中斷程序
  142. /*********************************************************************************
  143. * 函數名稱:int0_1_int()
  144. * 功    能:外部中斷0/1初始化
  145. **********************************************************************************/
  146. void int0_1_int(void) {
  147. //    IT0=1;//下降沿觸發
  148. //    EX0=1;//TF0中斷開
  149. IT1=1;//下降沿觸發
  150. EX1=1;//TF1中斷開
  151. EA=1;//開中斷
  152. }
  153. /*********************************************************************************
  154. * 函數名稱:int1_fun()interrupt2
  155. * 功    能:外部中斷1服務子程序
  156. *********************************************************************************/
  157. void int1_fun()interrupt 2 {
  158. mc++;
  159. if (mc>=10){
  160. mc=0;
  161. if (mon>0){mon--;tot++;}

  162. wreeprom();
  163. }        
  164. }
  165. void main( )
  166. {   
  167.      unsigned char status;
  168. int0_1_int();
  169.      InitializeSystem( );//初始化
  170.      PcdReset();        //復位RC522
  171.      PcdAntennaOff(); //關閉天線
  172.      PcdAntennaOn();  //開啟天線

  173. a=eepromRead(0x2000);//從eeprom讀
  174. b=eepromRead(0x2001);//從eeprom讀
  175. c=eepromRead(0x2002);//從eeprom讀
  176. d=eepromRead(0x2003);//從eeprom讀

  177. if (a==0xff&b==0xff&c==0xff&d==0xff) {
  178. //        a=0,b=0,c=0,d=0;
  179. eepromEraseSector (0x2000);//擦除eeprom
  180. eepromWrite(0x2000, a);//寫入eeprom
  181. eepromWrite(0x2001, b);//寫入eeprom
  182. eepromWrite(0x2002, c);//寫入eeprom
  183. eepromWrite(0x2003, d);}//寫入eeprom
  184. tot=a*256+b;
  185. mon=c*256+d;
  186.      while ( 1 )
  187.      {

  188. if(key1==0){dcf=1;dcfzsd=1;fmq=0;kgbj=0;}else{fmq=1;kgbj=1;}//開蓋檢測到開啟時關閥門、報警
  189.         status = PcdRequest(PICC_REQALL, g_ucTempbuf); //返回卡片類型#define PICC_REQIDL 0x26 尋天線區內未進入休眠狀態
  190. if (status != MI_OK){TYPE_DATA[0]=0;TYPE_DATA[1]=0;
  191. ID_DATA[0]=0;ID_DATA[1]=0;ID_DATA[2]=0;ID_DATA[3]=0;
  192. value_DATA[0]=0;    value_DATA[1]=0;    value_DATA[2]=0;    value_DATA[3]=0;
  193. falg_pro=0;
  194. card=0;}//讀不到卡,顯示清0;
  195.         if (status == MI_OK){TYPE_DATA[0]=g_ucTempbuf[0];TYPE_DATA[1]=g_ucTempbuf[1];
  196. status = PcdAnticoll(g_ucTempbuf);       //防沖撞 ,返回卡片ID號 4字節
  197. if (status == MI_OK){status = PcdSelect(g_ucTempbuf);    //選定卡片  ,輸入卡片ID號
  198. if (status == MI_OK){if(falg_pro==0){falg_pro=1;pro();}//聲音提示標志
  199. ID_DATA[0]=g_ucTempbuf[0];
  200. ID_DATA[1]=g_ucTempbuf[1];
  201. ID_DATA[2]=g_ucTempbuf[2];
  202. ID_DATA[3]=g_ucTempbuf[3];
  203.                             //
  204. if (key2==0 ){init_k();}//初始化卡
  205. if (key2!=0 & mon<1000 & card>0){writek();}//寫卡
  206. readk(); //讀卡
  207. PcdHalt();//命令卡片進入休眠狀態   
  208. }      
  209. }
  210. }   
  211. if(key3==0){Delay(40);if (mon>0){mon--;tot++;}
  212. wreeprom();}//寫入eeprom}
  213. if(mon>0&key1!=0){dcf=0;dcfzsd=0;}else{dcf=1;dcfzsd=1;}//有余額時開閥
  214. if(mon<10){kgbj=0;}else{kgbj=1;}//余額低于10時報警燈亮;
  215. if(mon<10&mon>0){fmq=0;}else{fmq=1;}

  216. if (falg_pro){LCD1206b();}else{LCD1206a();};//顯示處理   

  217. }      
  218. }


  219. /////////////////////////////////////////////////////////////////////
  220. //系統初始化
  221. /////////////////////////////////////////////////////////////////////
  222. void InitializeSystem(void)
  223. {     
  224.      P0 = 0xFF;P1 = 0xFF;P2 = 0xFF;P3 = 0xFF;
  225. fmq=0;
  226. lcd_init();                // 初始化LCD            
  227. Delay(1);
  228. fmq=1;
  229. }
  230. void Delay(unsigned int time)
  231. {
  232.   unsigned int i,k  ;
  233.   for(i=0;i<255;i++)
  234.     for(k=0;k<time;k++)
  235.      _nop_();     
  236. }
  237. ////////////////////////顯示處理函數////////////////////////////////
  238. bit lcd_bz()                    // 測試LCD忙碌狀態
  239. {                        
  240. bit result;
  241. rs = 0;rw = 1;ep = 1;
  242. _nop_();_nop_();_nop_();_nop_();
  243. result = (bit)(P0 & 0x80);
  244. ep = 0;
  245. return result;   
  246. }
  247. lcd_wcmd(unsigned char cmd)// 寫入指令數據到LCD
  248. {                           
  249. while(lcd_bz());
  250. rs = 0;rw = 0;ep = 0;
  251. _nop_();_nop_();   
  252. P0 = cmd;
  253. _nop_();_nop_();_nop_();_nop_();
  254. ep = 1;
  255. _nop_();_nop_();_nop_();_nop_();
  256. ep = 0;        
  257. }

  258. lcd_pos(unsigned char pos)
  259. {                            //設定顯示位置
  260. lcd_wcmd(pos | 0x80);
  261. }

  262. lcd_wdat(unsigned char dat)   
  263. {                            //寫入字符顯示數據到LCD
  264. while(lcd_bz());
  265. rs = 1;rw = 0;ep = 0;
  266. P0 = dat;
  267. _nop_();_nop_();_nop_();_nop_();
  268. ep = 1;
  269. _nop_();_nop_();_nop_();_nop_();
  270. ep = 0;   
  271. }
  272. lcd_init(void)                     //LCD初始化設定
  273. {                           
  274. lcd_wcmd(0x38);Delay(1);    //
  275. lcd_wcmd(0x0c);Delay(1);    //
  276. lcd_wcmd(0x06);Delay(1);    //
  277. lcd_wcmd(0x01);Delay(1);    //清除LCD的顯示內容
  278. }
  279. LCD1206a()
  280. {
  281. unsigned char i;
  282. TYPE_DATA[0]=0x04;
  283. lcd_pos(0x00);                // 設置顯示位置為第一行的第0個字符
  284. i = 0;
  285. switch (TYPE_DATA[0])
  286. {
  287. case 0x04:
  288. lcd_wdat(dis0[0]);
  289. lcd_wdat(dis0[1]);
  290. lcd_wdat(dis0[2]);
  291. lcd_wdat(dis0[3]);
  292. lcd_wdat(dis0[4]);
  293. lcd_wdat(dis0[5]);
  294. break;
  295. case 0x02:
  296. lcd_wdat(dis1[0]);
  297. break;
  298. case 0x08:
  299. lcd_wdat(dis2[0]);
  300. break;
  301. case 0x44:
  302. lcd_wdat(dis3[0]);
  303. break;
  304. }
  305. lcd_wdat(dis6[tot/10000]);
  306. lcd_wdat(dis6[tot%10000/1000]);
  307. lcd_wdat(dis6[tot%10000%1000/100]);
  308. lcd_wdat(dis6[tot%10000%1000%100/10]);
  309. lcd_wdat(dis6[tot%10000%1000%100%10]);
  310. lcd_wdat(dis1[0]);
  311. lcd_wdat(dis1[0]);
  312. lcd_wdat(dis1[0]);
  313. lcd_wdat(dis1[0]);
  314. lcd_wdat(dis1[0]);
  315. lcd_pos(0x40);
  316. lcd_wdat(dis3[0]);
  317. lcd_wdat(dis3[1]);
  318. lcd_wdat(dis3[2]);
  319. lcd_wdat(dis3[3]);
  320. lcd_wdat(dis6[mon%10000%1000/100]);
  321. lcd_wdat(dis6[mon%10000%1000%100/10]);
  322. lcd_wdat(dis6[mon%10000%1000%100%10]);
  323. lcd_wdat(dis4[0]);
  324. lcd_wdat(dis4[1]);
  325. lcd_wdat(dis4[2]);
  326. lcd_wdat(dis4[3]);
  327. lcd_wdat(dis4[4]);
  328. lcd_wdat(dis4[5]);
  329. lcd_wdat(dis6[card%10000%1000/100]);
  330. lcd_wdat(dis6[card%10000%1000%100/10]);
  331. lcd_wdat(dis6[card%10000%1000%100%10]);
  332. }  
  333. LCD1206b()
  334. {
  335. unsigned char i;
  336. TYPE_DATA[0]=0x04;
  337. lcd_pos(0x00);                // 設置顯示位置為第一行的第0個字符
  338. i = 0;
  339. switch (TYPE_DATA[0])
  340. {
  341. case 0x04:
  342. lcd_wdat(dis2[0]);
  343. lcd_wdat(dis2[1]);
  344. lcd_wdat(dis2[2]);
  345. lcd_wdat(dis2[3]);
  346. lcd_wdat(dis2[4]);
  347. lcd_wdat(dis2[5]);
  348. lcd_wdat(dis2[6]);

  349. break;
  350. lcd_wdat(dis2[6]);
  351. break;
  352. lcd_wdat(dis2[7]);
  353. break;
  354. case 0x02:
  355. lcd_wdat(dis1[0]);
  356. break;
  357. case 0x08:
  358. lcd_wdat(dis2[0]);
  359. break;
  360. case 0x44:
  361. lcd_wdat(dis3[0]);
  362. break;
  363. }
  364. lcd_wdat(dis6[ID_DATA[0]%100/10]);
  365. lcd_wdat(dis6[ID_DATA[0]%10]);
  366. lcd_wdat(dis6[ID_DATA[1]%100/10]);
  367. lcd_wdat(dis6[ID_DATA[1]%10]);
  368. lcd_wdat(dis6[ID_DATA[2]%100/10]);
  369. lcd_wdat(dis6[ID_DATA[2]%10]);
  370. lcd_wdat(dis6[ID_DATA[3]%100/10]);
  371. lcd_wdat(dis6[ID_DATA[3]%10]);

  372. lcd_pos(0x40);
  373. lcd_wdat(dis3[0]);
  374. lcd_wdat(dis3[1]);
  375. lcd_wdat(dis3[2]);
  376. lcd_wdat(dis3[3]);
  377. lcd_wdat(dis6[mon%10000%1000/100]);
  378. lcd_wdat(dis6[mon%10000%1000%100/10]);
  379. lcd_wdat(dis6[mon%10000%1000%100%10]);
  380. lcd_wdat(dis4[0]);
  381. lcd_wdat(dis4[1]);
  382. lcd_wdat(dis4[2]);
  383. lcd_wdat(dis4[3]);
  384. lcd_wdat(dis4[4]);
  385. lcd_wdat(dis4[5]);
  386. lcd_wdat(dis6[card%10000%1000/100]);
  387. lcd_wdat(dis6[card%10000%1000%100/10]);
  388. lcd_wdat(dis6[card%10000%1000%100%10]);
  389. }

  390. void pro()//蜂鳴器滴一聲
  391. {
  392. fmq=0;
  393. TMOD=0x11;//設置定時器0為工作方式1
  394. TH0=(65536-50000)/256;//給定時器裝初值 高八位
  395. TL0=(65536-50000)%256;//給定時器裝初值 低八位
  396. EA=1;   //開總中斷
  397. ET0=1;  //開定時器0中斷
  398. TR0=1;  //啟動定時器0
  399. }

  400. void time0() interrupt 1// 中斷服務子程序 聲音時間一致
  401. {

  402. TH0=(65536-50000)/256;//給定時器裝初值 高八位
  403. TL0=(65536-50000)%256;//給定時器裝初值 低八位
  404. tt++;
  405. if(tt==3){tt=0;fmq=1;

  406. ET0=0;  //關定時器0中斷
  407. TR0=0;  //關定時器0
  408. }   
  409. }

  410. void readk()//讀卡
  411. {   
  412. unsigned char status;
  413. status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//PICC_AUTHENT1A 驗證密碼模式60A密碼 61B密碼,“1”塊地址,DefaultKey初始密碼,g_ucTempbuf ID號
  414. if (status == MI_OK) //驗證密碼
  415. {                                                                                                                                                                                             
  416.     status = PcdRead(1, g_ucTempbuf);//讀塊地址“1”的數據,返回值存在    g_ucTempbuf
  417.   if (status == MI_OK)
  418.   {
  419. value_DATA[0]=g_ucTempbuf[0];
  420. value_DATA[1]=g_ucTempbuf[1];
  421. value_DATA[2]=g_ucTempbuf[2];
  422. value_DATA[3]=g_ucTempbuf[3];   
  423. card=value_DATA[0]+value_DATA[1]*256;                                             
  424.   }   
  425.      }
  426. }   
  427. void writek()//寫卡    存值或減值
  428. {
  429.     unsigned char status;
  430.     status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//PICC_AUTHENT1A 驗證密碼模式60A密碼 61B密碼,“1”塊地址,DefaultKey初始密碼,g_ucTempbuf ID號
  431.   if (status == MI_OK) //驗證密碼
  432.   {   
  433. data2[1]=100/256;data2[0]=100%256;//扣款金額
  434. status = PcdValue(PICC_DECREMENT,1,data2);//扣款存值命令,錢包地址,金額 低位在前  PICC_INCREMENT 充值
  435. if (status == MI_OK)
  436. {
  437. pro();
  438. mon=mon+100;                                     //充值金額
  439. wreeprom();
  440.     }      
  441. status = PcdBakValue(1, 2);              //備份錢包      “1”源地址“2”目標地址
  442. if(status == MI_OK){};
  443. }

  444. }   
  445. void init_k()//初始化卡
  446. {
  447.     unsigned char status;
  448. if(key2==0)                              //充值
  449. {
  450.     status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//PICC_AUTHENT1A 驗證密碼模式60A密碼 61B密碼,“1”塊地址,DefaultKey初始密碼,g_ucTempbuf ID號
  451.   if (status == MI_OK) //驗證密碼
  452.   {                                                                                                                                                                     
  453.   status = PcdWrite(1, data1);//4字節金額(低字節在前)+4字節金額取反+4字節金額+1字節塊地址+1字節塊地址取反+1字節塊地址+1字節塊地址取反
  454.   if (status == MI_OK)
  455. {
  456.       pro();
  457. }
  458. }
  459. }
  460. }     
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2019-3-30 08:09 | 只看該作者
這是典型的LCD初始化失敗,并且對比度調整過大的現象。
回復

使用道具 舉報

板凳
ID:164602 發表于 2019-3-30 08:29 | 只看該作者
需要調對比度。
回復

使用道具 舉報

地板
ID:451718 發表于 2019-3-30 09:15 | 只看該作者
你沒有給1602搞一個背光調節電阻?

1602.jpg (88.14 KB, 下載次數: 93)

1602.jpg
回復

使用道具 舉報

5#
ID:481641 發表于 2019-3-30 11:04 | 只看該作者
調節對比度,可以加個電阻或者電位器,還有就是初始化,初始化可以清屏
回復

使用道具 舉報

6#
ID:375092 發表于 2019-3-30 11:14 | 只看該作者
你這個是LCD1602硬件連接的問題吧,你看看是不是那個電阻不合適還是怎么的,也有可能是程序的原因,都可以網這些方面去檢查一下。樓主現在在玩RC522嗎,進展怎么樣了,我現在也在搞,遇到一些問題,希望有機會能夠交流
回復

使用道具 舉報

7#
ID:338750 發表于 2019-3-30 21:32 | 只看該作者
1.調節對比度,就是那個可調電阻.
2.把RW端接地試一試.
回復

使用道具 舉報

8#
ID:499770 發表于 2019-3-30 22:05 | 只看該作者
LCD初始化失敗,對比度調整過大
回復

使用道具 舉報

9#
ID:498978 發表于 2019-3-31 11:26 | 只看該作者
你需要一個滑動變阻器
回復

使用道具 舉報

10#
ID:497899 發表于 2019-3-31 16:46 | 只看該作者
對比度調低一點啊姐妹!
回復

使用道具 舉報

11#
ID:484674 發表于 2022-1-1 08:06 來自手機 | 只看該作者
好象沒有對比電阻吧…
回復

使用道具 舉報

12#
ID:484674 發表于 2022-1-1 08:14 來自手機 | 只看該作者
1602顯示屏出現左邊正常顯示右邊出現白格什么原因請教各位大神
回復

使用道具 舉報

13#
ID:898921 發表于 2022-1-1 14:09 | 只看該作者
初始化失敗,應該調節背光電阻,直到顯示清楚你要寫的字為止。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久免费 | 国产精品黄视频 | 亚洲精品在线观看视频 | 天天操网| 亚洲精品日韩一区二区电影 | 欧美精品一区在线发布 | 91免费视频观看 | 亚洲一区二区三区免费视频 | 国产精品日本一区二区不卡视频 | 午夜精品久久久久久久久久久久久 | 日本不卡免费新一二三区 | 亚洲一区导航 | 欧美在线视频一区二区 | 久久r久久| 91中文字幕在线 | 久热精品免费 | 国产一级一级国产 | 国产高清精品在线 | 金莲网| 国产香蕉视频在线播放 | 久视频在线 | 中国三级黄色录像 | 国产精品美女久久久av超清 | 亚洲免费毛片 | 久久综合一区 | 久久久久亚洲国产| 国产精品mv在线观看 | 中文字幕日韩一区 | 日韩手机在线视频 | 国产精品2 | 亚洲国产精品视频一区 | 久久一区二区三区四区 | 81精品国产乱码久久久久久 | 97视频在线免费 | 久久精品久久精品久久精品 | 国产a级黄色录像 | 皇色视频在线 | 91夜色在线观看 | 韩国主播午夜大尺度福利 | 免费h在线 | 国产精品久久久久久婷婷天堂 |