求51单片机当P1.0置零时每隔1秒钟向串口发送一个hello的程序
发布网友
发布时间:2022-07-29 14:25
我来回答
共3个回答
热心网友
时间:2023-11-24 09:39
51单片机当P1.0置零时每隔1秒钟向串口发送一个hello,这是典型的串口发送程序,在P1.0脚接一个按键。主程序先初始化串口,设置波特率,不要开中断,一定要有TI=1; 主程序用printf 函数发送字符串比较方便。当主程序检测到P1.0脚按键按下,用一个printf("hello");语句即可。
热心网友
时间:2023-11-24 09:39
波特率有要求没?下面是个参考程序!希望能帮到你!最好还是自己弄明白!如果帮到你了!请采纳点赞!
#include "reg52.h"
#include “stdio.h”
typedef unsigned int u8;
bit flag =0;
void UsartInit()
{
SCON=0X50;//设置为工作方式1
TMOD=0X21;//设置计数器工作方式2
PCON=0X80;//波特率加倍
TH1=0XF3;//计数器初始值设置,注意波特率是9600的
TL1=0XF3;
TH0 = 0X3C;
TL0 = 0XB0;
TR0 = 1;
ET0 = 1;
EA=1;//打开总中断
TR1=1;//打开计数器
}
/*****************************************/
void main()
{
UsartInit(); //串口初始化
while(1)
{
if(flag)
{
flag = 0;
printf(“hello”);
}
}
}
/***定时器0中断******/
void T0() interrupt 1
{
static ct = 0;
TH0 = 0X3C;
TL0 = 0XB0;
ct++;
if(ct > 19)
{
ct =0;
fg = 1;
}
}追答中断程序中的 fg要改成flag 疏忽了!手机写的!
程序要实现用P1。0控制,
则只需要在程序头文件下 加一句
sbit key = P1^0;
把主程序中的 if语句改为
if(flag&&(!key)) 即可
热心网友
时间:2023-11-24 09:40
有需求多少量?