找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12130|回复: 1
收起左侧

51单片机通过按键控制流水灯方向源程序

[复制链接]
ID:256407 发表于 2017-12-2 17:30 | 显示全部楼层 |阅读模式
通过按键控制流水方向
单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. unsigned char i = 0, temp;
  4. unsigned char bdata j; //在位寻址区定义字节变量
  5. sbit j0 = j ^ 0; //定义位变量
  6. void main(void)
  7. {
  8.   TMOD = 0x01; //设定T0定时方式1
  9.   TH0 = (65536 - 10000) / 256; //定时
  10.   TL0 = (65536 - 10000) % 256;
  11.   TR0 = 1;
  12.   ET0 = 1; //允许T0中断
  13.   PT0 = 1; //设定T0为高优先级

  14.   IT0 = 1; //外部中断输入下降沿有效
  15.   EX0 = 1; //允许X0中断
  16.   EA = 1; //开放总中断

  17.   temp = 0xfe;
  18.   P1 = temp;
  19.   while(1);
  20. }
  21. void T0_int(void) interrupt 1 //每隔10ms执行一次
  22. {
  23. TH0 = (65536 - 10000) / 256; //定时
  24. TL0 = (65536 - 10000) % 256;
  25. i++;
  26. if(i >= 100) {
  27.   i = 0;
  28. if(j0 == 0) temp = _crol_(temp, 1);
  29. if(j0 == 1) temp = _cror_(temp, 1);
  30. P1 = temp;
  31. }
  32. }
  33. void X0_int(void) interrupt 0 using 1
  34. {
  35.   unsigned char k;
  36.   j0 = ~j0; //改变运动方向
  37.   for(k = 200; k > 0; k--); //延时一会再退出,以避免抖动
  38. }

复制代码

所有资料51hei提供下载:
通过按键控制流水方向.rar (21.51 KB, 下载次数: 36)

评分

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

查看全部评分

回复

使用道具 举报

ID:437990 发表于 2018-12-6 21:03 | 显示全部楼层
请问为什么按下按键j0 取反要重新在外部中断里面取反 谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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