完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
在单片机的通讯中,最简单常用的就是串口通讯,一些初学者在做串口通讯的过程中经常会出现这样那样的问题,导致程序失败,在下面我们给出一个例程,这个例程是单片机与PC通讯的,其中print()函数是回发的子函数,如果您需要在显示屏上显示,那么只需要更改这个函数就可以了,另外在这个例程中使用的是30个字节的字符串,你可以修改#define LENGHT 30这一行。
#include < reg52.h > #define LENGHT 30 unsigned char c; bit recive,trance; /*这里定义了两个bit位,作为已接收、发送的标志,也可直接用 RI和ti标志*/ void print(char *p) { while ((*p!=0x0a)&&(*p!=0x0d)) { SBUF=*p; while(trance==0); trance=0; p++; } SBUF=*p; while(trance==0);trance=0; } void main() { unsigned char b; unsigned char dis_play[LENGHT]; SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ PCON |= 0X80; /*SMOD=1,BAUTRATE DOUBLE*/ TH1 = 0xff; /* TH1: reload value for 57600 baud @ 11.0592MHz */ TR1 = 1; /* TR1: timer 1 run */ EA=1; ES=1; recive=0;trance=0; c=b; while(1) { while(b b=0; while ((c!=0x0a)&&(c!=0x0d)) { while(recive==0); recive=0; if((c>=0x20)&&(c<=0x7f)) {dis_play[b]=c;b++;} } if((c==0x0a)||(c==0x0d)) { dis_play[b]=c; print(dis_play); } } } void serial(void) interrupt 4 { if(TI==1) {TI=0;trance=1;} if(RI==1) {c=SBUF;RI=0;recive=1;} } 具体的语句这里就不再给出详细的注解,需要指出的是,这里的字符串的结束标志是一个0x0d或0x0a的字符,如果发送的字符传的结尾没有这两个字符中的一个,将会导致接收缓冲区溢出,这样结果就不可预料,因此大家要注意这一点。本程序在89C51单片机上通过,PC端使用的丁丁版主的SSCOM串口调试工具,注意钩选其中的“发送新行”选项。 |
|
相关推荐
6 个讨论
|
|
|
VGA控制板、LCD串口屏、LCD驱动IC
-----51,avr单片机或PLC驱动3.5寸至52寸的数字TFTLCD屏、VGA接口显示器、电视机 广州易显光电科技有限公司是一家专业从事光电显示技术及其周边产品的研究、生产和经营的高科技公司。目前,我公司已形成独特而完善的、具备自主知识产权的三大主要产品系列:VGA控制板、LCD串口屏、LCD驱动IC。驱动尺寸几乎涵盖3.5寸到52寸的所有型号,具体包括3.5寸、4.3寸、5.6寸、7寸、8寸、10.4寸、15寸、17寸、18寸、19寸、21寸、23寸、24寸、32寸、42寸、52寸等数十个显示尺寸。 我公司产品已经广泛应用于工业自动化、电力、电信、环保、医疗、金融、石油、化工、交通、能源、地质、冶金、公共查询与监控等数十个行业和领域,其中,在某些军工及航天领域,凭借可靠、稳定的产品性能已被列入合格供应商名录。完全杜绝RA8835、S1D13305等控制器存在的雪花、乱码、时序不兼容、工作温度范围窄等问题。 QQ: 1197614222 252631158 串口屏,顾名思义就是用户单片机或PLC只需要串口就可以驱动的显示屏。它由显示驱动板、外壳、LCD液晶显 示屏三部分构成。接收用户单片机串口发送过来的指令,完成在LCD上绘图的所有操作,这就是驱动板完成的功能。 VGA控制板,顾名思义就是驱动具有"15针VGA接口"的显示器或者电视机。接收用户单片机串口发送过来的指令, 完成在显示器或者电视机上绘图的所有操作,这就是VGA控制板完成的功能。 支持USB鼠标,USB键盘,SD卡小硬盘,俨然就象一台电脑主机。确切的说,它是一台工控机。 设计软件,无论是串口屏还是VGA控制板,都需要一款相应的设计软件与它相配套。串口屏和VGA控制板研发的人机界面集成开发环境HMIMaker。它拥有界面设计所需要的所有控件,用户单片机只要编写一点点代码就可以完成界面设计,真正体现“零代码”。而市场上其它厂家的那些串口屏和VGA控制板没有配套相应的设计软件,或者设计软件简单,用户需要花费大量的精力去编写单片机代码才能完成设计。 |
|
|
|
|
|
|
|
506 浏览 0 评论
607 浏览 0 评论
837 浏览 0 评论
832 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17058 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 07:51 , Processed in 0.871983 second(s), Total 53, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5296