PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 26-10-2007, 05:21 AM   #15
Dolphin
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 43
:
Mình đang làm clock dùng Pic16f84A, dùng Xtal 32,768kHz, ngắt TMR0. Đang viết code phần hiển thị thời gian nhưng không hiểu sao khi mô phỏng bằng Proteus thì bị lỗi. Ai thấy lỗi chỗ nào chỉ hộ tí.

;------------Program Listing, Clock.asm ------------------------------
list p=16F84A
#include <p16F84A.inc>

ERRORLEVEL -302
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _LP_OSC

;--------------------- Define Variables -------------------------------
HOURS equ 21h
MINUTES equ 22h
HOURS_A equ 23h
MINUTES_A equ 24h
MONTH equ 25h
DAYS equ 26h
WEEKDAY equ 27h
SECONDS equ 28h
AMPM_A equ 29h
TIMER_LIMIT equ 2ah
AMPM equ 2bh
DAYLIGHT equ 2ch
YEAR equ 2dh
CORRECTION equ 2eh
TEMP equ 35h
TENS equ 36h
TEMPW equ 37h
SWITCH equ 38h
STATUS_SAVE equ 39h
TEMP1 equ 3ah
ALARM equ 3bh
LIMIT equ 3dh
TEMP_SAVE equ 3eh
TIMER equ 3fh
AMPM_LED equ 40h
COUNTER equ 41h


;--------------------- Program Starts here --------------------------
org 0
goto INIT
org 0x04
goto Int
;--------------------- Interrupt routine to update time -------------
Int
movwf TEMPW ;
swapf STATUS,0 ;
movwf STATUS_SAVE ;
bcf STATUS,RP0 ;
incf SECONDS,f ;

movlw d'60'
xorwf SECONDS,0
btfss STATUS,2 ;
goto Done ;
clrf SECONDS
incf MINUTES,f
movlw d'60'
xorwf MINUTES,0
btfss STATUS,2 ;
goto Done ;
clrf MINUTES
incf HOURS,f
movlw d'24'
xorwf HOURS,0
btfss STATUS,2 ;
goto Done ;
clrf HOURS
Done
bcf INTCON,2
swapf STATUS_SAVE,0
movwf STATUS
swapf TEMPW,f
swapf TEMPW,0
retfie

;--------------------- End Interrupt Procedure ----------------------


INIT ; Initialize variables

bsf STATUS,RP0 ;
bcf STATUS,RP1 ;
movlw b'00000000'
movwf TRISB ;
movlw b'11100000' ;
movwf TRISA ;
movlw b'00000100' ; Scale 1/32
movwf OPTION_REG
bcf STATUS,5 ;
bcf STATUS,0 ;
bcf STATUS,2 ;
bcf STATUS,1 ;
bsf INTCON,5 ;
bcf INTCON,2 ;
bsf INTCON,7 ;
clrf SECONDS
clrf HOURS ;
clrf MINUTES ;
goto Main

Array ; Data for 7 segment digits
addwf PCL,1
retlw b'01000000' ; "0"
retlw b'01111001' ; "1"
retlw b'00100100' ; "2"
retlw b'00110000' ; "3"
retlw b'00011001' ; "4"
retlw b'00010010' ; "5"
retlw b'00000010' ; "6"
retlw b'01111000' ; "7"
retlw b'00000000' ; "8"
retlw b'00010000' ; "9"

Main ; ------------ Main Loop ----------------------

call Display ; Display data
goto Main

;--------------------- End of Main Loop ------------------------------

Output ; Write data to port B
call Array
iorwf ALARM,0
movwf PORTB
return


Delay ;------------------------ Delay ---- about 600 uS ------------

movlw d'25'
Delay_0
movwf TEMP1
Delay_1 movwf COUNTER
Delay_2 decfsz COUNTER,f
goto Delay_2
decfsz TEMP1,f
goto Delay_1
return

Digits ; Converts value in TEMP to 2 single digits - TENS and TEMP

clrf TENS
movlw d'10'
Loop
incf TENS,f
subwf TEMP,f
btfss STATUS,0
goto Ones
goto Loop
Ones
decf TENS,f
addwf TEMP,f
return

Display ; -------------------- Display Data -----------------------
;*********************Display Hour***************************
movf HOURS,W
movwf TEMP
call Digits
;******Display Tens of Hour*******
movfw TENS ;
call Output
movlw b'00000001'
movwf PORTA
call Delay
;******Display Units of Hour*******
movfw TEMP
call Output
movlw b'00000010'
movwf PORTA
call Delay
;*********************Display Minute************************
movf MINUTES,W
movwf TEMP
call Digits
;******Display Tens of Minute*******
movfw TENS
call Output
movlw b'00000100'
movwf PORTA
call Delay
;******Display Units of Minute*******
movfw TEMP
call Output
movlw b'00001000'
movwf PORTA
call Delay
return
end
File Kèm Theo
File Type: txt Clock.txt (6.0 KB, 86 lần tải)
File Type: rar Clock_beta.rar (13.9 KB, 133 lần tải)
Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:28 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam