# /******************************************************************
# 本程序只供学习使用,未经作者许可,不得用于其它任何用途
# 我的邮箱:computer-lov@tom.com
# 欢迎访问我的blog: http://computer00.21ic.org
#
# UART.C file
#
# 作者:Computer-lov
# 建立日期: 2007.03.20
# 修改日期: 2007.03.22
# 版本:V1.1
# 版权所有,盗版必究。
# Copyright(C) Computer-lov 2007-2017
# All rights reserved
# *******************************************************************/
#
# #include <at89x52.H>
#
# #include "UART.h"
# #include "my_type.h"
#
# uint8 Sending;
#
#
# //**************************************************************************************
# void InitUART(void) //串口初始化函数,使用22.1184M晶体
# {
# EA=0;
# TMOD&=0x0F;
# TMOD|=0x20; //定时器1工作在模式2
# SCON=0x50; //串口工作在模式1
# TCON=0x05;
# TH1=0xF4; //9600bps
# TL1=0xF4;
# PCON=0x80; //串口波特率加倍
# ES=1; //串行中断允许
# TR1=1; //启动定时器1
# REN=1; //允许接收
# EA=1; //允许中断
# }
# //****************************************************************************************
#
#
# //******************************* 串口中断处理 ***********************************
# void SerialPort(void) interrupt 4
# {
# if(RI) //收到数据
# {
# RI=0; //清中断请求
# }
# else //发送完一字节数据
# {
# TI=0;
# Sending=0; //清正在发送标志
# }
# }
# //*****************************************************************************************
#
# //*****************************************************************************************
# void SendToComport(unsigned char d) //往串口发送一字节数据
# {
# Sending=1;
# SBUF=d;
# while(Sending);
# }
# //*****************************************************************************************
#
# //*****************************************************************************************
# //发送一个字符串
# void prints(uint8 * pd,uint8 line_feed)
# {
# while((*pd)!='\0')
# {
# SendToComport(*pd);
# pd++;
# }
# if(line_feed)
# {
# SendToComport(13);
# SendToComport(10);
# }
# }
# //****************************************************************************************
#
#
#
# //*****************************************************************************************
# void PrintLongInt(uint32 x) //将整数转按十进制字符串发送
# {
# int8 i;
# uint8 display_buffer[10];
# display_buffer[10]=0;
# for(i=9;i>=0;i--)
# {
# display_buffer[i]='0'+x%10;
# x/=10;
# }
# for(i=0;i<9;i++)
# {
# if(display_buffer[i]!='0')break;
# }
# for(;i<10;i++)SendToComport(display_buffer[i]);
# }
# //*****************************************************************************************
#
#
# code uint8 HexTable[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
# //*****************************************************************************************
# /*
# void PrintLongIntHex(uint32 x) //将整数按十六进制发送
# {
# uint8 i;
# uint8 display_buffer[11];
# display_buffer[10]=0;
# display_buffer[0]='0';
# display_buffer[1]='x';
# for(i=9;i>=2;i--)
# {
# display_buffer[i]=HexTable[(x&0xf)];
# x>>=4;
# }
# prints(display_buffer,0);
# }
# */
# //*****************************************************************************************
#
#
# //*****************************************************************************************
# void Printc(uint8 x) //发送一个byte的数据
# {
# Sending=1;
# SBUF=x;
# while(Sending);
# }
# //*****************************************************************************************
#
#
# //*****************************************************************************************
# void PrintHex(uint8 x) //以HEX格式发送一个byte的数据
# {
# Printc('0');
# Printc('x');
# Printc(HexTable[x>>4]);
# Printc(HexTable[x&0xf]);
# Printc(' ');
# }
UART1.rar_Objective Key
版权申诉
98 浏览量
2022-09-23
11:16:09
上传
评论
收藏 1KB RAR 举报
林当时
- 粉丝: 103
- 资源: 1万+