找回密码
 立即注册

QQ登录

只需一步,快速开始

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

按键控制彩灯亮灯方式简易小程序+电路图

[复制链接]
跳转到指定楼层
楼主
按键控制彩灯的仿真电路图:




单片机源程序:
  1. /**********************刘金森 1440302103 电子信息工程*********************/
  2. #include<reg51.h>                      //51单片机头文件
  3. #include<intrins.h>                       //包含crol(循环左移)函数所在的头文件
  4. #define uint unsigned int      
  5. void delay(int z);                   //声明子函数
  6. unsigned char temp;                 //定义一个变量,用来给P1口赋值
  7. int i,j;
  8. sbit Key0=P0^0;
  9. sbit Key1=P0^1;
  10. sbit Key2=P0^2;                           //定义三个按键
  11. /**************按键控制函数************/
  12. uint key()
  13. {
  14.      uint temp;
  15.          Key0=0;
  16.          Key1=0;
  17.          Key2=0;                             
  18.      if(Key0==1)
  19.              {
  20.                 delay(500);                    //延时500毫秒,去按键时的抖动
  21.                          if(Key0==1)
  22.                         {
  23.             temp=0xfc;                    //1111 1100B 只有两盏灯亮
  24.                     P1=temp;
  25.                         while(Key0)
  26.                         {
  27.                     delay(500);
  28.                     temp=_crol_(temp,1);         //将temp循环左移一位后再赋给temp
  29.                 P1=temp;                                     //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
  30.                         }
  31.                         }
  32.                                         
  33.               }
  34.              else if(Key1==1)
  35.              {
  36.                 delay(500);                  //延时500毫秒,去按键时的抖动
  37.                          if(Key1==1)
  38.                         {
  39.             temp=0x10;                   //0001 0000B 只有一盏灯不亮
  40.                     P1=temp;
  41.                         while(Key1)
  42.                         {
  43.                     delay(500);
  44.                     temp=_cror_(temp,1);        //将temp循环左移一位后再赋给temp
  45.                 P1=temp;                                     //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
  46.                         }
  47.                         }
  48.                                         
  49.               }
  50.                    else if(Key2==1)
  51.              {
  52.                 delay(500);                  //延时500毫秒,去按键时的抖动
  53.                          if(Key2==1)
  54.                         {
  55.             temp=0xfd;                  //1111 1101B 只有一盏灯亮
  56.                     P1=temp;
  57.                         while(Key2)
  58.                         {
  59.                     delay(500);
  60.                     temp=_cror_(temp,1);         //将temp循环左移一位后再赋给temp
  61.                 P1=temp;                                     //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
  62.                         }
  63.                         }
  64.                                         
  65.               }
  66.                
  67.                
  68. return temp;
  69. }
  70. void delay(int z)           //延时z毫秒
  71. {
  72.       unsigned int x,y;
  73.           for(x=z;x>0;x--)
  74.                   for(y=110;y>0;y--);
  75. }
  76. /*****************主函数*************/
  77. void main()
  78. {


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

下载:
test1.zip (73.8 KB, 下载次数: 63)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:1 发表于 2017-4-2 01:28 | 只看该作者
好资料,初学者有用,51黑有你更精彩
回复

使用道具 举报

板凳
ID:185546 发表于 2017-4-2 12:10 | 只看该作者
非常好,给力!
回复

使用道具 举报

地板
ID:185546 发表于 2017-4-2 12:11 | 只看该作者
赞一个
回复

使用道具 举报

5#
ID:419580 发表于 2018-11-2 11:17 | 只看该作者
很好  很实用  好东西
回复

使用道具 举报

6#
ID:411024 发表于 2018-11-2 13:44 | 只看该作者
硬件仿真是个好方向!
回复

使用道具 举报

7#
ID:399179 发表于 2018-11-2 18:57 来自手机 | 只看该作者
我这菜鸟表示感谢!
回复

使用道具 举报

8#
ID:424426 发表于 2018-11-11 12:03 | 只看该作者
不错啊
回复

使用道具 举报

9#
ID:457034 发表于 2018-12-28 09:54 | 只看该作者
不错的文章
回复

使用道具 举报

10#
ID:507770 发表于 2019-4-9 12:42 | 只看该作者
不错不错不错
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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