⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test012.c

📁 51单片机全套学习资料 提供电路原理图 各种C语言实验程序 包括LED流水灯,数码管显示,中断,定时器,串口通信,DS18B20温度显示,液晶1602,12864显示,看门狗,按键检测,音乐播放等程序
💻 C
字号:
/********************************************************************************************
* 文 件 名:test012.c
* 功    能:UART发送实验(查询方式)。
* 硬件条件:1.CPU型号:AT89S52
*           2.晶振:11.0592MHz
*           3.用跳线帽短接RXD__P3.0
*           4.用跳线帽短接TXD__P3.1
* 上位机软件:串口调试软件(斯凯科技),波特率为4800
* 作    者:POWER
* 日    期:2006年12月12号
* 斯凯科技主页:www.armsky.net
* 斯凯科技论坛:www.armsky.net/bbs
*********************************************************************************************/
#include "reg52.h"                               // 包含头文件    

/* 与编译器无关的数据类型定义 */
/********************************************************************************************/
typedef unsigned char      uint8;                // 无符号8位整型变量
typedef signed   char      int8;                 // 有符号8位整型变量
typedef unsigned short     uint16;               // 无符号16位整型变量
typedef signed   short     int16;                // 有符号16位整型变量
typedef unsigned int       uint32;               // 无符号32位整型变量
typedef signed   int       int32;                // 有符号32位整型变量
typedef float              fp32;                 // 单精度浮点数(32位长度)
typedef double             fp64;                 // 双精度浮点数(64位长度)
/********************************************************************************************/

/********************************************************************************************
* 函数名称:Delay()
* 功    能:软件延时
* 入口参数:count    延时参数,值越大,延时越长
* 出口参数:无
*********************************************************************************************/
void Delay(uint16 count)
{
  uint8 i;                

  while(--count != 0)        
 	  {
	    for(i = 0; i < 125; i++);                // ";" 表示空语句,CPU空转。
	  }   				                         // i 从0加到125,在12M晶体下CPU大概耗时1毫秒
}

/********************************************************************************************
* 函数名称:UART_Init()
* 功    能:UART初始化
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void UART_Init(void)
{
  IE=0x00;                                       // 禁止所有中断

  SCON=0x50;                                     // 串口工作方式1,即10位异步收发器(8位数据),波特率可变

  TMOD|=0x20;                                    // 定时器1:工作方式2(8位自动重装定时/计数器)

  PCON|=0x80;                                    // SMOD=1,即波特率提高一倍

  TH1=0xF4;                                      // 晶振频率为11.0592MHz时,波特率为4800

  TR1=1;                                         // 启动定时器/计数器1

}

/********************************************************************************************
* 函数名称:UART_Send_Char()
* 功    能:向串口发送一个字符
* 入口参数:Send_Char   要发送的一个字符
* 出口参数:无
*********************************************************************************************/
void UART_Send_Char(uint8 Send_Char)
{
  SBUF=Send_Char;                                // 将要发送的一个字符写入发送缓冲区
  while(TI==0);                                  // 查询UART发送中断标志,直到标志为1(产生发送中断)时,执行下面的语句  
  TI=0;                                          // 清0UART发送中断标志
}

/********************************************************************************************
* 函数名称:UART_Send_String()
* 功    能:向串口发送一个字符串
* 入口参数:Send_String   要发送的一个字符串
*           StringLen     字符串长度
* 出口参数:无
*********************************************************************************************/
void UART_Send_String(uint8 *Send_String,uint32 StringLen)
{
  uint32 i=0;

  do
    {
	  UART_Send_Char(*(Send_String+i));
	  i++;
	}while(i<StringLen);
}

/********************************************************************************************
* 函数名称:main()
* 功    能:UART发送实验(查询方式)。连续向上位机发送"Hello ARMSKY-51Easy!" 。
*********************************************************************************************/   	
void main (void)                
{
  UART_Init();                                   // UART初始化
  
  while(1)
      {
	    UART_Send_String("Hello ARMSKY-51Easy!\n",21); // 通过UART向上位机发送"Hello ARMSKY-51Easy!"字符串
	    Delay(500);                              // 延时
	  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -