久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
MicroPython實(shí)戰(zhàn)之TurnipBit開發(fā)板DIY電子時(shí)鐘
[打印本頁]
作者:
bodasister
時(shí)間:
2018-6-26 11:19
標(biāo)題:
MicroPython實(shí)戰(zhàn)之TurnipBit開發(fā)板DIY電子時(shí)鐘
一、 實(shí)驗(yàn)?zāi)康模?br /> ?學(xué)習(xí)在PC機(jī)系統(tǒng)中擴(kuò)展簡單I/O 接口的方法
?學(xué)習(xí)TurnipBit拼插編程
?學(xué)習(xí)TurnipBit擴(kuò)展板與DS3231時(shí)鐘模塊連接接線方式
?學(xué)習(xí)時(shí)鐘模塊的使用
二、所需原器件:
?TurnipBit一塊
?TurnipBit擴(kuò)展板一塊
?DS3231時(shí)鐘模塊一個(gè)
?杜邦線若干
?usb數(shù)據(jù)線一條
三、實(shí)驗(yàn)原理:
1. DS3231時(shí)鐘模塊原理
DS3231(圖11-12)是一個(gè)時(shí)鐘模塊,其實(shí)就是像一個(gè)電子時(shí)鐘,它自身帶有電池,當(dāng)設(shè)置好時(shí)間后,DS3231就會(huì)自動(dòng)走時(shí)。DS3231與開發(fā)板之間的通訊是通過I2C接口來完成的。I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)兩根線即可在連接于總線上的器件之間傳送信息。SDA和SCL都是雙向I/O線,連接時(shí),只需要將DS3231上的SDA和SCL與TurnipBit擴(kuò)展板上的SDA和SCL相連即可。
1.png
(132.24 KB, 下載次數(shù): 41)
下載附件
2018-6-26 11:18 上傳
四、接線方法:
TurnipBit擴(kuò)展板與發(fā)光二極管接口對(duì)應(yīng)如下表:
2.png
(8.13 KB, 下載次數(shù): 51)
下載附件
2018-6-26 11:18 上傳
五、 源代碼:
from microbit import *
DS3231_ADDR = 0x68
DS3231_REG_SEC = b'\x00'
DS3231_REG_MIN = b'\x01'
DS3231_REG_HOUR = b'\x02'
DS3231_REG_DAY = b'\x04'
DS3231_REG_MONTH = b'\x05'
DS3231_REG_YEAR = b'\x06'
DS3231_REG_TEMP = b'\x11'
class DS3231(object):
def __init__(self):
pass
def DATE(self, dat=[]):
if dat==[]:
t = []
t.append(self.year())
t.append(self.month())
t.append(self.day())
return t
else:
self.year(dat[0])
self.month(dat[1])
self.day(dat[2])
def TIME(self, dat=[]):
if dat==[]:
t = []
t.append(self.hour())
t.append(self.min())
t.append(self.sec())
return t
else:
self.hour(dat[0])
self.min(dat[1])
self.sec(dat[2])
def DateTime(self, dat=[]):
if dat==[]:
return self.DATE() + self.TIME()
else:
self.year(dat[0])
self.month(dat[1])
self.day(dat[2])
self.hour(dat[3])
self.min(dat[4])
self.sec(dat[5])
def dec2hex(self, dat):
return (int(dat/10)<<4) + (dat%10)
def setREG(self, dat,reg):
buf = bytearray(2)
buf[0] = reg[0]
buf[1] = dat
i2c.write(DS3231_ADDR,buf, repeat=False)
def getREG_DEC(self,reg):
i2c.write(DS3231_ADDR,reg)
t = i2c.read(DS3231_ADDR,1)[0]
#print("--===",t,"----------")
return (t>>4)*10 + (t%16)
def sec(self, sec=''):
if sec == '':
return self.getREG_DEC(DS3231_REG_SEC)
else:
self.setREG(self.dec2hex(sec), DS3231_REG_SEC)
def min(self, min=''):
if min == '':
return self.getREG_DEC(DS3231_REG_MIN)
else:
self.setREG(self.dec2hex(min), DS3231_REG_MIN)
def hour(self, hour=''):
if hour=='':
return self.getREG_DEC(DS3231_REG_HOUR)
else:
self.setREG(self.dec2hex(hour), DS3231_REG_HOUR)
def day(self, day=''):
if day=='':
return self.getREG_DEC(DS3231_REG_DAY)
else:
self.setREG(self.dec2hex(day), DS3231_REG_DAY)
def month(self, month=''):
if month=='':
return self.getREG_DEC(DS3231_REG_MONTH)
else:
self.setREG(self.dec2hex(month), DS3231_REG_MONTH)
def year(self, year=''):
if year=='':
return self.getREG_DEC(DS3231_REG_YEAR)
else:
self.setREG(self.dec2hex(year), DS3231_REG_YEAR)
def TEMP(self):
i2c.write(DS3231_ADDR,DS3231_REG_TEMP, repeat=False)
t1 = i2c.read(DS3231_ADDR,1, repeat=False)[0]
i2c.write(DS3231_ADDR,b'\x12', repeat=False)
t2 = i2c.read(DS3231_ADDR,1, repeat=False)[0]
if t1>0x7F:
return t1 - t2/256 -256
else:
return t1 + t2/256
ds=DS3231()
ds.DATE([17,10,24])
ds.TIME([10,03,00])
while True:
Time=ds.TIME()
Time_s=''
for i in Time:
Time_s+=str(i)+':'
display.scroll(Time_s[:-1]+"-")
#print(Time)
#print(ds.TEMP())
sleep(1000)
復(fù)制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美精品在线观看视频
|
欧美精品成人
|
四虎黄色片
|
在线观看日韩
|
日韩久久网
|
国产精品毛片va一区二区三区
|
国产精品羞羞答答
|
中文字幕一区二区三区在线观看
|
av网页在线观看
|
毛片网站免费
|
亚欧av在线
|
男女交配网站
|
亚洲免费久久
|
国产黄色在线播放
|
久久久久久久久久国产
|
欧美特黄一级片
|
毛片毛片毛片
|
精品一区二区视频
|
国产精品一品二区三区的使用体验
|
国产成人精
|
天天看片天天爽
|
视频一区在线观看
|
福利一区福利二区
|
色综合久久综合
|
国产激情网站
|
亚洲成人免费
|
久久综合激情
|
中文字幕在线一区
|
国产精品一区二区在线播放
|
日本一级黄色大片
|
国产三级在线播放
|
秘密爱大尺度做爰呻吟
|
中国av在线播放
|
亚洲天堂免费
|
中文字幕在线观看日韩
|
久久综合在线
|
黄色成人免费网站
|
超碰在线成人
|
毛片视频免费观看
|
欧美日韩一区在线观看
|
97超碰资源总站
|