标题:
51单片机串口显示字符串(c语言)
[打印本页]
作者:
wake_up_smiling
时间:
2018-1-20 12:43
标题:
51单片机串口显示字符串(c语言)
本帖最后由 wake_up_smiling 于 2018-1-20 12:51 编辑
基于51单片机的串口显示字符串程序
目的:
通过串口调试助手像单片机发送字符串(文本模式),字符串将在数码管上显示,字型码需要根据原理图自己计算代码如下
头文件RS323.H:
#include "stc15fxxxx.h" //调用stc15f系列头文件
#define Fosc 11059200L //下载晶振频率
#define serial_one_baud_rate 9600L //串口通讯波特率
#define Timer1_Reload (65536UL -(Fosc / 4 / serial_one_baud_rate)) //用定时器1做波特率发生器,计算定时器1的重装值
u8 num2[4]={10,10,10,10};
u8 num=0;
u8 n1,n2,n3,n4,n5;
//初始化串口
void serial_one_init()
{
SCON |= 0x40; //8位数据
P_SW1 &= ~0xc0;
TR1 = 0; //关闭定时器
AUXR &= ~0x01;
TMOD &= ~(1<<6);
TMOD &= ~0x30;
AUXR |= (1<<6);
TH1 = (u8)(Timer1_Reload >> 8);
TL1 = (u8)Timer1_Reload;
TR1 = 1; //打开定时器1
PS = 1; //高优先级中断
REN = 1; //允许接收
ES = 1; //打开串口中断
EA = 1; //打开全局中断
}
/********************* 串口1中断函数************************/
void UART1_int (void) interrupt UART1_VECTOR
{
if(RI)
{
RI = 0;//清除接受标志
num2[num]= (SBUF-48);
num++;
if(num==4)num=0;
}
}
复制代码
c文件:
/*4位数码管,数码管使用P2口作为段选端,p3.7,p3.6,p3.5,p3.4分别为4位数码管的位选端,
数码管为共阳数码管,其中字型码部分需要自己计算,附带计算小工具,程序编译成功无任何问题,有问题联系q:1606260309 */
#include"rs232.h"
char led_mod[] = { 0x82,0xe7,0x2a,0x26,0x47,0x16,0x12,0xa7,0x02,0x06
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x52,
0x9a,0x62,0x1a,0x1b,0x92,0x43,0xdb,0xe6};//0123456789*******ABCDEFGHIJ,需要自己算,中间的‘*’按个数任意填写(访问不到)这里以0xff补齐(共阳数码管)
unsigned int key=0;
void delay()
{
int i=1000;
while(i--);
}
void display(unsigned char m,unsigned char n)
{
if(m==1)
{
P37=0;
P36=1;
P35=1;
P34=1;
P2=led_mod[n];
delay();
}
if(m==2)
{
P37=1;
P36=0;
P35=1;
P34=1;
P2=led_mod[n];
delay();
}
if(m==3)
{
P37=1;
P36=1;
P35=0;
P34=1;
P2=led_mod[n];
delay();
}
if(m==4)
{
P37=1;
P36=1;
P35=1;
P34=0;
P2=led_mod[n];
delay();
}
}
void main()
{
serial_one_init();//串口初始化
while(1)
{
if(num==1)
{
num2[1]=10;
num2[2]=10;
num2[3]=10;
}
else if(num==2)
{
num2[2]=10;
num2[3]=10;
}
else if(num==3)
{
num2[3]=10;
}
display(1,num2[0]);
display(2,num2[1]);
display(3,num2[2]);
display(4,num2[3]);
}
}
复制代码
QQ截图20180120124327.png
(14.93 KB, 下载次数: 23)
下载附件
2018-1-20 12:49 上传
附件:
串口显示字符串(c语言).zip
(60.44 KB, 下载次数: 36)
2018-1-20 12:42 上传
点击文件名下载附件
c51工程
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1