单片机,通信串口

本文介绍了一个使用51单片机制作的脉冲发生器项目,通过按钮和串口通信设置脉冲宽度。作者遇到的问题是串口通信功能无法正常工作,尽管按钮控制脉宽已实现。代码中包含了定时器配置和中断处理,以实现脉冲信号的生成和频率调整。
摘要由CSDN通过智能技术生成

才开始自学单片机,遇到了问题求助!!!任务是用51单片机做一个脉冲发生器,可以通过按钮和串口通信设置脉冲信号的脉宽,下面是我在网上找的个程序然后自己修改了一部分,用T1作为脉冲信号发生器,T0用来做串口通信,T0和T1都工作在8位自动重载模式下
//晶振:12M T1-计时250微秒溢出中断一次;P1.0, P1.1 为增加、减少键 P2.7输出方波
/*变量的定义:
hz_shu: 设定的频率数
T0_over_num: 根据设定频率计算后的,定时器溢的出次数值
T0_cnt: 定时器计数溢出数
sec_over_num: 计算1s内的计数
*/
#include “reg51.h”
#include “math.h”
sbit pulse_out=P2^7;
//-------------------
unsigned char data hz_shu,second,key_val,key_val_old;
unsigned int data sec_over_num;
unsigned int data T0_cnt,T0_over_num;
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;

void UsartInit()
{
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值