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

Một phần của tài liệu TRƯ NG BI H C K THU T CÔNG NGHI PKHOA I N TMÔN K THU T MÁY TÍNHBÀI GI NG PHÁT CHO SINH (Trang 153 - 155)

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

Hỡnh 4-5 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

155 DB 66H ; Digit 4 mask 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 TRƯ NG BI H C K THU T CÔNG NGHI PKHOA I N TMÔN K THU T MÁY TÍNHBÀI GI NG PHÁT CHO SINH (Trang 153 - 155)

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

(168 trang)