![PIC16F877A數(shù)字時鐘時鐘程序_第1頁](http://file4.renrendoc.com/view/ff51eff19dc1784ec463e25bb74b8d1f/ff51eff19dc1784ec463e25bb74b8d1f1.gif)
![PIC16F877A數(shù)字時鐘時鐘程序_第2頁](http://file4.renrendoc.com/view/ff51eff19dc1784ec463e25bb74b8d1f/ff51eff19dc1784ec463e25bb74b8d1f2.gif)
![PIC16F877A數(shù)字時鐘時鐘程序_第3頁](http://file4.renrendoc.com/view/ff51eff19dc1784ec463e25bb74b8d1f/ff51eff19dc1784ec463e25bb74b8d1f3.gif)
![PIC16F877A數(shù)字時鐘時鐘程序_第4頁](http://file4.renrendoc.com/view/ff51eff19dc1784ec463e25bb74b8d1f/ff51eff19dc1784ec463e25bb74b8d1f4.gif)
![PIC16F877A數(shù)字時鐘時鐘程序_第5頁](http://file4.renrendoc.com/view/ff51eff19dc1784ec463e25bb74b8d1f/ff51eff19dc1784ec463e25bb74b8d1f5.gif)
版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市房屋租賃合同范本
- 上海公寓出租合同范例
- 供熱合同范例封皮
- 2025年垃圾發(fā)電機項目可行性研究報告
- 豫劇樂隊伴奏十字訣
- 分期付合同范例
- 刷白合同范本
- 公司車輛洗車合同范本
- 代理辦理抵押合同范本
- 2025年白影貼面板項目投資可行性研究分析報告
- 防洪防汛安全知識教育課件
- 一年級科學石頭
- 部編人教版八年級語文下冊全冊課件
- 新起點英語二年級下冊全冊教案
- 《紅星照耀中國》整本書閱讀教學設(shè)計-統(tǒng)編版語文八年級上冊
- 【幼兒園戶外體育活動材料投放的現(xiàn)狀調(diào)查報告(定量論文)8700字】
- 帶狀皰疹與帶狀皰疹后遺神經(jīng)痛(HZ與PHN)
- JC-T 746-2023 混凝土瓦標準規(guī)范
- 漢密爾頓抑郁和焦慮量表
- 前列腺癌的診斷與治療
- 人教版八年級數(shù)學初中數(shù)學《平行四邊形》單元教材教學分析
評論
0/150
提交評論