如何利用单片机向电脑发送一串汉字

控制/MCU

1876人已加入

描述

最近看到有朋友在网上问单片机怎么向电脑发送一串汉字这个问题,其实这个问题也不难。呵呵。只要把相关的参数设置好一些,然后把汉字定义成一组字符向电脑发送就可以。

为了让大家更明确的了解,我就写了下面的一个程序来演示一下。

操作条件:

1.XP操作系统。

2.XP的超级终端显示。

3.WJ-V4.0开发板。

4.单片机STC89C52.

5.晶振11.0592M

操作步骤:

1.设置TMOD设置波特率和定时器1的工作方式。

2.设置定时器的初始值。

3.设置串行口工作方式。

4.设置波特率不加倍。

5.打开TR1允许发送。

6.启动定时器。

7.串行中断打开。

8.打开EA中断。

现在发上源代码:

#include

#defineucharunsigned char

#defineuint unsigned int

bitFS_Bit = 0;//发送标志位

codeuchar TEXT0[] = “********************************rnn”;

codeuchar TEXT1[] = “电子爱好者社区欢迎您!rnn”;

codeuchar TEXT2[] = “www.wang1jin.com!rnn”;

codeuchar TEXT3[] = “51免费开发板PCB赠送!rnn”;

codeuchar TEXT4[] = “赠送地址http://www.wang1jin.com/shop/goods.php?id=2rnn”;

codeuchar TEXT5[] = “********************************rnnnnn”;

void Delay_Ms(uint i);//延时函数

voidUART_Char(uchar Value);//发送一个数据

void Prints(uchar *Value);//发送一组数据

void main(void)

{

TMOD = 0x20;//设置波特率为9600和定时器1工作方式

TL1 = 0xFD;//设置初始值

TH1 = 0xFD;

SCON = 0x50;//设置串行口工作方式

PCON = 0x00;

TR1 = 1;//允许发送

ET0 = 1;//启动定时器

ES = 1;//串行中断允许

EA = 1;

while(1)

{

Prints(TEXT0);//发送数据

Prints(TEXT1);

Prints(TEXT2);

Prints(TEXT3);

Prints(TEXT4);

Prints(TEXT5);

Delay_Ms(60000);//延时

}

}

void INIT_Uart(void)interrupt 4

{

if(RI)//如果收到数据

{

RI = 0;

}

else

{

TI = 0;//发送完一个数据

FS_Bit = 0;//清标志位

}

}

void Uart_Char(uchar Value)

{

SBUF = Value;//发送数据

FS_Bit = 1;//设置发送标志位

while(FS_Bit);

}

void Prints(uchar *Value)

{

while((*Value) != ‘’)//如果没有发送完毕

{

Uart_Char(*Value);//发送一位数据

Value++;//指针指向下一位数据

}

}

void Delay_Ms(uint i)

{

while(--i );

}

最后给大家看看程序工作的效果图片:

电脑

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分