利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波

利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波,第1张

500HZ方波周期是2ms,只需定时器1ms,将管脚状态取反一次就其可,若按下按键,改为定时500us即可,程序如下:

#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步即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12173450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存