LED奇数号灯和偶数号灯的交替显示程序详解

算法&编程学院 发表于 2018-05-12 01:53:00 收藏 已收藏
赞(0) •  评论(0

LED奇数号灯和偶数号灯的交替显示程序详解

算法&编程学院 发表于 2018-05-12 01:53:00

  编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示。

  要求:

  一、P0口外接8个LED、P1.0~P1.2外接三个按键。

  二、T0做延时,溢出定为10ms。

  三、按键0~2分别控制闪烁间隔时间分别为,0.5s,1s,2s。

  四、开机后,LED全部点亮,3s后以0.5s交替。

  单片机高手帮下忙,最好用C写。

  =======================================================

  //以下程序通过了PROTEUS仿真试验,可以满足要求。

  #include

  #define uchar unsigned char

  #define uint unsigned int

  sbit K0 = P3^2;

  sbit K1 = P3^3;

  sbit K2 = P3^4;

  uchar t1 = 0, t2 = 0, t3 = 0, aaa = 0x55, delay_time = 0;

  //-------------------------------

  void TIME0()interrupt 1

  {

  TH0 = 0xD8; //初值

  TL0 = 0xF0; //10ms @ 12MHz

  t1++;

  if(t1 == 50) { //每到500ms

  t1 = 0;

  t2++;

  if(t2 == 6) { //到了3s

  t2 = 5;

  t3++;

  if (t3 》= delay_time) {

  t3 = 0;

  aaa = 255 - aaa;

  P0 = aaa;

  } } }

  }

  //-------------------------------

  void main() //主函数

  {

  TMOD = 0x01; //T0定时

  TH0 = 0xD8; //初值

  TL0 = 0xF0; //10ms @ 12MHz

  TR0 = 1;

  ET0 = 1;

  EA = 1;

  P0 = 0x00;

  delay_time = 1;

  while (1) {

  if (K0 == 0) delay_time = 1;

  if (K1 == 0) delay_time = 2;

  if (K2 == 0) delay_time = 4;

  }

  }

  用 PROTEUS 仿真截图如下:

LED奇数号灯和偶数号灯的交替显示程序详解

收藏

相关话题
文章来源专栏

评论(0)

加载更多评论

参与评论

相关文章

分享到

QQ空间 QQ好友 微博
取消