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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 194|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī) 串口修改LCD密碼鎖密碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1152144 發(fā)表于 2025-5-29 17:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是51單片機(jī)小白,做一個(gè)LCD密碼鎖的項(xiàng)目遇到了困難。在題目要求的串口修改密碼鎖密碼這個(gè)功能上,我一直找不到錯(cuò)誤,有沒(méi)有大佬能幫幫我QAQ。題目要求是密碼鎖初始密碼為123,用電腦通過(guò)串口發(fā)送“123-789”將密碼從123修改為789,我不知道哪里寫(xiě)錯(cuò)了,請(qǐng)求大佬們幫忙,謝謝大佬們了

串口改變LCD密碼鎖的密碼.zip

59.92 KB, 下載次數(shù): 0

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

使用道具 舉報(bào)

沙發(fā)
ID:1121801 發(fā)表于 2025-5-30 08:37 | 只看該作者
一般都不會(huì)下載附件,你最好把代碼直接貼上來(lái).
估計(jì)一下,應(yīng)該是對(duì)字符"-"的判斷有問(wèn)題.或者是你程序中的字符'-'與你輸入的字符"-"不匹配.
回復(fù)

使用道具 舉報(bào)

板凳
ID:1152144 發(fā)表于 2025-5-30 15:00 | 只看該作者
cyi8 發(fā)表于 2025-5-30 08:37
一般都不會(huì)下載附件,你最好把代碼直接貼上來(lái).
估計(jì)一下,應(yīng)該是對(duì)字符"-"的判斷有問(wèn)題.或者是你程序中的字 ...

