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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我的單片機電子密碼鎖程序

[復制鏈接]
跳轉到指定樓層
樓主


單片機源程序如下:
  1. #include "Absacc.h"
  2. #define C8255_A XBYTE[0x7F00]  //8255 端口地址定義
  3. #define C8255_B XBYTE[0x7F01]
  4. #define C8255_C XBYTE[0x7F02]
  5. #define C8255_CON  XBYTE[0x7F03]

  6. unsigned char a[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
  7.                                         0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
  8. unsigned char b[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // 顯示緩沖

  9. unsigned char key_down;
  10. unsigned char key_value;
  11. unsigned char key_count;
  12. void delay(unsigned int time)
  13. {
  14.         unsigned int i;
  15.         for(i=0; i<time; i++);
  16. }
  17. void keyscan() // 按鍵掃描函數
  18. {
  19.         unsigned char cc;
  20.         C8255_A = 0x00; //X1 ~ X4 置 0
  21.         cc = C8255_C;  // 得到 Y1 ~ Y4 的值
  22.         key_down = (~cc) & 0x0f;
  23. }
  24. void display() // 顯示函數
  25. {
  26.         unsigned char i, j = 0xDF;
  27.         for(i=0; i<6; i++)
  28.         {
  29.                 C8255_A = 0xFF;
  30.                 C8255_B = a[b[i]]; // 查表輸出顯示
  31.                 C8255_A = j;
  32.                 delay(0x100);
  33.                 j = (j>>1)|(j<<7);
  34.         }
  35. }
  36. void clear()  // 清屏
  37. {
  38.         C8255_B = 0x00;
  39. }
  40. void writebuffer()
  41. {
  42.         b[key_count] = key_value;
  43.         key_count--;
  44.         if(key_count == -1)
  45.         key_count = 5;
  46.         display();
  47.         clear();
  48.         keyscan();
  49.         while(key_down) // 鍵盤消抖
  50.         {
  51.                 display();
  52.                 clear();
  53.                 keyscan();
  54.         }
  55. }
  56. void getkey()  // 得到按鍵值
  57. {
  58.         unsigned char value;
  59.         unsigned char i, j = 0xFE;
  60.         for(i=0; i<4; i++)
  61.         {
  62.                 C8255_A = j;
  63.                 value = C8255_C;
  64.                 if(!(value & 0x01)) // 行 1
  65.                 {
  66.                         key_value = i + 0;
  67.                         writebuffer();
  68.                         return;
  69.                 }
  70.                 if(!(value & 0x02)) // 行 2
  71.                 {
  72.                         key_value = i + 4;
  73.                         writebuffer();
  74.                         return;
  75.                 }
  76.                 if(!(value & 0x04)) // 行 3
  77.                 {
  78.                         key_value = i + 8;
  79.                         writebuffer();
  80.                         return;
  81.                 }
  82.                 if(!(value & 0x08)) // 行 4
  83.                 {
  84.                         key_value = i + 12;
  85.                         writebuffer();
  86.                         return;
  87.                 }
  88.                 j <<= 1;
  89.         }
  90. }
  91. void main()
  92. {
  93.         C8255_CON = 0x81;  //8255 初始化
  94.         key_count = 5;
  95.         while(1)
  96.         {
  97.                 display(); // 顯示
  98.                 clear();  // 清屏
  99.                 keyscan(); // 按鍵掃描
  100.                 if(key_down)  // 判是否有鍵按下
  101.                 {
  102.                         display();
  103.                         delay(0x80);
  104.                         clear();
  105.                         keyscan();
  106.                         if(key_down)
  107.                         {
  108.                                 getkey();  // 得到按鍵值
  109.                         }
  110.                 }
  111.         }
  112. }
復制代碼

所有資料51hei提供下載:
課程設計.zip (293.17 KB, 下載次數: 4)
keshetu.doc (256.5 KB, 下載次數: 3)


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

使用道具 舉報

沙發
ID:122829 發表于 2019-6-8 13:54 | 只看該作者
這里面哪來的8255~~
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产婷婷色综合av蜜臀av | 中文字幕 国产精品 | 日本高清aⅴ毛片免费 | 日韩精品一区二区三区中文字幕 | 亚洲国产成人精品女人久久久野战 | 中文字幕加勒比 | 不卡一区二区在线观看 | 在线观看成人小视频 | 手机av在线 | 国产成人高清 | 国产在线第一页 | 涩涩视频网站在线观看 | 免费在线观看一区二区三区 | 日韩欧美在线视频 | 成人深夜福利网站 | 日韩一区二区三区在线看 | 日本二区 | 在线看91| 日韩精品免费视频 | 精品久久国产 | 久久久久国产精品 | 日本色婷婷 | 综合久 | 亚洲欧美日韩在线 | 欧洲色综合 | 久久亚洲国产精品 | 男女一区二区三区 | www312aⅴ欧美在线看 | 午夜av成人 | 激情一区二区三区 | 欧美久久久久久久 | 一区二区av | 午夜欧美一区二区三区在线播放 | 精品国产免费人成在线观看 | 久久久久成人精品免费播放动漫 | 爱爱视频在线观看 | 久久国产视频播放 | 日韩一区二区三区在线视频 | 久草热播 | 国产高清美女一级a毛片久久w | 免费黄色av网站 |