51单片机之T2定时器串口通信

发布者:快乐旅人最新更新时间:2022-07-06 来源: csdn关键字:51单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

52芯片,比51要多一个定时器。所以我在网上也是看了很多资料,许多都不能运行,我在进行部分修改后,终于在keli和proteus上实现了仿真测试。以下是我的代码和设计的电路。

           

/*-----------------------------------------------------------------------------

* 实 验 名         : RS232串口试验

* 实验说明     : 单片机串口接收数据控制灯亮灭

* 连接方式     : 

* 注    意         : 该试验使用的晶振是11.0592

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

 

#include

#include

 

#define uchar unsigned char

#define uint  unsigned int

 

uchar PuZh[36] = "hello world";

 

//--定义使用的IO--//

 

sbit LED=P2^0;

 

 

//--声明全局函数--//   

void UsartConfiguration();

void Delay_1ms(uint i);

 

 

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

* 名称 : Com_Int()

* 功能 : 串口中断子函数

* 输入 : 无 * 输出 : 无

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

void Com_IntIsr(void) interrupt 4

{

    uchar i;

  uchar receive_data;

    

  EA = 0;

    

  if(RI == 1) //当硬件接收到一个数据时,RI会置位

    {         

        RI = 0;

        receive_data = SBUF;//接收到的数据

            

        if(receive_data == '1')     

        {

                LED =0;//接收到1亮灯

        }

        else

        {

                LED =1; //其他情况灯灭

        }

        

    }

        

        for(i=0; i<36; i++)

        {

            SBUF = PuZh[i];   //将要发送的数据放入到发送寄存器

            while(!TI);            //等待发送数据完成

            TI=0;                    //清除发送完成标志位

            Delay_1ms(1);

        }

        EA = 1;

}

 

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

* 函 数 名       : main

* 函数功能           : 主函数

* 输    入       : 无

* 输    出       : 无

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

 

void main()

{

 

    UsartConfiguration();//初始化串口

    

    while(1);    

}

    

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

* 函 数 名       : UsartConfiguration()

* 函数功能           : 设置串口

* 输    入       : 无

* 输    出       : 无

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

 

void UsartConfiguration()

{    

 

    T2MOD = 0x01;     //自动重载

    T2CON = 0x30;     //T2用做发送接收时钟

    TH2 = 0xFF;      //9600波特率,11.0592Mhz晶振

    TL2 = 0xDC; 

    RCAP2H = 0xFF; 

    RCAP2L = 0xDC; 

    SCON = 0x50;     //串口方式1,1个起始位,1个停止位,8位数据,可变波特率

    PCON = 0X00;    //波特率不加倍

     TR2 = 1;          //启动T2 

    ES = 1;         //开串口中断

      EA = 1;         //开总中断

}

 

 

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

* 名称 : Delay_1ms()

* 功能 : 延时子程序,延时时间为 1ms

* x * 输入 : x (延时一毫秒的个数)

* 输出 : 无

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

void Delay_1ms(uint i)//1ms延时

{

  uchar x,j;

  

  for(j=0;j    for(x=0;x<=148;x++);

}


由于不是用的自己电脑来画的图,所以就没有办法贴出图片,但是要是有空的话,我一定把图贴出来。但是我还说一下设计的大概思路,就是一个最小单片机系统RX端接compim的RX端,TX接compim的TX端,然后LED接P2口的0端。


关键字:51单片机  串口通信 引用地址:51单片机之T2定时器串口通信

上一篇:89c51单片机32个心形流水灯
下一篇:51单片机定时器TMOD与TCON、SCON

推荐阅读最新更新时间:2024-11-07 10:54

基于51单片机的红外计数器-1602显示
一.硬件方案 本设计的主要原理为:红外发射管发射红外线,红外接收管接收红外线,并且接收管当有红外线照射的时候,电阻比较小,当无线外线照射的时候电阻比较大,这样就可以通过一个电压比较器和一个基准电压进行对比,当有光照的时候,红外接收管电阻比较小,那么和其串联的电压分压就会增大,所以电压比较器将会输出一高电平;当无光照射的时候,红外接收管的电阻比较大,这样电压比较器就会输出一个低电平。这个便是外部计数电平信号,这个电平信号送入AT89C51单片机进行计数控制,在经过扩展、显示驱动完成最后的显示过程。 硬件主要由:STC89C52单片机最小系统、LCD1602显示屏显示、红外避障传感器、按键、蜂鸣器及电源组成; 二.设计功能 (
[单片机]
基于<font color='red'>51单片机</font>的红外计数器-1602显示
51单片机的串口结构
说明 目前主要封装了串口1的实例,采用可移植数据类型,可以同步移植到STM32、STM8等单片机; 需自行实现串口接收回调函数内容; 头文件 #ifndef __SERIAL_H__ #define __SERIAL_H__ #include reg52.h #ifndef uint8_t typedef unsigned char uint8_t; #endif #ifndef uint16_t typedef unsigned int uint16_t; #endif #ifndef uint32_t typedef unsigned long uint32_t; #endif /* 晶振频率 */ #
[单片机]
7-基于51单片机的二氧化碳浓度检测报警系统仿真
具体实现功能 由STC89C52单片机+二氧化碳传感器+LCD1602液晶显示屏+按键+蜂鸣器+指示灯+电源构成。 具体功能: ①二氧化碳传感器测得二氧化碳数据后经过单片机处理,由LCD1602实时显示,第一行显示测得的浓度值,第二行显示报警阈值; ②可通过按键设置二氧化碳报警阈值; ③测得的甲醛浓度在正常范围时,绿灯亮,超过报警阈值时,红灯亮,蜂鸣器响,开始声光报警。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具
[单片机]
7-基于<font color='red'>51单片机</font>的二氧化碳浓度检测报警系统仿真
基于51单片机的排矿阀门控制系统设计
0 引言 磁力脱水槽是选矿厂对细粒嵌布铁矿物较为有效的选别设备。广泛应用在磁铁矿(或焙烧磁铁矿)选矿工艺中。磁力脱水槽操作目前采用人工操作。岗位工人按着给矿量的变化,用取矿勺估测精矿层的深度和目测颜色的方法掌握矿层界面的位置,从而调整精矿排矿阀门(胶堆、闸门)阀位的大小,以便相对保证精矿品位和金属回收率的最佳值。在生产实践中,当正常状态下各工序的矿浆量、浓度、品位相对稳定时,磁力脱水槽的选别指标较好。而当给矿量等指标变化频繁时,磁力脱水槽选别指标则急剧恶化,进而影响到选别作业给矿的稳定。在这种状态下,需要岗位工人不断调整阀门操作以满足铁精矿品位和金属回收率的要求。传统的人工操作是岗位工人利用操作勺探测矿层深度和目测颜色的方法掌
[单片机]
基于<font color='red'>51单片机</font>的排矿阀门控制系统设计
51单片机STC89C52控制LED闪烁(使用for语句实现延时)
/*-----------------------包含头文件区域-------------------------*/ #include reg52.h //单片机头文件 /*-----------------------端口/引脚定义区域----------------------*/ sbit LED=P2^0; //位定义P2.0引脚名为LED /*-----------------------主函数区域-----------------------------*/ void main() { unsigned int i; //定义无符号整形变量i(范围为0~65535) while(1)
[单片机]
STM32的串口通信
在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。 b) 初始化函数定义: void USART_Configuration(void); //定义串口初始化函数 c) 初始化函数调用: void UART_Configuration(void); //串口初始化函数调用 初始化代码: void USART_Configuration(void) //串口初始化函数 { //串口参数初始化 USART_InitTypeDef USART_InitStructure; //串口设置恢复默认
[单片机]
STC89C52系列单片机内部资源——串口通信
计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。 并行通信通常是将数据字节的各位用多条数据线同时进行传送 。 并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。 串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。 串行通信的基本概念 一、异步通信与同步通信 1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调
[单片机]
STC89C52系列单片机内部资源——<font color='red'>串口通信</font>
8051单片机-波特率的研究
通常情况下,8051系列单片机外接晶振频率一般是12MHz、24MHz、48MHz如图7-6-1,为什么会这样选取呢?从前面的章节已经介绍8051系列单片机的每12个时钟周期为一个指令周期,当8051系列单片机外接12MHz晶振时,指令周期=12/12MHz=1us;若外接24MHz晶振时,指令周期=12/24MHz=0.5us;若外接48MHz晶振时,指令周期=12/48MHz=0.25us。8051系列单片机外接能够被除尽的晶振,在使用单片机内部的定时器/计数器资源时作定时器使用时能够得到精确定时应用;当使用汇编语言编程时,可以清楚知道当前每一行代码执行的时间。 8051系列单片机外接能够被除尽的晶振即12MHz、24MH
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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