|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
04-11-2010, 08:40 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2010
Bài gửi: 4
: |
Hiển Thị số 00 - 99 trên led 7 đoạn ( code asm )
Chào mọi người. Em là người mới tham gia vào học PIC. em có viết 1 chương trình để hiển thị các số từ 00 - 99 bằng có asm như nó không chạy được. Em k biết bị lỗi ở chỗ nào, mong mọi người xem giúp và cho em vài ý kiến.
Code như sau: Code:
;========================================= ;CHUONG TRINH DIEU KHIEN LED 7 DOAN HIEN THI CAC SO TU 0 - 99 ;========================================= PROCESSOR 16F877A ;khai bao vi dieu khien INCLUDE <p16f877a.inc> ;file header cua vi dieu khien ;==================================================== ;khai bao cac bien cau hinh __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ;==================================================== ;khai bao dia chi cac thanh ghi dung cho chuong trinh delay count1 EQU 0x20 counta EQU 0x21 countb EQU 0x22 COUNT_DV EQU 0x23 COUNT_CHUC EQU 0x24 ;==================================================== ORG 0x00 ;dia chi bat dau chuong trinh GOTO start start ;chon BANK0 de xoa PORTB, PORTD BCF STATUS,RP0 BCF STATUS,RP1 CLRF PORTB CLRF PORTD ;chon BANK1 de set portb, d la output BSF STATUS,RP0 MOVLW 0x00 MOVWF TRISB MOVLW 0x00 MOVWF TRISD ;chon lai bank 0 de xuat gia tri mong muon ra portb BCF STATUS,RP0 CLRF COUNT_DV CLRF COUNT_CHUC INCF COUNT_CHUC,1 GOTO loop ;QUY DINH. PORT B XUAT HANG CHUC, PORT D XUAT HANG DON VI ;o day dung led co cac cathode noi cung 1 diem. --> sang o muc 1 ;============================================================== loop INCF COUNT_DV,1 MOVF COUNT_DV,0 XORLW D'10' BTFSC STATUS,Z GOTO reset_ GOTO sang reset_ CLRF COUNT_DV INCF COUNT_CHUC,1 GOTO loop sang ;MOVF COUNT_DV,0 CALL table MOVWF PORTD CALL delay_100ms ;----------- COPY NOI DUNG PCL VAO COUNT_DV, SAU DO XOA PCL DI --------- MOVF PCL,0 MOVWF COUNT_DV CLRF PCL ;----------- DUA GIA TRI CUA THANH COUNT_CHUC VAO THANH PCL ----------- MOVF COUNT_CHUC,0 CALL table MOVWF PORTB CALL delay_100ms ;---------- LUU NOI DUNG PCL VAO COUNT_CHUC VA XOA PCL DI ------------- MOVF PCL,0 MOVWF COUNT_CHUC CLRF PCL ;----------- TRO VE CHUONG TRINH CHINH -------------------------------- GOTO loop table ADDWF PCL,1 ;so_0 RETLW b'00111111' ;so_1 RETLW b'00000110' ;so_2 RETLW b'01011011' ;so_3 RETLW b'01001111' ;so_4 RETLW b'01100110' ;so_5 RETLW b'01101101' ;so_6 RETLW b'01111100' ;so_7 RETLW b'00000111' ;so_8 RETLW b'01111111' ;so_9 RETLW b'01101111' delay_100ms MOVLW d'250' MOVWF count1 d1 MOVLW 0xC7 MOVWF counta MOVLW 0x01 MOVWF countb delay_0 DECFSZ counta,1 GOTO $+2 DECFSZ countb,1 GOTO delay_0 DECFSZ count1,1 GOTO d1 RETLW 0x00 END |
|
|