生成c51语言代码1、用Proteus软件画出电路原理图,在单片机的 P1.0口线_上接按键K0,作为外部中断源0使用,用 于开启波形,在单片机的P1. 1口线.上接按键K1, 作为外部中断源1使用,用于关闭波形。 2、在单片机的P1.2口线上产生周期50mS的连续方 波,在P1.2口线上接示波器观察波形。
时间: 2024-03-07 18:49:50 浏览: 100
基于C51单片机的方波产生电路
5星 · 资源好评率100%
下面是基于 C51 语言的实现代码:
```c
#include <reg52.h> // 引入 8051 单片机头文件
void main() {
TMOD = 0x01; // 设置定时器 0 为工作模式 1
TH0 = 0x3C; // 定时器初值,50ms
TL0 = 0xB0;
TR0 = 1; // 启动定时器 0
ET0 = 1; // 允许定时器 0 中断
EX0 = 1; // 允许外部中断 0
IT0 = 1; // 设置外部中断 0 为下降沿触发
EX1 = 1; // 允许外部中断 1
IT1 = 1; // 设置外部中断 1 为下降沿触发
P1 = 0x00; // 初始化 P1 端口输出为 0
EA = 1; // 开启总中断
while(1); // 程序主循环
}
void Timer0_ISR() interrupt 1 { // 定时器 0 中断服务函数
P1 ^= 0x04; // P1.2 异或操作
TH0 = 0x3C; // 重新设置定时器初值,50ms
TL0 = 0xB0;
}
void External0_ISR() interrupt 0 { // 外部中断 0 中断服务函数
P1 |= 0x01; // P1.0 置 1
}
void External1_ISR() interrupt 2 { // 外部中断 1 中断服务函数
P1 &= ~0x01; // P1.0 置 0
}
```
执行该程序后,按下 K0 按钮将产生外部中断 0,使 P1.0 置 1,打开波形;按下 K1 按钮将产生外部中断 1,使 P1.0 置 0,关闭波形。同时,程序会在 P1.2 引脚上产生一个周期为 50ms 的连续方波,可以通过示波器观察波形。
阅读全文