本次实验的目的是通过单片机串口调试软件给单片机发送aa,ee,ff......类似的数据给P1口,控制发光二极管的亮灭。
在具体操作串口之前,我们需要对单片机的一些串口特殊寄存器进行配置,主要是设置产生波特率的定时器1,串行口控制和中断控制,具体步骤如下:
- 确定T1的工作方式(编程器TMOD的工作方式);
- 计算T1的初值,对TH1,TL1进行赋值;
- 启动T1;
- 确定串行口的工作方式(编程SCON寄存器);
- 串行口工作在中断方式,要进行中断处理
#include <reg52.h> #define uchar unsigned char uchar sig, flag; void init() { //PCON SMOD = 0; //SCON SM0 = 0; SM1 = 1; REN = 1;//允许串口接收数据 //定时器1 TMOD = 0x20;//定时器1的第二种方式 TH1 = 0XFD;//装入初值 TL1 = 0XFD;//装入初值 TR1 = 1;//开定时器1 //开中断 EA = 1;//总中断打开 ES = 1;//串口中断打开 } void main() { //初始化串口设置 init(); while (1) { if (flag == 1) { flag = 0; ES = 0; SBUF = sig; while (!TI); TI = 0; ES = 1; } } } //串口中断 void ser() interrupt 4 { RI = 0; P1 = SBUF; sig = SBUF; flag = 1; }
将上述程序烧写到TX-1C板子上,通过串口调试辅助工具,发送aa,然后可以看到发光二极管间隔点亮,而且串口调试工具会收到反馈的"AA".
文章的脚注信息由WordPress的wp-posturl插件自动生成