使用AT89C51单片机内部定时器中断方式实现P1.0输出10Hz、P1.1输出1kHz方波信号,并驱动连接在P1.0和P1.1引脚上的LED实现闪烁的代码:
时间: 2023-06-10 18:07:59 浏览: 860
89C51中断程序 汇编 单片机
4星 · 用户满意度95%
以下是实现该功能的AT89C51单片机代码:
```c
#include <reg51.h>
sbit LED1=P1^0;
sbit LED2=P1^1;
void timer1() interrupt 3
{
LED1=!LED1;
}
void main()
{
TMOD=0x10; //定时器1工作在模式1
TH1=0xA4; //设定计数初值,定时1ms
TL1=0xA4;
TR1=1; //启动定时器1
ET1=1; //开启定时器1中断
while(1)
{
LED2=!LED2;
DelayMs(500); //延时500ms
}
}
void DelayMs(unsigned int ms) //延时函数
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<110;j++);
}
```
其中,使用定时器1的中断方式实现P1.0输出10Hz的方波信号,P1.1输出1kHz的方波信号,并通过LED1和LED2驱动闪烁。具体实现是在定时器1中断函数中,将LED1的电平翻转,从而实现10Hz的方波信号输出;在主函数中,通过LED2和延时函数实现500ms的闪烁效果。
阅读全文