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

描述

  编写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灯

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分