我有一个理解如何工作的问题。基本上我所需要的只是在7段显示器的每一侧点亮一个LED。它们相互重叠或仅在左侧或右侧显示。如果有人能让我走上正轨就会很好。谢谢。
像这样的东西
;Port Addresses
.equ DDRA =$1A ;Port A Data Direction Register Address
.equ PORTA =$1B ;Port A Output Address
.equ PINB =$16 ;Port B Input Address
.equ DDRB =$17 ;Port B Data Direction Register Address
.equ PINC =$13 ;Port C Input Address
.equ DDRC =$14 ;Port C Data Direction Register Address
.equ PORTD =$12 ;Port D Output Address
.equ DDRD =$11 ;Port D Dara Direction Register Address
;Register Definitions
.def temp =r16 ;Temporary storage register
;Program Initialisation
;Initialise Input Ports
ldi temp,$00
out DDRB,temp
out DDRC, temp
;Initialise output ports
ldi temp,$FF
out DDRA,temp
out DDRD,temp
loop: ldi r17,$7f ; left side
out PORTA,r17
ldi r18, $ff ; right side
out PORTA,r18
rjmp loop
答案 0 :(得分:0)
有7种LED段显示器有两种类型。区别在于当1应用于输入时段是否打开,或者是零。您必须确定您拥有哪种类型,以及PORTA的引脚如何连接到显示器的引线。
除此之外,操作原理是相同的。数字8有7个段和一个点。这些由您发送PORTA的号码位控制。
$ 7f要么开启一个细分市场,要么只打开一个细分市场。 $ ff正在关闭所有细分或全部打开。
您必须确定要打开的段,以及PORTA的哪些位控制这些段。您会发现$ 7f和$ ff以外的数字是您需要的数字。
您希望能够看到这些片段交替吗?如果是这样,您将需要包含某种延迟循环。现在代码改变显示太快,眼睛无法看到。