python串口上位机画图_温度传感器+I2C+串口+PC上位机(pyserial)例子

温度传感器+I2C+串口+PC上位机(pyserial)例子

例子写的有点乱,主要是学习:

温度传感器DS18b20,E2PROM,I2C, 串口读写,PC上位机(pyserial)数据显示

SerialPort.py PC串口上位机程序,可以设定上限报警温度

需要安装Python3以上,pyserial库,例子在Python3.4下写的。

上位机传给单片机上限报警温度后,单片机存入E2PROM,

单片机断电重启后,从E2PROM读取报警值。

i2c.h I2C总线读写和设定

lcd1602.h lcd1602的读写和设定

temp_ds18b20.h DS18b20的读写和设定

#define AT24C02 0xa0// AT24C02 写数据的设备地址

#define MAX_TEMP_E2PROM_FLAG 0xff// 上限报警温度的存储器数据标志,存在说明存储器有数据

sbit power_port = P2^3;// 报警端口

int max_temp = 340;// 报警上限温度,默认340

int max_temp_buf = 0;// 报警上限温度缓存,用于串口

int sp_read_count = 0;// 串口数据,读取的字节计数

bit sp_read_flag = 0;// 串口读取标志

uint8 buf_byte;// 串口数据缓存

串口通信和E2PROM和I2C总线 例子下载:

#!/usr/bin/env python

#encoding=utf-8

"""

=============================================================================

单片机例子,上位机

版权所有 (C) 君扬工作室 2014-07-26

文档作者:君扬工作室(cnhemiya@gmail.com)

更新标识:2014-07-26 14:00:00 cnhemiya@gmail.com

=============================================================================

"""

import serial

import struct

port = 2 # 串口号

baudrate = 4800 # 波特率

max_temp = 335 # 报警温度

ser = serial.Serial()

def writeTemp(temp):

h = int(temp / 256)

l = temp % 256

data = struct.pack(("B"), h)

ser.write(data)

data = struct.pack(("B"), l)

ser.write(data)

def readTemp():

print(ser)

while (1):

h = ser.read()

l = ser.read()

m = int.from_bytes(h + l, byteorder='big', signed=False)

s = str(m)

s = s[0] + s[1] + "." + s[2] + "℃"

print(s)

def main():

ser.setPort(port) # 设置串口号

ser.setBaudrate(baudrate) # 设置波特率

ser.open()

writeTemp(max_temp)

readTemp()

ser.close()

if __name__ == "__main__":

main()

150012_9tKl_25213.jpg

150013_7RXR_25213.jpg

150014_cBTa_25213.jpg

150016_yUrc_25213.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值