使用STC89C52与pycharm建立串口通信,pycharm建立函数控制P1、P2、P3的任意I/O口输出高电平或者低电平,上位机和下位机代码。pycharm建立子函数,让P1,P2,P3全部输出高电平
时间: 2024-05-04 08:20:40 浏览: 147
pycharm实现print输出保存到txt文件
下位机代码:
```c
#include <reg52.h>
#define FOSC 11059200UL
#define BAUD 9600
#define TH1 (256 - FOSC/12/BAUD)
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
sbit P3_2 = P3^2;
void init_uart();
void uart_send(unsigned char dat);
void uart_send_string(unsigned char *s);
void delay(unsigned int i);
void main()
{
init_uart();
while(1)
{
P1_0 = 1;
P1_1 = 1;
P1_2 = 1;
P2_0 = 1;
P2_1 = 1;
P2_2 = 1;
P3_0 = 1;
P3_1 = 1;
P3_2 = 1;
}
}
void init_uart()
{
TMOD = 0x20;
SCON = 0x50;
TH1 = TL1 = TH1;
TR1 = 1;
}
void uart_send(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void uart_send_string(unsigned char *s)
{
while(*s)
{
uart_send(*s++);
}
}
void delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0; j<125; j++);
}
}
```
上位机代码:
```python
import serial
ser = serial.Serial('COM1', 9600)
def set_high():
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
ser.write(b'\x01')
if __name__ == '__main__':
set_high()
```
其中,`b'\x01'` 表示发送一个字节,值为 `0x01`。你需要根据实际情况修改串口号。
阅读全文