Я пытаюсь сделать что-то вроде this. Проблема в том, что я не могу построить цикл, который это делает. Мультиплексирование строки чисел в python для параллельного порта
Вот мой код:
import parallel
import time
p=parallel.Parallel() #object to use the parallel port
print ("Enter a string of numbers: ")
numStr = raw_input() #read line
numList=list(numSTr) #converts string to list
numlen=len(numList) #the length of the list
numBin=[['1','0001'], ['2','0010'],
['4','0100'], ['5','0101'],
['6','0110'], ['7','0111'],
['8','1000'], ['9','1001'],
['3','0011'], ['0','0000']] #Less significant bits of the numbers from 0 to 9 in a bidimesional array
p.setData(0) #clear the displays
pos=['0001','0010','0100','1000'] #Unique possible positions for the number from 0 to 9.
c=(str(pos[])+str((numBin[][1]))) #here if the number in the list numList exist and also is in numBin. It joins the position and the number in binary, creating an number that will be send in decimal to the parallel port.
p.setData(int(c,2)) #send the binary number in decimal
Если кто-то может помочь мне, что было бы отрадно
Наиболее значимые биты, которые в numBin, определяют то, что дисплей включается. И тем менее значимым является число. Например:
Строка: {'7', '1', '5', '4', '8'}. Таким образом, первое число, отображаемое на последнем дисплее, равно «7». Итак, мы берем двоичный код 7, который является «0111», и соединяем эту двоичную строку с первой позицией отображения, которая является «0001». Итак, мы создаем двоичное число: '00010111'. Мы преобразуем это число в десятичное и отправим его на параллельный порт. Параллельный порт включает дисплей las и показывает номер 7. Во второй раз он должен отображать «7» и «1» во втором и первом положениях и так далее.
X X X X
X X X 7
X X 7 1
X 7 1 5
7 1 5 4
1 5 4 8
5 4 8 X
4 8 X X
8 X X X
X X X X
«X» означает, что дисплей выключен, а число представляет себя в положение дисплея, как вы можете видеть в цепи.
Трудно угадать, что подключен к параллельному порту. У вас есть схема или некоторые спецификации? –
http://i.imgur.com/RFeJi.gif – aerojun
Параллельный порт имеет 8 линий передачи данных и 3 других выхода. Я не думаю, что вы можете управлять светодиодом очень ярко непосредственно с выходов, поэтому я думаю, что еще нет недостающей схемы. –