[英]How to Add 4 digit numbers and display the sum in Assembly using one variable?
[英]Assembly 2 digit 7 segment display
我在理解應該如何工作方面遇到了一些問題。 基本上我所需要的就是點亮 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
有7種LED顯示屏有兩種類型。 區別在於當1應用於輸入時段是否打開,或者是零。 您必須確定您擁有哪種類型,以及PORTA的引腳如何連接到顯示器的引線。
除此之外,操作原理是相同的。 數字8有7個段和一個點。 這些由您發送PORTA的號碼位控制。
$ 7f要么開啟一個細分市場,要么只打開一個細分市場。 $ ff正在關閉所有細分或全部打開。
您必須確定要打開的段,以及PORTA的哪些位控制這些段。 您會發現$ 7f和$ ff以外的數字是您需要的數字。
你想看到這些片段交替嗎? 如果是這樣,您將需要包含某種延遲循環。 現在代碼改變顯示太快,眼睛看不到。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.