標(biāo)題: 單片機(jī)病床呼叫系統(tǒng)仿真原理圖+程序 [打印本頁]

作者: 13986626120    時間: 2018-6-5 22:31
標(biāo)題: 單片機(jī)病床呼叫系統(tǒng)仿真原理圖+程序
病床呼叫系統(tǒng)設(shè)計(jì)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint insigned int
  4. uchar code LED[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  5. uchar Buffer[]={0x3F,0x3F};
  6. sbit CLAER=P3^1;
  7. sbit BUZZ=P3^0;
  8. uchar key_scan();
  9. void key_count(uchar num);
  10. void disp();
  11. void delay(uchar s);
  12. void buzz_on();
  13. void main()
  14. {
  15. uchar temp;
  16. while(1)
  17.         {
  18. disp();
  19. temp=key_scan();
  20.         if(temp!=0xFF)
  21.           {
  22.                   key_count(temp+1);
  23.                         while(CLAER==1)
  24.                         {
  25.                         buzz_on();
  26.                         disp( );
  27.                         }
  28.                 Buffer[0]=0x3F;
  29.                 Buffer[1]=0x3F;
  30.                 BUZZ=1;
  31.                 }
  32.         }
  33. }
  34. void disp()
  35. {
  36.         uchar i,w;
  37.         w=0x01;
  38.   for(i=0;i<2;i++)
  39.     {
  40.     P2=~w;
  41.     w<<=1;
  42.     P0=Buffer[i];
  43.     delay(10);
  44.     P2=0xFF;
  45.     }
  46. }               
  47. uchar key_scan(void)
  48. {
  49.         uchar key=0xFF,cord_h,cord_1;
  50.         P1=0x0F;
  51.         cord_h=P1&0x0F;
  52.         if(cord_h!=0x0F)
  53.         {
  54.         delay(10);
  55.         if(cord_h!=0x0F)
  56.           {
  57.                 cord_h=P1&0x0F;
  58.                 P1=0xF0;
  59.                 cord_1=P1&0xF0;
  60.                 while((P1&0xF0)!=0xF0);
  61.                 switch(cord_h+cord_1)
  62.                         {
  63.                         case 0xEE:key=0;break;//S1
  64.                         case 0xED:key=1;break;//S2
  65.                         case 0xEB:key=2;break;//S3
  66.                         case 0xE7:key=3;break;//S4
  67.                         case 0xDE:key=4;break;//S5
  68.                         case 0xDD:key=5;break;//S6
  69.                         case 0xDB:key=6;break;//S7
  70.                         case 0xD7:key=7;break;//S8
  71.                         case 0xBE:key=8;break;//S9
  72.                         case 0xBD:key=9;break;//S10
  73.                         case 0xBB:key=10;break;//S11
  74.                         case 0xB7:key=11;break;//S12
  75.                         case 0x7E:key=12;break;//S13
  76.                         case 0x7D:key=13;break;//S14
  77.                         case 0x7B:key=14;break;//S15
  78.                         case 0x77:key=15;break;//S16
  79.                         default: key=0xFF;break;
  80.                         }
  81.                 }
  82.         }
  83.           return(key);
  84.   }
  85. void key_count(uchar num)
  86. {
  87.         Buffer[0]=LED[num/10];
  88.         Buffer[1]=LED[num%10];
  89.   }
  90. void buzz_on()
  91. {
  92. BUZZ=0;
  93. delay(1);
  94. BUZZ=1;
  95. delay(1);
  96. }
  97. void delay(uchar s)
  98. {
  99.         int j;
  100. while(s--)
  101.         for(j=0;j<20;j++);
  102.   }
復(fù)制代碼

所有資料51hei提供下載:
病床呼叫系統(tǒng).zip (18.59 KB, 下載次數(shù): 123)



作者: 白衣    時間: 2018-11-25 23:11
請問您這個源代碼是完整的嗎,我用Isis仿真之后,數(shù)碼管沒有顯示
作者: swustlx86    時間: 2018-11-26 08:38
感謝分享   賺錢下載              
作者: Waiting12138    時間: 2019-6-8 13:56
很不錯
作者: 求知識    時間: 2023-2-27 08:45
白衣 發(fā)表于 2018-11-25 23:11
請問您這個源代碼是完整的嗎,我用Isis仿真之后,數(shù)碼管沒有顯示

我用proteus仿真數(shù)碼管只亮,按鍵也沒有顯示




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1