#include "UART.h"
//预设一个串口条件:8位数据位、1停止位、0效验位、波特率2400
//初始化主要用于设置相关寄存器到我们所需要的模式以及参数
//初始化串口函数
void uart_init(void)
{
SCON=0x50; //串口工作在模式1,开启允许接收
PCON=0x00; //波特率不加倍//加倍用0x80,需波特率*2
TMOD=0x20; //设置T1在模式2:M1=1,M0=0;8位自动重装模式
TH1=TL1=243; //8位自动重装的意思:TH1用完后下一个周期,TL1自动重装到TH1里面去
TR1=1; //开启计数器
ES=1; //关闭串口中断
EA=1; //关闭总中断
}
//通过串口发送1个字节出去
void uart_seng_byte(unsigned char c)
//SBUF=c表示将变量c的值赋给SBUF,unsigned char c为8位无符号字符,是一个字节的大小,表示变量c的值是1个字节大小的。
//在内存中间开辟一个1字节的空间,标记为c,把字符A存进去
{
SBUF=c; //第一步:发送一个字节出去:写入即可自动发出
//参数c容量为1个字节大小的值赋给SBUF用来规定缓存区的容量,防止缓存区溢出
while(!TI); //第二步:确认串口8位数据发送结束,TI硬件自动置位
TI=0; //第三步:软件复位TI
}
//以文本方式发送C过去,意思就是让串口助手用文本方式来查看,看到的是这个数字本身
void uart_seng_text(unsigned char c)
{
uart_seng_byte(c);
}
//延时函数:减慢串口输出让,输出的内容不乱码,输出的的时候不发生错误
void delay1s(void) //误差 0us
{
unsigned char a,b,c;
for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
//if Keil,require use intrins.h
}
#ifndef __UART_H__
#define __UART_H__
#include <reg51.h>
void uart_init(void); //初始化串口函数
void uart_seng_byte(unsigned char c); //通过串口发送1个字节出去
void delay(void); //延时函数
void delay1s(void); //延时函数
void uart_seng_text(unsigned char c);
#endif
如何显示ASCLL码里面的 !
#include "et2046.h"
#include "UART.h"
void main(void)
{
uart_init();//UART串口初始化
while(1)
{
uart_seng_text(33);//一定要给个循环才能看到串口显示发出的是!,而不是串口没有显示或者显示别的东西的现象。
delay1s();//延时1s //为什么显示的是!呢,因为在ASCLL码里33对应的是!
}
}

如何显示ASCLL码里面的 !
#include "et2046.h"
#include "UART.h"
void main(void)
{
uart_init();//初始化
while(1)
{
uart_seng_text('3'); //一定要给个循环才能看到串口显示发出的是33,而不是没有显示或者显示别的东西。
uart_seng_text('3'); //这样子就是显示33的数字了
delay1s();//延时1s
}
}
