#include <reg51.h>
sbit key=P1^0
void main()
{
unsigned int n=1000
TMOD=0X01//定时器0工作方式1
TH0=(65536-N)/256//定时器初值,先是定时1000US
TL0=(65536-N)%256
ET0=1//开定时器0中断
EA=1//开总中断
TR0=1//启动定时器0
while(1)
{
if(key==0)//判断按键是否按下
{
delay_ms(20)//延时消抖动
if(key==0)n=500
}
}
}
中断程序如下:
void timer0() interrupt 1
{
TH0=(65536-N)/256
TL0=(65536-N)%256
P2^0=~P2^0//P2.0输出方波
}
延时子程序略
很简单啊,假定用P1驱动灯泡,按下列步骤:1、P1=0x81,表示1、8亮,延时一段时间;
2、P1=0x42,表示2、7亮,延时一段时间;
3、P1=0x24,表示3、6亮,延时一段时间;
4、P1=0x81,表示4、5亮,延时一段时间;
重复1-4步即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)