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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機密碼鎖LCD12864顯示及proteus仿真

  [復制鏈接]
跳轉到指定樓層
樓主
ID:505433 發(fā)表于 2020-6-1 21:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是通過51單片機做的一個電子鎖設計分享給大家
里面用了矩陣按鍵和LCD12864顯示屏,顯示屏函數(shù)和矩陣按鍵函數(shù)我單獨做庫,可以直接調用,但是顯示其他字需要自己取模,取模軟件我也放在文件夾里面。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

下面是設計的主函數(shù):
  1. #include "reg52.h"
  2. #include "LCD12864.h"
  3. #include "key.h"
  4. #include "chinese.h"



  5. void main(void)
  6. {
  7.         init_lcd();
  8.         screen_protect();
  9.         while(1)
  10.         {        
  11.                 KeyDown();
  12.                 key_data_manage(KeyValue);
  13.         }        
  14. }
復制代碼

  1. #include "key.h"
  2. uchar KeyValue;        //用來存放讀取到的鍵值
  3. uint u1,u2;//蜂鳴器循環(huán)延時變量
  4. unsigned long myl=202020;
  5. void delay(uint i)
  6. {
  7.         while(i--);        
  8. }
  9. void delay500ms(void)   //誤差 0us
  10. {
  11.     unsigned char a,b,c;
  12.     for(c=23;c>0;c--)
  13.         for(b=152;b>0;b--)
  14.             for(a=70;a>0;a--);
  15. }

  16. void KeyDown(void)
  17. {
  18.         char a=0;
  19.         GPIO_KEY=0x0f;
  20.         if(GPIO_KEY!=0x0f)//讀取按鍵是否按下
  21.         {
  22.                 delay(1000);//延時10ms進行消抖
  23.                 if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下
  24.                 {        
  25.                         //測試列
  26.                         GPIO_KEY=0X0F;
  27.                         switch(GPIO_KEY)
  28.                         {
  29.                                 case(0X07):        KeyValue=0;break;
  30.                                 case(0X0b):        KeyValue=1;break;
  31.                                 case(0X0d): KeyValue=2;break;
  32.                                 case(0X0e):        KeyValue=3;break;
  33.                         }
  34.                         //測試行
  35.                         GPIO_KEY=0XF0;
  36.                         switch(GPIO_KEY)
  37.                         {
  38.                                 case(0X70):        KeyValue=KeyValue;break;
  39.                                 case(0Xb0):        KeyValue=KeyValue+4;break;
  40.                                 case(0Xd0): KeyValue=KeyValue+8;break;
  41.                                 case(0Xe0):        KeyValue=KeyValue+12;break;
  42.                         }
  43.                         while((a<5)&&(GPIO_KEY!=0xf0))         //檢測按鍵松手檢測
  44.                         {
  45.                                 for(u1=0;u1<500;u1++)
  46.                                 {
  47.                                 for(u2=0;u2<80;u2++); //延時
  48.                                 BEEP=~BEEP; //取反輸出到喇叭的信號
  49.                                 }
  50.                                 a++;
  51.                         }
  52.                 }
  53.         }
  54. }


  55. /************************************/
  56. //函數(shù)名稱:void touch_data_manage(u8 k_value)
  57. //函數(shù)功能:對觸屏操作返回的值進行處理
  58. //注:case后面的數(shù)字是宮格鍵盤的位數(shù)
  59. //從左到右,從上到下,依次是:0,1,...,15
  60. /************************************/
  61. void key_data_manage(uchar k_value)                        //觸屏數(shù)據(jù)處理
  62. {        
  63.         uchar j;
  64.         static uchar number,i;
  65.         static uchar mode=20;
  66.         static unsigned long num = 0;                                                //預輸入值
  67.         switch(k_value)
  68.         {
  69.                 case 8:number = 0;i++;num=num*10+0;break;
  70.                 case 15:number = 1;i++;num=num*10+1;break;
  71.                 case 11:number = 2;i++;num=num*10+2;break;
  72.                 case 7:number = 3;i++;num=num*10+3;break;
  73.                 case 14:number = 4;i++;num=num*10+4;break;
  74.                 case 10:number = 5;i++;num=num*10+5;break;
  75.                 case 6:number = 6;i++;num=num*10+6;break;
  76.                 case 13:number = 7;i++;num=num*10+7;break;
  77.                 case 9:number = 8;i++;num=num*10+8;break;
  78.                 case 5:number = 9;i++;num=num*10+9;break;
  79.                 case 2:mode=2;break;
  80.                 case 1:Clr_hang(3,5);i=0;num=0;break;
  81.                 case 0:mode=4;break;
  82.                 case 4:;break;
  83.                 case 12:;break;
  84.                 case 3:mode=0;break;
  85.         }
  86.         KeyValue=20;
  87.         if(mode == 0)
  88.         {
  89.                 Clr_Scr();
  90.                 screen_outkey();
  91.                 num=0;
  92.                 mode=1;
  93.                 i=0;
  94.         }
  95.         if((mode==1)&&(i>=1))
  96.         {
  97.                 ShowOneChar(3,8+8*i,Hz_num[10]);
  98.         }
  99.         if((mode==2)&&(i>=1))
  100.         {
  101.                 ShowOneChar(3,8+8*i,Hz_num[number]);
  102.         }
  103.         if((mode==4)&&(num>99999))
  104.         {
  105.                 if(num == myl)
  106.                 {
  107.                         Clr_Scr();
  108.                         for(j=0;j<7;j++)
  109.                         ShowOneChin(3,16*j,Hz_right[j]);
  110.                         P36=0;
  111.                         delay500ms();
  112.                         P36=1;
  113.                 }
  114.                 if((mode==4)&&(myl!=num)&&(num>99999))
  115.                 {
  116. ……………………

  117. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

全部資料51hei下載地址:
電子鎖proteus.zip (240.43 KB, 下載次數(shù): 240)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:756672 發(fā)表于 2020-6-2 09:50 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:1118750 發(fā)表于 2024-4-29 09:26 | 只看該作者
您好,請問有LCD12864有帶字庫嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产电影一区二区在线观看 | 欧美a在线看 | 久久成人人人人精品欧 | 波多野结衣一区二区三区在线观看 | 久久久久久久国产 | 色视频在线免费观看 | 蜜桃视频在线观看www社区 | 亚洲成人日韩 | 亚洲精品国产电影 | 一级毛片视频 | 久久蜜桃资源一区二区老牛 | 精品在线播放 | 国产亚洲人成a在线v网站 | 国产精品黄色 | 欧美一级片中文字幕 | 亚洲欧美日韩电影 | 国产一区二区精品在线 | 国产在线观看免费 | 国产乱码一区 | 欧美精品在线一区二区三区 | 精品视频一区二区三区在线观看 | 日韩中文一区二区三区 | 精品视频国产 | 久久婷婷麻豆国产91天堂 | 久久国产精品久久国产精品 | 国家一级黄色片 | 337p日韩| 亚洲成人一区二区 | 日韩欧美国产成人一区二区 | 日本成人片在线观看 | 亚洲精品在线播放 | 一区二区三区在线免费观看视频 | 久久丝袜视频 | 色999视频| 欧美成人精品一区 | 亚洲一区二区三区观看 | 亚洲精品二三区 | 中文字幕国产一区 | 91超碰在线| 天天射影院 | 久久精彩 |