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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2266|回復: 4
收起左側

單片機12864電子鎖程序

[復制鏈接]
回帖獎勵 250 黑幣 回復本帖可獲得 50 黑幣獎勵! 每人限 1 次
ID:682017 發表于 2020-1-12 13:34 | 顯示全部樓層 |閱讀模式
電子密碼鎖
1. 采用 LCD12864 顯示;
2. 矩陣式按鍵輸入密碼,密碼長度 6 位;
3. 具有密碼修改功能,可存儲 3 組密碼;
4. 密碼輸入正確則屏幕顯示正確的提示,屏幕顯示提示:密碼正確!  
5密碼輸入錯誤,屏幕顯示提示:密碼錯誤!請重新輸入。連續錯誤次數達到 3 次,并有紅色 LED 燈亮。
求大神幫 ,有源碼,能在開發板上使用

單片機源程序如下:
  1. #include "lcd12864.h"


  2. //寫數據
  3. void WriteDataLCD(unsigned char WDLCD)
  4. {
  5. ReadStatusLCD(); //檢測忙
  6. LCD_RS = 1;
  7. LCD_RW = 0;
  8. LCD_Data = WDLCD;
  9. LCD_E = 1;
  10. LCD_E = 1;
  11. LCD_E = 1;
  12. LCD_E = 0;
  13. }

  14. //寫指令
  15. void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC為0時忽略忙檢測
  16. {
  17. if (BuysC) ReadStatusLCD(); //根據需要檢測忙
  18. LCD_RS = 0;
  19. LCD_RW = 0;
  20. LCD_Data = WCLCD;
  21. LCD_E = 1;
  22. LCD_E = 1;
  23. LCD_E = 1;
  24. LCD_E = 0;  
  25. }

  26. //讀數據
  27. unsigned char ReadDataLCD(void)
  28. {
  29. LCD_RS = 1;
  30. LCD_RW = 1;
  31. LCD_E = 0;
  32. LCD_E = 0;
  33. LCD_E = 1;
  34. return(LCD_Data);
  35. }

  36. //讀狀態
  37. unsigned char ReadStatusLCD(void)
  38. {
  39. LCD_Data = 0xFF;
  40. LCD_RS = 0;
  41. LCD_RW = 1;
  42. LCD_E = 1;
  43. while (LCD_Data & Busy); //檢測忙信號
  44. LCD_E = 0;
  45. return(LCD_Data);
  46. }

  47. void LCDInit(void) //LCM初始化
  48. {
  49. WriteCommandLCD(0x30,1); //顯示模式設置,開始要求每次檢測忙信號
  50. WriteCommandLCD(0x01,1); //顯示清屏
  51. WriteCommandLCD(0x06,1); // 顯示光標移動設置
  52. WriteCommandLCD(0x0C,1); // 顯示開及光標設置
  53. }
  54. void LCDClear(void) //清屏
  55. {
  56. WriteCommandLCD(0x01,1); //顯示清屏
  57. WriteCommandLCD(0x34,1); // 顯示光標移動設置
  58. WriteCommandLCD(0x30,1); // 顯示開及光標設置
  59. }
  60. void LCDFlash(void)        //閃爍效果
  61. {
  62. WriteCommandLCD(0x08,1); //顯示清屏
  63. Delay400Ms();
  64. WriteCommandLCD(0x0c,1); // 顯示開及光標設置
  65. Delay400Ms();
  66. WriteCommandLCD(0x08,1); //顯示清屏
  67. Delay400Ms();
  68. WriteCommandLCD(0x0c,1); // 顯示開及光標設置
  69. Delay400Ms();
  70. WriteCommandLCD(0x08,1); //顯示清屏
  71. Delay400Ms();
  72. }
  73. //按指定位置顯示一個字符
  74. void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
  75. {
  76. if(Y<1)
  77.          Y=1;
  78. if(Y>4)
  79.          Y=4;
  80. X &= 0x0F; //限制X不能大于16,Y不能大于1
  81. switch(Y){
  82.         case 1:X|=0X80;break;
  83.         case 2:X|=0X90;break;
  84.         case 3:X|=0X88;break;
  85.         case 4:X|=0X98;break;
  86.         }
  87. WriteCommandLCD(X, 0); //這里不檢測忙信號,發送地址碼
  88. WriteDataLCD(DData);
  89. }

  90. //按指定位置顯示一串字符
  91. void DisplayListChar(unsigned char X, unsigned char Y, unsigned char  *DData)
  92. {
  93. unsigned char ListLength,X2;
  94.   ListLength = 0;
  95.   X2=X;
  96. if(Y<1)
  97.          Y=1;
  98. if(Y>4)
  99.          Y=4;
  100. X &= 0x0F; //限制X不能大于16,Y在1-4之內
  101. switch(Y){
  102.         case 1:X2|=0X80;break;        //根據行數來選擇相應地址
  103.         case 2:X2|=0X90;break;
  104.         case 3:X2|=0X88;break;
  105.         case 4:X2|=0X98;break;
  106.         }
  107. WriteCommandLCD(X2, 1); //發送地址碼
  108.   while (DData[ListLength]>=0x20) //若到達字串尾則退出
  109.   {
  110.    if (X <= 0x0F) //X坐標應小于0xF
  111.     {
  112.      WriteDataLCD(DData[ListLength]); //
  113.      ListLength++;
  114.          X++;
  115.          Delay5Ms();
  116.     }
  117.   }
  118. }



  119. //5ms延時
  120. void Delay5Ms(void)
  121. {
  122. unsigned int TempCyc = 5552;
  123. while(TempCyc--);
  124. }

  125. //400ms延時
  126. void Delay400Ms(void)
  127. {
  128. unsigned char TempCycA = 5;
  129. unsigned int TempCycB;
  130. while(TempCycA--)
  131. {
  132.   TempCycB=7269;
  133.   while(TempCycB--);
  134. };
  135. }
復制代碼

所有資料51hei提供下載:
新建文件夾 (2).zip (1.96 KB, 下載次數: 35)


回復

使用道具 舉報

ID:110278 發表于 2020-3-6 16:12 | 顯示全部樓層
挺好用的。
回復

使用道具 舉報

ID:702057 發表于 2020-3-7 13:39 | 顯示全部樓層
看上去不錯,一樣能用吧!
回復

使用道具 舉報

ID:701661 發表于 2020-3-8 03:14 | 顯示全部樓層
寫的很詳細,目測應該能用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品亚洲国产精品久久不卡 | 人人cao | 国产亚洲精品久久yy50 | 国产日韩91 | 亚洲天堂av一区 | 精品久久久网站 | 成人夜晚看av | 四虎影院在线免费观看 | 日韩中文一区二区三区 | 亚洲国产精品成人无久久精品 | 亚洲毛片在线 | 色久五月| 国产三区在线观看视频 | 天天操操操操操 | 成人一级视频在线观看 | 91久久国产综合久久91精品网站 | 日本不卡免费新一二三区 | 看av网| 国产精品大全 | 色999视频 | 日本电影免费完整观看 | 日本在线你懂的 | 美女久久 | 91成人免费看| 久久国产欧美日韩精品 | 7777在线视频 | 成人在线观看网址 | 午夜视频免费在线 | 亚洲日韩欧美一区二区在线 | 久久国产综合 | 久久精品国产一区二区电影 | 成人伊人网 | 欧美成人激情视频 | 国产精品一区二区无线 | 爱爱小视频 | 国产精品久久久久久久久久免费看 | 色资源站 | 99精品视频在线观看 | 中文字幕二区 | 日韩欧美视频免费在线观看 | 成人在线精品视频 |