Assembly 组件2位7段显示
我有一个小问题,就是不知道该如何工作。基本上我所需要的就是点亮7段显示器两侧的led。它们相互重叠或仅显示在左侧或右侧。如果有人能让我走上正轨就好了。多谢各位 像这样的Assembly 组件2位7段显示,assembly,avr,Assembly,Avr,我有一个小问题,就是不知道该如何工作。基本上我所需要的就是点亮7段显示器两侧的led。它们相互重叠或仅显示在左侧或右侧。如果有人能让我走上正轨就好了。多谢各位 像这样的 ;Port Addresses .equ DDRA =$1A ;Port A Data Direction Register Address .equ PORTA =$1B ;Port A Output Address .equ
;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
有两种类型的7段LED显示屏。不同之处在于,当对输入应用1或0时,段是打开的。你必须确定你有哪一种,以及PORTA的引脚如何连接到显示器的引线上 除此之外,操作原理是相同的。有七段数字8和一个点。这些是由您发送的端口号的位控制的 $7f要么在一个细分市场,要么在一个细分市场之外的所有细分市场$ff正在关闭所有线段或将其全部打开 您必须确定要打开哪些段,以及PORTA的哪些位控制这些段。你会发现除了$7f和$ff之外的数字是你需要的数字
是否希望能够看到分段的交替?如果是这样,您将需要包含某种延迟循环。现在的代码更改显示速度太快,眼睛看不见。我们不知道LED是如何连接到引脚的。其含义是,它们相互重叠或仅显示在左侧或右侧。这是非常不清楚的。通常,每个7段数字的每个段都分配给端口中的某个位,如果存在点,则可能分配给点的另一位。你需要知道这些作业是什么,然后问题就变得容易了。没有这些细节,这里没有人能提供更多帮助。