Viết chữ số trờn LE D7 thanh

Một phần của tài liệu bai giang VXL potx (Trang 154 - 156)

Chương trỡnh này là một loại bài tập làm "núng lờn" trước khi làm việc thực tế. Mục đớch của vớ dụ này là để hiển thị trờn màn hỡnh bất cứ điều gỡ đú. Chế độ Multiplex khụng được sử dụng thời gian nàỵ Thay vào đú, 3 chữ số được hiển thị trờn duy nhất một trong số đú (đầu tiờn bờn phải).

Kể từ khi với vi điều khiển, "khụng biết" làm thế nào để viết số 3, một chương trỡnh con nhỏ gọi là Disp được sử dụng (vi điều khiển viết số này là 0000 0011). Điều này cho phộp chương trỡnh con hiển thị tất cả cỏc chữ số thập phõn (0-9). Nguyờn tắc hoạt động rất đơn giản. Một số muốn hiển thị, được cộng vào địa chỉ hiện tại và lệnh nhảy được thực thi, số khỏc muốn hiển thị, sẽ được nhảy đến địa chỉ khỏc.

;************************************************************************ ;* PROGRAM NAME : 7Seg1.ASM

;* DESCRIPTION: Program displays number "3" on 7-segment LED display ;************************************************************************ ;BASIC DIRECTIVES $MOD53 $TITLE(7SEG1.ASM) $PAGEWIDTH(132) $DEBUG $OBJECT $NOPAGING ;STACK

Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 155

DSEG AT 03FH STACK_START: DS 040H ;RESET VECTORS

CSEG AT 0

JMP XRESET ; Reset vector ORG 100H

XRESET: MOV SP,#STACK_START ; Define Stack pointer

MOV P1,#0 ; Turn off all segments on displays MOV P3,#20h ; Activate display D4

LOOP:

MOV A,#03 ; Send number “3” to display LCALL Disp ; Perform appropriate masking for the number MOV P1,A

SJMP LOOP

Disp: ; Subroutine for displaying digits INC A MOVC A,@A+PC RET DB 3FH ; Digit 0 mask DB 06H ; Digit 1 mask DB 5BH ; Digit 2 mask DB 4FH ; Digit 3 mask DB 66H ; Digit 4 mask

Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 156 DB 6DH ; Digit 5 mask DB 7DH ; Digit 6 mask DB 07H ; Digit 7 mask DB 7FH ; Digit 8 mask DB 6FH ; Digit 9 mask END ; End of program

Một phần của tài liệu bai giang VXL potx (Trang 154 - 156)

Tải bản đầy đủ (PDF)

(169 trang)