找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4713|回复: 0
打印 上一主题 下一主题
收起左侧

单片机独立键盘的程序及仿真

[复制链接]
跳转到指定楼层
楼主
独立键盘仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <REG51.H>
  2. sbit key1 = P3^0;
  3. sbit key2 = P3^1;
  4. sbit key3 = P3^2;
  5. sbit key4 = P3^3;
  6. unsigned char code displaytab[33]=
  7. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,
  8. 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,
  9. 0xff,0x00,0x40,0x73,0x76,0x6e,0x38,
  10. };

  11. unsigned char led[8];
  12.   


  13. void delay_ms(unsigned int cnt)        //延时
  14. {
  15.         unsigned int t,i;
  16.         for(i=0;i<cnt;i++)
  17.         {
  18.                 t=115;
  19.                 while(--t);
  20.         }
  21. }




  22. void display()
  23. {         unsigned char nbit;
  24. for(nbit=0;nbit<8;nbit++)
  25.         {P2=(P2&0xe3)+nbit*4;
  26.      P0=displaytab[led[nbit]];
  27.          delay_ms(1);
  28.          P0=0;
  29.          }
  30.          }
  31. unsigned char keyscan()
  32. {
  33.         unsigned char key;
  34.        
  35.         if(key1==0)   key=1;
  36.         else if(key2==0)   key=2;
  37.         else if(key3==0)   key=3;
  38.                 else if(key4==0)   key=4;
  39.         else key=0;
  40.                  return key;
  41. }

  42.   void main()
  43. {unsigned char cnt=100;
  44.         led[7]=0x1b;
  45.         led[6]=0x1b;
  46.         led[5]=0x1b;
  47.         led[4]=0x1b;
  48.         led[3]=0x1b;

  49.         while(1)

  50.        
  51.         { led[2]=cnt/100;
  52.           led[1]=cnt%100/10;
  53.           led[0]=cnt%10;
  54.         display();
  55.                                                          
  56.          if(keyscan()==1)
  57.          {
  58.            cnt++;         
  59.            while(keyscan()==1)display();
  60.          }
  61.          else if(keyscan()==2)
  62.          {
  63.            cnt--;
  64.            while(keyscan()==2)display();
  65.          }
  66.          else if(keyscan()==3)
  67.          {
  68. ……………………

  69. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
独立键盘.rar (73.69 KB, 下载次数: 19)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表