本次实验的目的是通过单片机串口调试软件给单片机发送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插件自动生成
微信扫一扫,打赏作者吧~![[整理]三极管驱动继电器](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2014/02/11.jpg&w=280&h=210&zc=1)


