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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機病房呼叫系統代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:992390 發表于 2021-12-14 20:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg52.h"        //頭文件
typedef unsigned char u8;
typedef unsigned int u16;

sbit beep=P3^7;     //蜂鳴器對應的IO口
sbit LSA=P2^2;     //138譯碼器A口輸入
sbit LSB=P2^3;     //138譯碼器B口輸入
sbit LSC=P2^4;     //138譯碼器C口輸入
sbit K1=P3^1;     //獨立按鍵K1,用于模擬護士的"響應"操作

#define GPIO_KEY P1     //定義P1口,用于矩陣按鍵掃描
#define GPIO_DIG P0     //定義P0口,用于數碼管顯示

u8 KeyValue;         //全局變量病房號

u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //數碼管0-9的數字顯示

void delay(u16 i)     //延時子程序
{
       while(i--);
}
void KeyDown()        //矩陣按鍵掃描子程序
{
    /* 由于開發板的矩陣按鍵是4*4,按鍵掃描先是列掃描,設置為每一列的第一行,然后再行掃描,如果是第一行就保持原值,若是第2行,與第1行相差4
    ,則在原值的基礎上再加4,得到最終結果,依次類推第3、4行    */
    u8 a=0;
       GPIO_KEY=0x0f;           //高4位置0,低4位置1,進行列掃描
    if(GPIO_KEY!=0x0f)      //有按鍵按下
    {
      delay(1000);          //消除按鍵抖動
      if(GPIO_KEY!=0x0f)   //再次檢測是否有按鍵按下
      {
        GPIO_KEY=0x0f;      //高4位置0,低4位置1,列掃描
        switch(GPIO_KEY)
        {
          case(0x07):KeyValue=1;break;    //檢測到第1列有按鍵按下,令KeyValue=1
          case(0x0b):KeyValue=2;break;    //檢測到第2列有按鍵按下,令KeyValue=2
          case(0x0d):KeyValue=3;break;    //檢測到第3列有按鍵按下,令KeyValue=3
          case(0x0e):KeyValue=4;break;    //檢測到第4列有按鍵按下,令KeyValue=4      
        }
       GPIO_KEY=0xf0;       //高4位置1,低4位置0,行掃描
       switch(GPIO_KEY)            
        {
        
          case(0x70):KeyValue=KeyValue;break;      //檢測到第1行有按鍵按下,則令KeyValue=KeyValue
          case(0xb0):KeyValue=KeyValue+4;break;      //檢測到第2行有按鍵按下,則令KeyValue=KeyValue+4
          case(0xd0):KeyValue=KeyValue+8;break;      //檢測到第3行有按鍵按下,則令KeyValue=KeyValue+8
          case(0xe0):KeyValue=KeyValue+12;break;  //檢測到第4行有按鍵按下,則令KeyValue=KeyValue+12         
        }
        while((a<50)&&(GPIO_KEY!=0xf0))     //按鍵消抖
        {
          delay(1000);
          a++;
        }
      }
    }
}

void main()
{
     
     while(1)      //死循環,令系統一直工作
       {        
         KeyDown();       //調用矩陣按鍵掃描子程序
        
         if((KeyValue>0)&&(KeyValue<10))    //掃描得到的結果小于10時
         {
           LSA=0;
           LSB=0;
           LSC=0;       //輸入138譯碼器,選中/Y0,第一個數碼管(個位)
           GPIO_DIG=smg[KeyValue];     //顯示數值,即病房號
           delay(1000);                 //延時
           beep=~beep;                 
           delay(100);                   //給蜂鳴器一個脈沖,使其工作,進行呼叫
         }
         
        if((KeyValue>=10))        //掃描得到的結果大于等于10時
        {
           LSA=0;        //數碼管動態顯示結果
           LSB=0;
           LSC=0;       //輸入138譯碼器,選中/Y0,第一個數碼管(個位)
           GPIO_DIG=smg[KeyValue%10];  //得到結果與10相除,取余數,即個位數
           delay(100);
           GPIO_DIG=0x00;     //消除殘影

           LSA=1;
           LSB=0;
           LSC=0;          //輸入138譯碼器,選中/Y1,第二個數碼管(十位)
           GPIO_DIG=smg[KeyValue/10];     //得到結果與10相除,取商,即十位數
           delay(100);
           GPIO_DIG=0x00;       //消除殘影

           delay(1000);
           beep=~beep;
           delay(100);           //給蜂鳴器一個脈沖,使其工作,進行呼叫
        }
         if(K1==0)               //獨立按鍵K1按下,即護士"響應"
        {
           delay(1000);           //消除按鍵抖動
           if(K1==0)
           {
             KeyValue=0;        //確定K1按下,護士"響應",使數碼管顯示數值置零,恢復初始狀態   
           }
           while(!K1);            //按鍵松開,進行系統重置操作
           LSA=1;                //恢復開始狀態
           LSB=1;
           LSC=1;
           GPIO_DIG=smg[KeyValue];     //選中最后一個數碼管置0,表示初始狀態
        }                  
       }
}


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线观看一区二区三区 | 色吊丝2288sds中文字幕 | 国产一区不卡 | 久久精品欧美一区二区三区不卡 | 久久婷婷色 | 免费午夜电影 | 精品中文字幕视频 | 亚洲日韩中文字幕一区 | 久久久久亚洲精品 | 亚洲精品成人 | 在线亚洲精品 | 久久久婷 | 免费a v网站| 色综合一区| 成人免费视频观看 | 日本精品在线播放 | 91在线资源 | 日韩精品一区二区三区视频播放 | 日韩欧美在线播放 | 91视频91 | 欧美激情国产日韩精品一区18 | 欧美色综合网 | 亚洲成人免费视频在线观看 | 精品国产乱码久久久久久蜜臀 | 夜夜草导航 | 中文字幕视频在线观看 | 狠狠操操| 久久性av | 国产精品永久免费 | 中文字幕在线一区二区三区 | 久久久国产精品视频 | 国产精品高潮呻吟久久av黑人 | 国产精品精品久久久久久 | 激情欧美一区二区三区中文字幕 | 97久久精品午夜一区二区 | 久色激情| 桃花av在线| 成人午夜免费视频 | 日本一区二区高清不卡 | www.xxxx欧美| 午夜精品久久久久久久久久久久久 |