本文以LED灯控制器为例,介绍了51单片机和PC的串行通信方法。LED单芯片串行通信分类号:TP342文献代码:与LED灯会MakingZHU BinAbstract串行通信控制器本文详细描述了灯控制器在所述通信方法中所描述的实施例51系列单关键字,LED,串行通信MCS – 51 MCU内部的串行接口是全双工的,可以同时发送和接收数据。MCU与PC进行通信,后者添加232个芯片,以正常通信,因为它使用的通信方法232是很困难的调试PC串行通信模块之间的串行端口的通信接口MCU,因为只有当双方的硬件和软件都正确时才能实现成功的通信。以采用单独的调试方法,即分别对通信协议的两侧进行调试,然后进行联合调整。件设计电路的示意图示于图1中。AX232芯片被使用,以及制备9针串行端口,以形成与PC的通信接口电路。先使用PC终端调试MCU的通信端口。要模式设置正确,一般通信就会成功。于PC终端已与之具有正常通信功能,如果通信不正常,它由MCU的一部分,这是方便的,恒温阀芯以检测现有的默认引起的。
1的编程和串行通信电路调试串口调试器的调试如下功能是编程的串行端口的操作模式,然后生成的串行端口上的字符串:“微处理器MCS-51“,然后输入串行端口的字符,串行端口的字符和显示键盘的屏幕上的PC终端上输入的字符。
旦该功能,串行端口的硬件和编程部分的串行端口被适当地开发和单个芯片和终端之间的串行通信可以根据通信协议来进行,并且开发通讯软件齐全。
程序如下所示:#include的#define UCHAR无符号字符的#define UINT无符号代码intuchar抗精子抗体[] = { ‘M’, ‘S’, ‘C’, ‘ – ‘, ‘M’, ‘我’ ‘C’, ‘R’, ‘0’, ‘C’, ‘0’, ‘M’, ‘p’, ‘U’, ‘T’, ‘E’, ‘R’,0X0A,0X0D, 0}; main void(){uchar i,temp; TMOD = 0x20; //定时器1模式2TL1 = 0xe8; TH1 = 0xe8; SCON = 0xda; TR1 = 1; i = 0; next:temp = asab [i]; if(temp = = 0){loop:只要(RI == 0); RI = 0; temp = SBUF;只要(TI == 0); TI = 0; SBUF = temp; goto loop;} else {只要(TI == 0); TI = 0; SBUF = temp; i ;}转到下一个;}将上述程序输入Keil C后,全速运行。模拟过程中,打开一个串行端口信道(设备/系列)(串行通道)如图2所示。2的调试端口系列示意图示出为图2中所示,串行端口信道窗口包含当程序每次在TSO3上运行时,必须在TI之前的复选框中选择“√”才能继续执行程序。数字A发送到串行端口缓冲区(SBUF)以在SBUF文本框中显示传入数据。要选择“√”来传输号码。Proteus软件仿真增加了基于图1中,虚拟终端,如图3中VSM虚拟终端允许用户在进出微处理器系统的发送和接收异步RS232串行数据通过键盘和PC屏幕模拟。显示由用户编写的程序生成的调试/跟踪信息时很有用。口图3中的Proteus软件的串行端口的仿真HEX文件生成部précédente.Après全速运行,在图中示出的结果3出现和所传输的数据被显示在虚拟终端。图4所示设置一个LED彩色指示器的端口控制器的设计颜色的彩色指示图的串行端口控制器的电路图,串行寄存器中的两个移位寄存器延伸74LS164,在形式16路状态指示灯界面。4模拟端口控制器串联的LED照明的生产设备的示意图使用焊接电路通用卡购买其自己的设备。程序写入在一个表中,并创建一组数据,并使用UART发送到IC74164串行输入/输出8BIT。
数据集将74164的8个LED向左移动2次,右移2次,闪烁2次。方案是:#包括的#define UCHAR无符号字符的#define UINT无符号代码表intuchar [] = {0×01,0×02,×04,0x08时,0x08时,0×10,0×02,×04,×04,0x08时,0x08时,为0x10 0x20用于0x40的,0x80的,X80,0x40的,为0x20,0x10的,0x08时,0×04,0×02 0×01 0×01,0x80的,0x40的,为0x20,0x10的,0x08时,0×04,×04,0×02 0×01 0×01,0x00时,0×00,0×00 ,0x03,0x03}; {uint j; for(j = 0; j <20000; j );} void main(){uchar i,temp; SCON = 0x00; i = 0; loop:temp = array [i]; if(temp!= 0x03){temp = ~temp; SBUF = temp; while(TI == 0); TI = 0;延迟(); i ;}否则i = 0; goto loop;}
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com