单片机AT89S51,晶振为12MHz,1. 在内部程序存储器区建立一个字符串数组(包含10个元素),自行为数组赋值
时间: 2024-05-09 16:19:41 浏览: 110
。以下是示例代码:
```c
#include <REG89S51.H>
// 定义字符串数组
char str[10][20] = {
"Hello",
"World",
"Welcome",
"to",
"the",
"AT89S51",
"microcontroller",
"programming",
"world",
"!"
};
void main() {
int i;
// 设置晶振频率为12MHz
OSCXCN = 0x67;
// 初始化串口
PCON |= 0x80;
SCON = 0x50;
TMOD &= 0x0F;
TMOD |= 0x20;
TH1 = 0xFD;
TR1 = 1;
// 输出字符串数组
for (i = 0; i < 10; i++) {
printf("%s\r\n", str[i]);
}
while (1);
}
```
注意:在使用printf函数时,需要先初始化串口。在本例中,通过设置PCON寄存器的最高位为1,将串口波特率发生器的时钟源切换为系统时钟(12MHz)。然后设置串口模式为模式1(8位数据,可变波特率),定时器模式为模式2(8位自动重载),并设置波特率为9600bps(TH1 = 0xFD)。最后启动定时器1和串口。
阅读全文