python编程单片机_Python与C51单片机交互
Python與C51單片機交互,嘿嘿,其實是在OSX下用串口交互了~~
1.首先裝上CH340/CH341 For Mac USB轉串口驅動程序
2.安裝Python串口模塊 pip install pySerial#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2016-08-14 19:47:05
# @Author : PiaoYun (piaoyunsoft@163.com)
# @Link : http://www.dllhook.com
import serial
import time
def test():
# 連接單片機
ser = serial.Serial('/dev/tty.wchusbserial1420', 9600)
# 查看狀態(tài)
if ser.isOpen():
# 發(fā)送指令 -- 方便測試 寫個死循環(huán)
while True:
for x in xrange(0, 3):
ser.write(str(x))
#圖片上面忘記寫讀取單片機傳回來數據的代碼了,這里補上...
s = ser.read(10)
print s
time.sleep(2)
# 端口連接
ser.close()
if __name__ == '__main__':
test()// 單片機程序
#include
uint8 c;
uint8 flag;
void initUART(void)
{
TMOD = 0x20;// 定時器工作方式2
//SCON = 0x50;// 打開串口為方式1-如下分解:
SM0 = 0;
SM1 = 1;
SM2 = 0;
REN = 1;
TH1 = 0xFD;// 波特率6900
TL1 = TH1;
EA = 1;// 打開中斷總開關
ES = 1;// 打開串口中斷開關
TR1 = 1;// 啟動定時器1
}
// 發(fā)送一個字節(jié)數據
void sendOneByte(uint8 c)
{
SBUF = c;
while(!TI);// 等待數據發(fā)送結束
TI = 0;
}
// 串口中斷
void serial() interrupt 4
{
flag = 1;
c = SBUF;
if(RI)
{
RI = 0;
//P1 = c;
// 這里隨便寫了兩個功能
switch (c)
{
case '1':
P1 = 0xAA;
break;
case '2':
P1 = 0x55;
break;
default:
P1 = 0xFE;
break;
}
}
else
TI = 0;
}
void main(void)
{
initUART();
P1 = 0x7F;
while(1){
if (flag == 1)
{
ES = 0;// 關閉串口中斷
flag = 0;// 復位標記
sendOneByte('p');
sendOneByte('i');
sendOneByte('a');
sendOneByte('o');
sendOneByte('y');
sendOneByte('u');
sendOneByte('n');
ES = 1;
}
}
}
總結
以上是生活随笔為你收集整理的python编程单片机_Python与C51单片机交互的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cadence orCAD如何输出PDF
- 下一篇: 计算物理作业python代码_使用 Py