若晶振为12MHz,采用定时器T1方式1定时,在P1.0输出周期为10ms的方波,同时在P1.1口输出周期wei1s的方波。用c语言编写程序。
时间: 2024-02-18 07:06:16 浏览: 244
以下是使用C语言编写的程序:
```c
#include <reg52.h>
void main()
{
TMOD = 0x10; // 设置定时器T1为方式1
TH1 = 0xDC; // 定时器初值为0xFFFF-0xDCF=10ms
TL1 = 0xCF;
TR1 = 1; // 启动定时器T1
while (1) // 循环输出方波
{
P1 = 0x01; // P1.0输出高电平,产生10ms方波
delay(1); // 延时1ms
P1 = 0x00; // P1.0输出低电平,产生10ms方波
delay(1); // 延时1ms
P1 |= 0x02; // P1.1输出高电平,产生1s方波
delay(500); // 延时500ms
P1 &= 0xFD; // P1.1输出低电平,产生1s方波
delay(500); // 延时500ms
}
}
void delay(unsigned int ms) // 延时函数,ms为要延时的毫秒数
{
unsigned int i, j;
for (i = 0; i < ms; i++)
{
for (j = 0; j < 114; j++); // 空操作,大约延时1ms
}
}
```
注:本程序是基于STC89C52单片机的,若使用其他型号的单片机需要对程序进行相应的修改。
阅读全文