51单片机IO口模拟串口通讯5

发布者:SereneSunset最新更新时间:2020-07-06 来源: eefocus关键字:51单片机  IO口  模拟串口通讯 手机看文章 扫描二维码
随时随地手机看文章

/***************************************************************

*在单片机上模拟了一个串口,使用P2.1作为发送端

*把单片机中存放的数据通过P2.1作为串口TXD发送出去

*本程序来源于《单片机IO口模拟串口程序(发送+接收)》

*硬件环境:11.0592MHz, TXD P2.1

***************************************************************/

#include

#include

#include

 

typedef unsigned char uchar;

 

int i;

 

uchar code info[] = 

{

0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15

};

 

sbit newTXD = P2^1; //模拟串口的发送端设为P2.1

 

void UartInit()

{

    SCON  = 0x50;    // SCON: serail mode 1, 8-bit UART

    TMOD |= 0x21;    // T0工作在方式1,十六位定时

    PCON |= 0x80;    // SMOD=1;

    TH0      = 0xFE;    // 定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bps fosc=11.0592MHz

    TL0   = 0x7F;    // 定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bps fosc=11.0592MHz

 

//    TH0      = 0xFD; // 定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bps fosc=18.432MHz

//    TL0   = 0x7F; // 定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bps fosc=18.432MHz

}

 

void WaitTF0(void)

{

    while(!TF0);

    TF0=0;

    TH0=0xFE;    // 定时器重装初值 fosc=11.0592MHz

    TL0=0x7F;    // 定时器重装初值 fosc=11.0592MHz

 

//    TH0      = 0xFD; // 定时器重装初值 fosc=18.432MHz

//    TL0   = 0x7F; // 定时器重装初值 fosc=18.432MHz

}

 

void WByte(uchar input)

{

//发送启始位

uchar j=8;

TR0=1;

newTXD=(bit)0;

WaitTF0();

 

//发送8位数据位

while(j--)

{

newTXD=(bit)(input&0x01);      //先传低位

WaitTF0();

input=input>>1;

}

//发送校验位(无)

//发送结束位

newTXD=(bit)1;

WaitTF0();

TR0=0;

}    

 

void Sendata()

{

for(i=0;i {

WByte(info[i]);

}

}

 

void main()

{

UartInit();

Sendata();

while(1)

{;}

}


附抓取到的波形:


PC端接收到单片机发来的字符

看看波形,仔细数数1、2、3

放大看一看,哪个是起始位,哪个是8位数据位,哪个是停止位

关键字:51单片机  IO口  模拟串口通讯 引用地址:51单片机IO口模拟串口通讯5

上一篇:51单片机IO口模拟串口通讯6
下一篇:51单片机IO口模拟串口通讯4

推荐阅读最新更新时间:2024-11-06 15:29

51单片机小白零基础教程——点亮第一个小灯以及流水灯
一、LED灯电路图分析 (1)LED灯的描述 LED灯:LED全称为发光二级管,可以将电能转换为光能,可以将电信号转为光信号的发光器件。 此图片中LED1-LED8为单片机开发板上的0603型号的贴片LED灯。 此图片为LED灯在电路图中的符号,要想导通LED就必须给二极管正向流过工作电流,LED的基本工作特性为正向导通,反向截止。 (2)LED灯在电路图中的分析 J9:跳线帽,只有合上跳线帽,2引脚和1引脚才相通,拔掉J9,5V的电压只能在2引脚,到不了1引脚。 RL6、RL7:限流电阻,防止流过LED灯的电流太大,而导致LED灯的烧毁。 我们从图中可以发现LED灯的阳极连接在一起,这种接法被称为共阳极接
[单片机]
<font color='red'>51单片机</font>小白零基础教程——点亮第一个小灯以及流水灯
数字式温湿度传感器SHT11在51单片机系统的应用
1 概述 温湿度的测量在仓储管理、生产制造、气象观测、科学研究以及日常生活中被广泛应用,传统的模拟式湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。SHT11是瑞士Sensirion公司推出的基于CMOSensTM技术的新型温湿度传感器。该传感器将CMOS芯片技术与传感器技术结合起来,从而发挥出它们强大的优势互补作用。 2 性能特点 SHT11温湿度传感器的主要特性如下: ●将温湿度传感器、信号放大调理、A/D转换、I2C总线接口全部集成于一芯片(CMOSensTM技术); ●可给出全校准相对湿度及温度值输出; ●带
[单片机]
数字式温湿度传感器SHT11在<font color='red'>51单片机</font>系统的应用
C51单片机P4口使用
C51单片机(STC11L32/48XE)的P4可以像其他IO可以作为正常的IO来使用。 如图:
[单片机]
C<font color='red'>51单片机</font>P4口使用
一文看懂STM32单片机和51单片机区别
 单片机简介      51单片机简介   应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。   51单片机之所以成为经典,成为易上手的单片机主要有以下特点:   51单片机特性   1、从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。   2、同时在片内RAM区间还
[单片机]
一文看懂STM32单片机和<font color='red'>51单片机</font>区别
从零开始51单片机教程 —— 25 动态扫描显示接口电路及程序
动态扫描显示接口电路及程序 在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,
[单片机]
从零开始<font color='red'>51单片机</font>教程 —— 25 动态扫描显示接口电路及程序
51单片机六个常见问题解析
一,为何51单片机爱用11.0592MHZ晶振? 其一:由于它能够精确地划分红时钟频率,与UART(通用异步接纳器/发送器)量常见的波特率有关。特别是较高的波特率(19600,19200),不论多么古怪的值,这些晶振都是精确,常被运用的。 其二:用11.0592晶振的缘由是51单片机的定时器致使的。用51单片机的定时器做波特率发生器时,假如用11.0592Mhz的晶振,根据公式算下来需求定时器设置的值都是整数;假如用12Mhz晶振,则波特率都是有误差的,比如9600,用定时器取0XFD,实践波特率10000,通常波特率误差在4%摆布都是能够的,所以也还能用STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%
[单片机]
51单片机项目设计:定时宠物喂食系统
链接:https://pan.baidu.com/s/1CKrXkIHite1LWaWM26gjeQ 提取码:abcd 取走点赞哦~ 题目要求: 一、拟解决的主要问题 1、仔细分析题目要求,理解投食器工作原理,明确工作任务和设计要求,确定整体设计方案,选定单片机以及相关传感器等元器件,实现投食器设定时间,按设定时间发出响声,吸引宠物过来并自动投放食物等功能; 2、通过Proteus软件进行设计与仿真,给出系统硬件设计框图、元件选择及各部分电路原理图; 3、软件程序流程并编写程序; 4、软硬件联合调试; 5、完成实物焊接,调试实物, 二、设计方案 基于单片机的自动投食器设计,通过模块化的设计,利用ST
[单片机]
<font color='red'>51单片机</font>项目设计:定时宠物喂食系统
交换指令(5条)举例——mcs51单片机汇编语言
交换 指令 (5条) 这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。 XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换 XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换 XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换 XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换 SWAP A ;(A3-0)←→(A7-4)累加器中的内容高低半字节互换
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved