标题:
请教通过串口发送单片机I/O口状态程序
[打印本页]
作者:
代码虾1
时间:
2018-10-15 10:20
标题:
请教通过串口发送单片机I/O口状态程序
本帖最后由 代码虾1 于 2018-10-15 10:25 编辑
通过P1.0口检测高低电平,并通过串口发送P1.0口的状态显示在串口助手上。下面是我写的程序,但是通过串口收不到数据。还请大佬们指教啊,快被这个程序搞疯了。请给出具体的程序谢谢
#include "stc12c5a60s2.h"
#include "delay.h"
#include "uart.h"
sbit relay=P3^1;
sbit HighLow=P1^0;
sbit status=P1^1;
void main()
{
InitUart();
while(1)
{
if(HighLow==0)
{
relay=1;
}
else if(HighLow==1)
{
relay=0;
}
send_uart1(HighLow);
}
}
下面是子程序
#include "uart.h"
#include "stc12c5a60s2.h"
void InitUart()
{
SCON=0X50;
PCON |= 0x80;
S2CON = 0x50;
AUXR |= 0x08;
AUXR |= 0x04;
AUXR|=0X11;
BRT = 0xb8;
EA =1;
ES =1;
IE2 =0x01;
TI=1;
RI=0;
}
void send_uart1(uchar ck1)
{
SBUF=ck1;
while(TI==0);
TI=0;
}
void send_uart2(uchar ck1)
{
S2BUF =ck1;
while(!(S2CON&S2TI));
S2CON&=~S2TI;
}
void UartPrintASCII(unsigned char c)
{
TI=0;
SBUF=c;
while(TI==0);
TI=0;
}
void UartPrintf(unsigned char *p)
{
while(*p)
{
SBUF=*(p++);
while(TI==0)
{
;
;
;
};
TI=0;
}
}
void Uart2PrintASCII(unsigned char c)
{
S2BUF=c;
while(!(S2CON&S2TI));
S2CON&=~S2TI;
}
void Uart2Printf(unsigned char *p)
{
while(*p)
{
S2BUF=*(p++);
while(!(S2CON&S2TI));
S2CON&=~S2TI;
}
}
作者:
sxhwdz
时间:
2018-10-15 16:41
主频多少?串口波特率多少?
作者:
代码虾1
时间:
2018-10-17 22:13
帖子沉了完了
作者:
wulin
时间:
2018-10-18 14:06
本帖最后由 wulin 于 2018-10-19 15:48 编辑
代码虾1 发表于 2018-10-17 22:13
帖子沉了完了
楼主提出问题含糊不清。不知你的程序是从哪里抄来的,根据头文件是使用的STC12C5A60S2,看串口初始化程序是使用的串口2。串口2的数据缓冲寄存器应该是S2BUF并且使用独立波特率发生器。由于你只发不收,不必开串口中断。给你写了示例程序,Keil 调试通过,未经实物验证。
#include <STC12C5A60S2.H>
//sbit relay=P3^1;
sbit HighLow=P1^0;
//sbit status=P1^1;
bit a;
void UartInit(void) //9600bps@11.0592MHz
{
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位数据,可变波特率
AUXR &= 0xFB; //独立波特率发生器时钟为Fosc/12,即12T
BRT = 0xFD; //设定独立波特率发生器重装值
AUXR |= 0x10; //启动独立波特率发生器
}
void send_uart1(unsigned char ck1)
{
S2BUF=ck1;
while(S2TI==0);
S2TI=0;
}
void main()
{
UartInit();
HighLow=1;
a=HighLow;
while(1)
{
if(HighLow^a)//只在P1.0电平变化时发送数据
{
a=~a;
send_uart1(HighLow);
}
}
}
作者:
793416125
时间:
2018-10-18 21:40
这个还是要具体问题具体分析的
作者:
zhangZ0594
时间:
2018-10-19 15:34
串口率事多少呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1