OK,謝謝你的提醒
這是我的代碼,我刪除了原來(lái)的按鍵部分,只留下了串口部分,但是這部分是用AI寫(xiě)的,和我原來(lái)寫(xiě)的差不多,多了一部分東西.我對(duì)代碼修改了一部分,原本interrupt 4這里是檢測(cè)\n為結(jié)束標(biāo)志的,后面為了方便我就該為了以一個(gè)空格為結(jié)束標(biāo)志,然后發(fā)現(xiàn)沒(méi)有現(xiàn)象,我就在interrupt進(jìn)去的時(shí)候加了個(gè)燈亮,出來(lái)的時(shí)候加了個(gè)燈滅,發(fā)現(xiàn)會(huì)正常熄滅。然后我就在但是就是在主函數(shù)中if(UART_RX_Complete)加了個(gè)LCD顯示,這里就不會(huì)顯示,我不知道為什么。希望大佬們能做出指正
  1. #include <REGX52.H>
  2. #include "LCD1602.h"
  3. #include "Delay.h"
  4. #include "MatrixKey.h"
  5. #include "UART.h"

  6. sbit LED=P2^0;

  7. unsigned char KeyNum;
  8. unsigned int Password=123;
  9. unsigned int SetWord;
  10. unsigned char Count;
  11. unsigned char state;
  12. unsigned char Counter;

  13. unsigned char i;
  14. unsigned char dash_pos = 0;
  15. unsigned int old_password = 0;
  16. unsigned int new_password = 0;
  17. unsigned char valid = 1;

  18. unsigned char UART_RX_Buffer[10]={0};
  19. unsigned char UART_RX_Count = 0;
  20. unsigned char UART_RX_Complete = 0;

  21. void main()
  22. {
  23.         LED=1;
  24.         
  25.         LCD_Init();
  26.         UartInit();
  27.                 LCD_ShowString(2,1,"CODE LOCK:");
  28.         while(1)
  29.         {
  30.                 Counter = 0;
  31.                 if(UART_RX_Complete)
  32.                 {
  33.                                 LCD_Init();
  34.                         LCD_ShowString(1,1,"CODE LOCK:");
  35.                         UART_RX_Complete=0;
  36.                         
  37.                         old_password = 0;
  38.                         new_password = 0;
  39.                         valid = 1;
  40.                
  41.                
  42.                         for(i=0;i<10;i++)
  43.                         {
  44.                                 if(UART_RX_Buffer[i]=='-')
  45.                                 {
  46.                                         dash_pos=i;
  47.                                         break;
  48.                                 }
  49.                                 
  50.                         }
  51.                         
  52.                         if(dash_pos == 0|| dash_pos>9)
  53.                         {
  54.                                 LCD_ShowString(1,1,"FORMAT ERROR!");
  55.                                 goto CLEAR_BUFFER;
  56.                         }
  57.                         

  58.                         
  59.                         for(i=0;i< dash_pos;i++)
  60.                         {
  61.                                 if(UART_RX_Buffer[i]<'0' ||UART_RX_Buffer[i] > '9')
  62.                                 {
  63.                                         valid = 0;
  64.                                         break;
  65.                                 }
  66.                                 old_password = old_password*10 + (UART_RX_Buffer[i] - '0');
  67.                                 
  68.                         }
  69.                         
  70.                         if(valid)
  71.                         {
  72.                                 for(dash_pos+1;i<10;i++)
  73.                                 {
  74.                                         if(UART_RX_Buffer[i] == '\0')break;
  75.                                                 if(UART_RX_Buffer[i]<'0' ||UART_RX_Buffer[i] > '9')
  76.                                         {
  77.                                                 valid = 0;
  78.                                                 break;
  79.                                         }
  80.                                         new_password = new_password*10 + (UART_RX_Buffer[i] - '0');
  81.                                 }
  82.                                 
  83.                         }
  84.                         
  85.                         if(valid)
  86.                         {
  87.                                         if(old_password == Password)
  88.                                         {
  89.                                                 Password = new_password;
  90.                                                 LCD_ShowString(1, 1, "PASSWORD UPDATED!");
  91.                                                 LCD_ShowNum(2, 1, Password, 3);
  92.                                                 LED = 0;
  93.                                                 Delay(5000);
  94.                                                 LED = 1;
  95.                                                 state = 0;
  96.                                                 LCD_ShowString(1,1,"                ");
  97.                                                 LCD_ShowString(2,1,"                ");
  98.                                         }
  99.                                         else
  100.                                         {
  101.                                                         LCD_ShowString(1, 1, "OLD PWD WRONG!   ");
  102.                                         }
  103.                         }
  104.                         
  105.                
  106.                         else
  107.                                 {
  108.                                                 LCD_ShowString(1, 1, "INVALID CHARACTER!");
  109.                                 }
  110.                                 
  111.         CLEAR_BUFFER:
  112.                                 for(i=0;i<10;i++)
  113.                                 {
  114.                                         UART_RX_Buffer[i] = 0;
  115.                                 }
  116.                                 UART_RX_Count = 0;
  117.                         }
  118.         /*************************************¼üÅÌÃÜÂëÊäÈ벿·Ö**************************/        


  119.         }
  120. }
  121. /*************************************´®¿ÚÖжϺ¯ÊýÄ£°å**************************/
  122.         void UART_Routnine() interrupt 4
  123.         {
  124.                 if(RI==1)//ÅжÏÊǽÓÊÕÖжÏ
  125.                 {
  126.                         LED = 0;
  127.                         if(UART_RX_Count < 9)
  128.                         {
  129.                                 UART_RX_Buffer[UART_RX_Count] = SBUF;
  130.                                 UART_RX_Count++;
  131.                                 if(SBUF == ' ')
  132.                                 {
  133.                                         UART_RX_Buffer[UART_RX_Count] = '\0';
  134.                                         UART_RX_Complete = 1;
  135.                                         UART_RX_Count = 0;
  136.                                 }
  137.                         }
  138.                         RI = 0;

  139.                         LED = 1;
  140.                 }
  141.                 if(TI==1)
  142.                 {
  143.                         TI=0;
  144.                 }
  145.         
  146. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

地板
ID:584814 發(fā)表于 2025-5-31 22:35 | 只看該作者
同是STC15W408AS,只要引腳對(duì)上應(yīng)該就沒(méi)問(wèn)題。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91玖玖 | 日本字幕在线观看 | 一区二区三区四区电影视频在线观看 | 久久久精品一区 | 99reav| 国产做a爱片久久毛片 | 在线观看视频一区二区三区 | 91精品国产综合久久婷婷香蕉 | 搞av.com| 国产精品高潮呻吟久久aⅴ码 | 日屁视频| 视频在线亚洲 | 精品久久99 | 国产精品一区二区在线免费观看 | 中文字幕在线观看 | 91在线视频观看 | 国产精品久久久久久久久久免费看 | 精品久久久久久久久亚洲 | 色婷婷精品国产一区二区三区 | 中文视频在线 | 成人免费在线视频 | 中文字幕在线精品 | 中文字幕不卡在线观看 | 九九亚洲 | 韩国av网站在线观看 | 久久亚洲一区二区三区四区 | 丝袜一区二区三区 | 九九伦理片 | 国产精品久久久久久久久大全 | 国产成人在线视频 | 91一区二区三区 | 玖玖精品 | 最新av中文字幕 | 中文字幕精品一区 | 日韩欧美不卡 | 91免费入口 | 精品国产精品国产偷麻豆 | 成人免费淫片aa视频免费 | 国产精品久久久久久久久久不蜜臀 | 欧美国产精品 | 国产一区视频在线 |