PIC16F877A數(shù)字時鐘時鐘程序_第1頁
PIC16F877A數(shù)字時鐘時鐘程序_第2頁
PIC16F877A數(shù)字時鐘時鐘程序_第3頁
PIC16F877A數(shù)字時鐘時鐘程序_第4頁
PIC16F877A數(shù)字時鐘時鐘程序_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——PIC16F877A數(shù)字時鐘時鐘程序;Digitclock

;;DATE:20231205;Author:TangHS;MCU:PIC16F877A

;FileName:ClockPIC.ASM

;

;Date:{2023/12/07.14:35}-Ver01--CS-ICD:0xAFCEISP:0xb7ce;功能:1.LED顯示:時分秒;格式:[hhmmss]備注:按鍵未定義;;

;Date:{2023/12/07.22:15}-Ver01--CS-ICD:0xAFCEISP:0xb7ce;功能:1.LED顯示:時分秒;格式:[hhmmss]備注:按鍵未定義

;2.RB0-SET_KEY;RB1-ADD_KEY;RB2-SUB_KEY;RB3-EXIT_KEY;

;Date:{2023/12/09.18:06}-Ver02--CS-ICD:0xAFCEISP:0xef0e

;************************************************************;Date:{2023/12/10.00:47}-Ver03--CS-ICD:0xb08dISP:0xfaa7;功能:1.LED顯示:時分秒;格式:[hhmmss]備注:按鍵未定義

;2.RB0-SET_KEY;RB1-ADD_KEY;RB2-SUB_KEY;RB3-EXIT_KEY都OK;3.MOVLW改正MOVVREG,1引起的SUB_不良;;

;Date:{2023/12/10.13:10}-Ver03.1--CS-ICD:0xb08bISP:0xfaa4

;4.時差。50ms原來計數(shù)20次改為19次;250us原來計數(shù)200次改為197次;

;Date:{2023/12/10.17:30}-Ver03.2--CS-ICD:0x296BISP:0x7387;5.在Set_ini中--增加CALLSET_Flag;指定Flag,1=1;標志位-

解決Ver03.1-第一次按SET鍵時不能調(diào)HourL

;************************************************;程序清單

;**************************************************

__CONFIG3F39H;設(shè)置配置位中振蕩方式為XT,其它全部阻止或關(guān)閉;************************************************;includeP16F877A.INC

;

;ramvarableHourHequ20H;HourLequ21H;MinHequ22H;MinLequ23H;SecHequ24h;

SecLequ25h;B'00100101'

;N250usequ26h;250us*200=50ms;N50msequ27h;50ms*20=1000ms;Nsecequ28h;

data1equ29h;定義一個廷時變量寄放器data2equ2Ah;定義另一個廷時變量寄放器

keyvalueEQU2Bh;

FlagKeyEQU2Ch;W_STKequ2Dh;STATUS_STKequ2Eh;PCLATH_STKequ2Fh;

FSR_STKequ30h;

COUNT0equ31h;DELAYuse00110000COUNT1equ32h;COUNT2equ33h;

Flagequ34h;Adjust.Time

N250usequ35h;250us*200=50msN50msequ36h;50ms*20=1000msNsecequ37h;

;Counstant

n1equd'1';d'13';定義一個外層循環(huán)廷時常數(shù)d'13'(10ms)n2equ0ffh;定義一個內(nèi)層廷時常數(shù)RBCOUNSTequ0x1f;rb0~rb4讀取后異或常數(shù);bit1

cequ0;定義進位標志位位地址

rp0equ5;定義狀態(tài)寄放器的頁選位RP0

NOT_RBPUequ7;定義選擇寄放器RB的上拉電阻位RBPUzequ2;定義0狀態(tài)位的位地址F_releaseEQU0;F_pressedequ1;

;FlagKeybit2;#defineF_releaseFlagKey,0;按鍵釋放標志位;#defineF_pressedFlagKey,1;按鍵閉合標志位;Flag;Flag,0;時間調(diào)整標志位;Flag,1;FSR=21H=HourL;Flag,2;FSR=23H=MinL;Flag,3;FSR=25H=SecL

;**************************************************************;ORG0000H

NOP;放置一條ICD必需的空操作指令GOTOMAINORG0004H

GOTOISR_TMR0;

ORG0008H

;******************************************************;NAME:CONMERT1數(shù)碼管位碼查表子程序;

CONVERT1;取數(shù)碼管位碼

ADDWFPCL,1;地址偏移量加當前PC值TABLE1

RETLW0FDH;第一位數(shù)碼管RETLW0FEH;其次位數(shù)碼管RETLW0F7H;第三位數(shù)碼管RETLW0FBH;第四位數(shù)碼管RETLW0DFH;第五位數(shù)碼管RETLW0EFH;第六位數(shù)碼管

;********************************************************;NAME:CONVERT數(shù)碼管段碼查表子程序;

CONVERT;取數(shù)碼管段碼

ADDWFPCL,1;地址偏移量加當前PC值TABLERETLW0C0H;0RETLW0F9H;1RETLW0A4H;2RETLW0B0H;3RETLW99H;4RETLW92H;5RETLW82H;6RETLW0F8H;7RETLW80H;8RETLW98H;9

RETLW7FH;.retlw00h;11

;*************************************************************;///////////--Mainprogram--///////////////////////////////;

;***********************************************************

;return;

;MAIN

CALLSys_ini;CALLClear_RAM;

BSFINTCON,GIE;開啟全局中斷,啟動定時器CALLRAM_ini;LOOP_DIS

CALLDisplay_led;NOP;

bcfSTATUS,RP0;

BTFSCPORTB,0;RB0=0?鍵按下否?GOTOLOOP_DIS;noCALLDisplay_led;YesCALLDisplay_led;

BTFSCPORTB,0;RB0=0?再次確認鍵按下否?GOTOLOOP_DIS;noCALLSet_in;CALLkeyscan;LoopEND

GOTOLOOP_DIS;

;****************************************************Set_in

BSFFlag,0;Set1閃爍顯示處理放在中斷進行MOVLW0x21;HourL->FSRMOVWFFSR;;CALLSET_Flag;BSFFlag,1;1BCFFlag,2;0BCFFlag,3;0

keyscanRealase0;按鍵釋放,子程序名

CALLDisplay_led;

movfPORTB,W;讀取RB口數(shù)據(jù)到W(d=0)andlw0x1f;屏蔽高4位bcfSTATUS,Z;xorlw0x1f;btfssSTATUS,Z;

gotokeyscanRealase0;Z=0有鍵按下;calldelay;Z=1無鍵按下CALLDisplay_led;

CALLDisplay_led;

movfPORTB,W;讀取RB口數(shù)據(jù)到W(d=0)andlw0x1f;屏蔽高4位bcfSTATUS,Z;xorlw0x1f;btfssSTATUS,Z;

gotokeyscanRealase0;Z=0有鍵按下,waittingforrelease;Z=1無鍵按下exit;

RETURN;

;;

KEY0_SUB;SET_KEYINCFFSR,1;21-23-25hINCFFSR,1;MOVFFSR,W;

SUBLW0x27;27>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-BTFSSSTATUS,Z;FSR=27H?GOTO$+3;MOVLW0x21;MOVWFFSR;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論