树莓派平台4位共阴数码管Python编程

admin 2024-11-21 52人围观 ,发现35个评论

初学Python,试着将以前在树莓派上用C语言写的程序改成了Python版本的。四位共阴数码管与树莓派的电路连接方式如下:

a~p------------------------------GPIO0~GPIO7

d1~d4-----------------------------GPIO11~GPIO8

下面是电路连接好之后的照片:

连接好电路之后写程序,程序代码如下:

0~9

pins=[11,12,13,15,16,18,22,7,3,5,24,26]

bits=[BIT0,BIT1,BIT2,BIT3]

defprint_msg():

print'Programisrunning'

print'PleasepressCtrl+Ctheprogram'

defdigitalWriteByte(val):

(11,val(0x010))

(12,val(0x011))

(13,val(0x012))

(15,val(0x013))

(16,val(0x014))

(18,val(0x015))

(22,val(0x016))

(7,val(0x017))

defdisplay_1():

(BIT0,)

foriinrange(10):

digitalWriteByte(segCode[i])

(0.5)

defdisplay_2():

forbitinbits:

(bit,)

foriinrange(10):

digitalWriteByte(segCode[i])

(0.5)

defdisplay_3(num):

b0=num%10

b1=num%100/10

b2=num%1000/100

b3=num/1000

ifnum10:

(BIT0,)

(BIT1,)

(BIT2,)

(BIT3,)

digitalWriteByte(segCode[b0])

elifnum=10andnum100:

(BIT0,)

digitalWriteByte(segCode[b0])

(0.002)

(BIT0,)

(BIT1,)

digitalWriteByte(segCode[b1])

(0.002)

(BIT1,)

elifnum=100andnum1000:

(BIT0,)

digitalWriteByte(segCode[b0])

(0.002)

(BIT0,)

(BIT1,)

digitalWriteByte(segCode[b1])

(0.002)

(BIT1,)

(BIT2,)

digitalWriteByte(segCode[b2])

(0.002)

(BIT2,)

elifnum=1000andnum10000:

(BIT0,)

digitalWriteByte(segCode[b0])

(0.002)

(BIT0,)

(BIT1,)

digitalWriteByte(segCode[b1])

(0.002)

(BIT1,)

(BIT2,)

digitalWriteByte(segCode[b2])

(0.002)

(BIT2,)

(BIT3,)

digitalWriteByte(segCode[b3])

(0.002)

(BIT3,)

else:

print'Outofrange,numshouldbe0~9999!'

defsetup():

()setallpins'modeisoutput

(pin,)Whenprograming,thefunctionisexecuted.

forpininpins:

(pin,)setallpins'modeisinput

if__name__=='__main__':#Programstartingfromhere

setup()

try:

loop()

exceptKeyboardInterrupt:

destroy()

猜你喜欢
    不容错过