jkts.net
当前位置:首页 >> 不明白单片机的串口通信的PCON |= 0x80... >>

不明白单片机的串口通信的PCON |= 0x80...

PCON主要是单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下: PCON D7 D6 D5 D4 D3 D2 D1 D0 位符号 SMOD - - - --- GF1 GF0 PD IDL 各位的定义: SMOD:该位与串口通信有关。 SMOD=0; 串口方式1,2,3时,波特率正常。 SMO...

不是每位相与,而是相或。| 是或的符号,0x80也就是1000 0000,pcon 执行或运算 后,肯定是1。

SMOD属于特殊寄存器,该位跟串口通信相关,是对定时器T0\T1工作方式跟模式的选择。 SMOD又叫串口倍率模式选择位,当SMOD在PCON则不能位寻址,当串口处于工作方式0跟方式3的时候,此时如果SMOD=1,波特率则会加倍;当SMOD=0,串口工作方式1、2、3...

你的设置都是用定时器1作为波特率发生器。没有用到定时器2,也没有设置。 定时器0是无法做波特率发生器的。

//代码来自 单片机小精灵v1.3//波特率9600 11.0592晶振 方式2#include void InitUART(void){ TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1;}void SendOneByte(unsigned char c){ SBUF = c; while(!T...

PCON一般只有在使用串口时设置,要设置也只设置它的最高位SMOD。SMOD是串口波特率倍增位,设为1串口波特率就加倍,为0就不变。PCON不能位寻址,所以说初值就00H和80H两种。

这种内容,教材或有关单片机的书上都有详细讲解的,看看书就成了。这种事情,也来提问。

电脑上,你是用什么软件发送数据的?用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十...

51单片机波特率设置主要有以下两种方式:1) 工作方式0 ,2)工作方式1 。 1) 工作方式0 SM0=0且SM1=0时,串口选择工作方式0,实质这是一种同步移位寄存器模式。 其数据传输的波特率固定为Fosc/12,数据由RXD引脚输入或输出,同步时钟由TXD引脚...

12M晶振不能输出9600的波特率; 12M晶振只能输出1200的波特率,有少量误差,不过不影响使用。 #include #include void Uart0_transmit(unsigned char i) //向串口发送一个字节 { ES=0; TI=0; SBUF=i; // 发送数据到uart0 while (!TI); / 等待发...

网站首页 | 网站地图
All rights reserved Powered by www.jkts.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com