发布网友 发布时间:2022-04-20 08:16
共5个回答
热心网友 时间:2023-07-28 18:11
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。
#include<reg51.h>
#include<intrins.h>
仿真图效果。
热心网友 时间:2023-07-28 18:12
简单说下程序要点。首先应该对P0和P1端口初始化,P0.0一P0.3初始化为1,LED灯全灭,P1.0一P1.3初始化为1,当外部引脚上对应的按钮按下时,在相应的I/O位会读到0。追答可定义一个无符号全局或静态变量 i, 如下所示:
unsigned char i
变量i用于点灯的计数变量。
用定时器做一个0.5秒定时程序(定时器中断例子网上可以搜索),在0.5秒定时程序中写入以下代码:
……
if (i>3) i=0 ;
switch ( i )
{
//---点亮D1,熄灭其它LED ---
case 0 :
P0=0xFE ;
break ;
//--- 点亮D2,熄灭其它LED ---
case 1 :
P0=0xFD ;
break ;
//--- 点亮D3,熄灭其它LED ---
case 2 :
P0=0xFB ;
break ;
//--- 点亮D4,熄灭其它LED ---
case 3 :
P0=0xF7 ;
break ;
}
i++ ;
……
这样采用定时中断方法,实现0.5秒循环点亮LED。利用中断的优点是代码运行效率高。如果要改变亮灯时间,修改定时时间即可。
热心网友 时间:2023-07-28 18:12
看到女朋友生病了好难受,真希望生病的是我热心网友 时间:2023-07-28 18:13
、你看看单片机数据手册你的单片机P0口内部上拉没,一般的单片机P0口都是没上拉的,使用P0口一般都需要外部上拉.要么不使用P0口.2、热心网友 时间:2023-07-28 18:14
手机丢了先别慌,想想丢在什么地方了,想起来了就去找找看。如果想不起来,那就赶紧去营业厅把你的手机卡挂失,防止别人捡到你的手机为所欲为,如果想起来是被人偷了,那就赶紧报警,尽管可能跟我的经历一样报警没什么鸟用,但不排除你会遇到一个好*。