版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 論文題目: 基于單片機(jī)的數(shù)字電子鐘 </p><p> 課程名稱: 單片機(jī)原理機(jī)接口技術(shù) </p><p><b> 目錄1</b></p><p><b> 設(shè)計(jì)任務(wù)書</b></p><p> 個(gè)性化電子鐘功能描述</p><p>
2、 單片機(jī)系統(tǒng)原理圖及工作原理描述</p><p><b> 程序模塊框圖</b></p><p><b> 程序清單</b></p><p> 設(shè)計(jì)或調(diào)試過程中碰到的問題及決計(jì)方法</p><p> 測試數(shù)據(jù),誤差分析,補(bǔ)償方法,補(bǔ)償前后精度比較</p><p>&l
3、t;b> 收獲及意見</b></p><p><b> 附錄(完整電路圖)</b></p><p><b> 目錄2</b></p><p><b> 目錄12</b></p><p><b> 目錄23</b></p
4、><p> 一、課程設(shè)計(jì)任務(wù)書4</p><p><b> 1)基本要求4</b></p><p> 2)設(shè)計(jì)報(bào)告要求:4</p><p> 3)課程設(shè)計(jì)驗(yàn)收標(biāo)準(zhǔn):5</p><p> 二、個(gè)性化電子鐘功能描述5</p><p> 1.基本計(jì)時(shí)
5、功能:5</p><p><b> 2.校準(zhǔn)功能5</b></p><p><b> 3.鬧鐘模式6</b></p><p> 三、單片機(jī)系統(tǒng)原理圖及工作原理描述6</p><p> 1.各模塊介紹6</p><p> 2.單片機(jī)系統(tǒng)總圖9&l
6、t;/p><p> 四、程序模塊框圖9</p><p><b> 1.功能框圖9</b></p><p> 2.程序框圖10</p><p> 五、程序清單11</p><p><b> ;變量定義11</b></p><p>
7、<b> ;初始化12</b></p><p> ;主要執(zhí)行程序12</p><p> ;按鍵P3.7檢測程序13</p><p> ;顯示模式選擇程序13</p><p> ; 中斷服務(wù)程序14</p><p> ;鬧鐘顯示及轉(zhuǎn)碼程序16</p><p
8、> ;檢測鬧鐘程序18</p><p> ; 顯示時(shí)分秒程序18</p><p> ; 顯示年月日的程序22</p><p> ;年月日校準(zhǔn)程序26</p><p> ;按鍵檢測程序28</p><p><b> ;功能小程序34</b></p><
9、;p> 六、設(shè)計(jì)或調(diào)試過程中碰到的問題及解決方法37</p><p> 1.存儲(chǔ)錯(cuò)亂37</p><p> 2.工作區(qū)的選擇38</p><p> 3.鬧鐘響的時(shí)間38</p><p> 4.按鍵紊亂39</p><p> 七、測試數(shù)據(jù),誤差分析,補(bǔ)償方法,補(bǔ)償前后精度比較39
10、</p><p> a)未考慮月份不同天數(shù)39</p><p> b)中斷服務(wù)程序造成的時(shí)間延遲39</p><p> 八、收獲及意見40</p><p> 九、附錄(完整電路圖)40</p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p&g
11、t;<b> 基本要求</b></p><p> 根據(jù)《單片機(jī)原理及接口技術(shù)》所學(xué)的內(nèi)容及其他相關(guān)課程的知識,結(jié)合各生的基礎(chǔ),充分發(fā)揮個(gè)人的特長,設(shè)計(jì)個(gè)性化數(shù)字電子鐘。具體要求以下:</p><p><b> 基本電路</b></p><p> AT89S51CPU,12MHZ時(shí)鐘,常規(guī)上電和手動(dòng)復(fù)位電路。<
12、/p><p><b> 數(shù)碼管顯示模式</b></p><p> 4位LED數(shù)碼顯示器(帶鐘點(diǎn)),分別顯示“小時(shí):分鐘”或“分鐘:秒”</p><p><b> 獨(dú)立按鍵</b></p><p> 3個(gè)獨(dú)立試按鍵,具體功能描述如下:</p><p> [MODE]——模
13、式轉(zhuǎn)換鍵,具有“正常——小時(shí)(校準(zhǔn))——分鐘(校準(zhǔn))——小時(shí)(鬧鈴)——分鐘(鬧鈴)”等5種模式,每按一次,轉(zhuǎn)換一種模式。假設(shè)當(dāng)前處于正常模式,按一下此鍵,“小時(shí)”閃爍,表示進(jìn)入“小時(shí)”調(diào)校模式,再按一次,轉(zhuǎn)入分鐘模式,如此類推,正常模式下不閃爍。</p><p> [UP]——加“1”鍵,按下此鍵,被選中的項(xiàng)目加“1”</p><p> [DOWN]——減“1”鍵,按下此鍵,被選中的
14、項(xiàng)目減“1”</p><p><b> 蜂鳴器</b></p><p> 設(shè)計(jì)1路蜂鳴器輸出驅(qū)動(dòng)電路,用于報(bào)警或按鍵聲</p><p><b> 電源電路</b></p><p> 電源:9V交流輸入,全波整流,濾波,7805穩(wěn)壓電路,輸出5V直流電源共給單片機(jī)系統(tǒng)。</p>
15、<p><b> 軟件</b></p><p> 編寫數(shù)字電字鐘的所有軟件,包括主程序,定時(shí)器中斷計(jì)時(shí)程序,定時(shí)器中斷掃描顯示程序,鍵盤掃描及功能程序,BCD碼轉(zhuǎn)換程序,“二翻十﹑拆字﹑轉(zhuǎn)碼”程序,鬧鈴程序等等。將這些程序整合成一個(gè)完整的電子鐘程序,在軟件模擬器上調(diào)試,在MCS51學(xué)習(xí)機(jī)上調(diào)試,并測試其功能及性能。在設(shè)計(jì)軟件時(shí),學(xué)生可充分發(fā)揮自己的特長和想象力,自行擴(kuò)充功能,如
16、“秒表”功能,通信功能,鐘控功能等。</p><p><b> 精度分析</b></p><p> 在程序調(diào)試通過后,測試計(jì)時(shí)精度,分析誤差來源,提出補(bǔ)償方法。</p><p><b> 設(shè)計(jì)報(bào)告要求:</b></p><p> 每人一份設(shè)計(jì)報(bào)告,要求獨(dú)立完成,用統(tǒng)一的封面裝訂,設(shè)計(jì)報(bào)告的內(nèi)
17、容包括以下部分:</p><p><b> 設(shè)計(jì)任務(wù)書</b></p><p> 個(gè)性化電子鐘功能要求</p><p> 單片機(jī)系統(tǒng)原理圖及工作原理描述</p><p><b> 程序模塊框圖</b></p><p><b> 程序清單</b>
18、</p><p> 設(shè)計(jì)或調(diào)試過程中碰到的問題及決計(jì)方法</p><p> 測試數(shù)據(jù),誤差分析,補(bǔ)償方法,補(bǔ)償前后精度比較</p><p> 完成課程設(shè)計(jì)后的收獲或體會(huì),對《單片機(jī)課程設(shè)計(jì)》提出改進(jìn)意見。</p><p><b> 課程設(shè)計(jì)驗(yàn)收標(biāo)準(zhǔn):</b></p><p> 本次課程設(shè)
19、計(jì)的成績由3大部分組成:即硬件設(shè)計(jì)﹑軟件設(shè)計(jì)和課程設(shè)計(jì)報(bào)告。硬件設(shè)計(jì)主要是電路圖設(shè)計(jì)(可以用手工畫或計(jì)算機(jī)輔助設(shè)計(jì))。軟件部分在答辯時(shí)驗(yàn)收,并結(jié)合答辯情況進(jìn)行評定。</p><p> 電路原理圖設(shè)計(jì)(20%),</p><p><b> 包括以下知識點(diǎn):</b></p><p> CPU及時(shí)鐘,復(fù)位電路</p><p&
20、gt;<b> 顯示接口電路</b></p><p><b> 鍵盤接口電路</b></p><p><b> 蜂鳴器驅(qū)動(dòng)電路</b></p><p><b> 電源部分</b></p><p> 軟件設(shè)計(jì)及答辯(60%),包括以下知識點(diǎn):<
21、;/p><p><b> 主程序及初始化程序</b></p><p><b> 定時(shí)中斷及計(jì)時(shí)程序</b></p><p><b> 定時(shí)中斷及顯示程序</b></p><p><b> 鍵盤程序</b></p><p><
22、;b> 鬧鈴程序</b></p><p><b> 按鍵聲程序</b></p><p> 課程設(shè)計(jì)報(bào)告(20%),具體要求見上面所述.</p><p> 基礎(chǔ)較好的學(xué)生可以結(jié)合實(shí)際應(yīng)用自擬題目,題目和具體設(shè)計(jì)內(nèi)容定好后</p><p><b> 由指導(dǎo)老師比準(zhǔn)。</b>&
23、lt;/p><p><b> 指導(dǎo)老師:樂金松</b></p><p> 2014,12,28</p><p> 個(gè)性化電子鐘功能描述</p><p><b> 基本計(jì)時(shí)功能:</b></p><p> 上電顯示時(shí)鐘、分鐘、秒,時(shí)鐘和分鐘顯示小數(shù)點(diǎn)以做區(qū)分</p&
24、gt;<p> 當(dāng)P3.7鍵按下,顯示年月日,因?yàn)楸容^方便觀察,并沒有設(shè)置小數(shù)點(diǎn)以作區(qū)分。</p><p><b> 校準(zhǔn)功能</b></p><p> 上電顯示為時(shí)分秒或年月日</p><p> 當(dāng)P3.4按下一次,校準(zhǔn)時(shí)鐘位,時(shí)鐘位閃爍</p><p> 當(dāng)P3.4按下兩次,校準(zhǔn)分鐘位,分鐘位
25、閃爍</p><p> 當(dāng)P3.4按下三次,校準(zhǔn)秒位,秒位閃爍,注意,此時(shí)若是顯示年月日模式,調(diào)整無效,數(shù)碼管熄滅</p><p> 當(dāng)P3.4按下四次,校準(zhǔn)年的高位,年的高位閃爍</p><p> 當(dāng)P3.4按下五次,校準(zhǔn)年的低位,年的低位閃爍</p><p> 當(dāng)P3.4按下六次,校準(zhǔn)月份位,月份位閃爍</p>&l
26、t;p> 當(dāng)P3.4按下七次,校準(zhǔn)日位,日位閃爍,此時(shí)若是顯示時(shí)分秒模式,調(diào)整無效,數(shù)碼管熄滅,其中,若P3.5鍵按下,加1,若P3.6鍵按下,減1</p><p> 當(dāng)P3.4按下八次或九次,為鬧鐘校準(zhǔn)模式</p><p> 當(dāng)P3.4按到十次,恢復(fù)顯示年月日或者時(shí)分秒</p><p><b> 鬧鐘模式</b></p&g
27、t;<p> 當(dāng)P3.4按到八次,時(shí)鐘和分鐘位顯示初始時(shí)間(12:00),設(shè)置小時(shí)鬧鐘。若P3.5鍵按下,加1,若P3.6鍵按下,減1</p><p> 當(dāng)P3.4按到九次,設(shè)置分鐘鬧鐘,若P3.5鍵按下,加1,若P3.6鍵按下,減1</p><p> 即使沒有設(shè)置鬧鐘,在時(shí)間為12:00時(shí),也會(huì)啟動(dòng)鬧鐘,鬧鐘聲音為十次簡短的鳴聲。</p><p&g
28、t; 單片機(jī)系統(tǒng)原理圖及工作原理描述</p><p><b> 各模塊介紹</b></p><p> CPU及時(shí)鐘,復(fù)位電路</p><p><b> 復(fù)位電路</b></p><p> 功能描述:上電時(shí),單片機(jī)會(huì)自動(dòng)復(fù)位,按下S1按鍵時(shí),手動(dòng)復(fù)位,該電子鐘系統(tǒng)會(huì)從0開始計(jì)時(shí)。</p
29、><p><b> 時(shí)鐘</b></p><p> 此電路系統(tǒng)配置的是12MHZ的晶振,擁有這個(gè)晶振,電路才會(huì)計(jì)時(shí)、中斷系統(tǒng)才會(huì)溢出。</p><p><b> CPU</b></p><p> 此電子鐘系統(tǒng)采用的是STC公司的89C52單片機(jī),本電路主要使用其P0口(數(shù)碼管)、P3口(按鍵)、
30、和P1口(蜂鳴器),該單片機(jī)內(nèi)部含有運(yùn)算器、存儲(chǔ)器、控制器、輸入輸出設(shè)備等。</p><p><b> 顯示接口電路</b></p><p> 這個(gè)開發(fā)板需要兩個(gè)鎖存器分別控制位選和斷選,只有位選控制端置一,才能送位選信號,同理,斷選控制端置一,才能送段選信號。</p><p><b> 鍵盤接口電路</b><
31、/p><p> 此按鍵,按下為0,松開為1。</p><p><b> 蜂鳴器驅(qū)動(dòng)電路</b></p><p> 蜂鳴器送邏輯1的時(shí)候才能發(fā)出聲音。</p><p><b> 電源部分</b></p><p> 此電源用LM317芯片進(jìn)行整流,進(jìn)行濾波和穩(wěn)壓后,通過調(diào)節(jié)
32、電位器,可以把輸入的9V電壓轉(zhuǎn)變成5V的電壓。</p><p><b> 單片機(jī)系統(tǒng)總圖</b></p><p><b> ?。ㄔ斠姼戒洠?lt;/b></p><p><b> 程序模塊框圖</b></p><p><b> 功能框圖</b></p
33、><p><b> 程序框圖</b></p><p><b> 程序清單</b></p><p><b> ;變量定義</b></p><p> LED1EQU7FH</p><p> LED2EQU7EH</p><
34、;p> LED3EQU7DH</p><p> LED4EQU7CH</p><p> LED5EQU7BH</p><p> LED6EQU7AH</p><p> LED1_2EQU6CH</p><p> LED2_2EQU6BH</p><
35、;p> LED3_2EQU6AH</p><p> LED4_2EQU69H</p><p> LED5_2EQU68H</p><p> LED6_2EQU67H</p><p> LED7_2EQU66H</p><p> LED8_2EQU65H</p&
36、gt;<p> SCAN_COUNT2EQU64H</p><p> MODE2EQU60H</p><p> SCAN_COUNT3EQU5FH</p><p> SCAN_COUNT4EQU5EH</p><p> LED1_CLOCK_HOUR EQU5DH</p>
37、<p> LED2_CLOCK_HOUREQU5CH</p><p> LED1_CLOCK_MIN EQU5BH</p><p> LED2_CLOCK_MINEQU5AH</p><p> H_MEM_CLOCKEQU59H</p><p> M_MEM_CLOCKEQU58
38、H</p><p> SCAN_COUNT5EQU57H</p><p> SCAN_COUNTEQU77H;掃描顯示計(jì)數(shù)器</p><p> TEMP1EQU76H</p><p> TEMP2EQU75H</p><p> TEMP3EQU74H</
39、p><p> H_MEMEQU73H</p><p> M_MEMEQU72H</p><p> S_MEMEQU71H</p><p> D_MEMEQU6DH</p><p> MON_MEMEQU63H</p><p> Y_MEM
40、_1EQU62H</p><p> Y_MEM_2EQU61H</p><p> MODE_REGEQU6FH</p><p> TIMER_COUNTEQU6EH ;定時(shí)器中斷次數(shù)軟件計(jì)數(shù)器</p><p> MODEEQU70H </p><p> TEM
41、P4EQU20H.1</p><p> ;TEMP4EQU6CH</p><p> FLASH_FLAGEQU20H.0;定義閃爍標(biāo)志位</p><p> CLOCK_FLAGEQU20H.2</p><p><b> ;初始化</b></p><p>
42、; ORG0000H</p><p> LJMPMAIN</p><p> ORG0003H;外部中斷0的標(biāo)志</p><p> RETI;中斷標(biāo)志</p><p> ORG000BH;定時(shí)器中斷0的標(biāo)志</p><p> LJMPT0_INT
43、</p><p> ORG0013H;外部中斷1</p><p><b> RETI</b></p><p> ;-------------------------------------------------------------</p><p> ORG0030H;好像一般都有
44、這一句</p><p><b> MAIN:</b></p><p> MOVSP,#2FH</p><p> MOVTL0,#(65536-4608)MOD 256;MOD是取余數(shù),初始化時(shí)間常數(shù)</p><p> MOVTH0,#(65536-4608)/256</p>&
45、lt;p> MOVTMOD,#00000001B;G=0,C/T取T(定時(shí)器),模式為模式1(16位定時(shí)器或計(jì)數(shù)器方式)</p><p> SETBET0;T0(定時(shí)器0中斷)中斷允許 </p><p> SETBTR0;定時(shí)器0控制位,置1</p><p> SETBEA;C
46、PU中斷允許總開關(guān)</p><p> LCALL CLR_MEM</p><p> MOVMON_MEM,#1</p><p> MOVD_MEM,#1</p><p> ;------------</p><p> MOVH_MEM_CLOCK,#12</p>&
47、lt;p><b> CLRP1.4</b></p><p><b> ;主要執(zhí)行程序</b></p><p> ;---------------------------------------------------------------</p><p><b> WAIT:</b>
48、;</p><p> ;LCALLCLOCK_CHOOSE</p><p> ;LCALLDELAY_1S</p><p> LCALLKEY4_SCAN</p><p> LCALLCHOOSE</p><p> LCALLCHECK_TIME</p><p>
49、 SJMPWAIT</p><p> ;按鍵P3.7檢測程序</p><p> ;------------------顯示模式的選擇程序--------------------------------</p><p> ;------------------等待按鍵按下---------------------------</p><p
50、> KEY4_SCAN:</p><p><b> NOKEY_4:</b></p><p> MOVC,P3.7 </p><p><b> CPLC</b></p><p> JNCGATE4;CY為0跳轉(zhuǎn),沒有按鍵,執(zhí)行display程序</p&g
51、t;<p> MOVC,P3.7</p><p> MOVTEMP4,C</p><p> LCALLDELAY_10MS</p><p> MOVC,P3.7</p><p> ORLC,TEMP4</p><p> JNCK4;按下跳轉(zhuǎn)
52、;沒按下,返回</p><p> GATE4:RET</p><p><b> K4:</b></p><p> LCALLSOUND</p><p> INCMODE2</p><p> MOVA,MODE2</p><p> CJNE
53、A,#2,K41 ;mode只能為0或者1 mode為1執(zhí)行display2程序</p><p> MOVMODE2,#0</p><p> K41:JNBP3.7,$</p><p><b> RET </b></p><p><b> ;顯示模式選擇程序</b><
54、/p><p> ;----------無論如何都要選擇一個(gè)模式-------------------------</p><p><b> CHOOSE:</b></p><p> MOVA,MODE2</p><p> CJNEA,#0,NOT_CLOCK0; MODE2為1,判斷是模式8還是模式9<
55、;/p><p> MOVA,MODE ;MODE2為0, 判斷是否為8或者9</p><p> CJNEA,#8,NOT_CLOCK3;MODE2=0的情況下,不為模式8,判斷是否為模式9</p><p> LCALLCONVERT_BCD3;為模式8,調(diào)用display——clock程序</p><p> LCA
56、LLCLOCK_DISPLAY ;為模式8</p><p><b> RET</b></p><p> NOT_CLOCK3:</p><p> CJNEA,#9,NOT_CLOCK4;判斷是否為模式9</p><p> LCALLCONVERT_BCD3 </p><p>
57、 LJMPCLOCK_DISPLAY</p><p><b> RET</b></p><p> NOT_CLOCK4:</p><p> LCALLCONVERT_BCD1 ;不為模式9,調(diào)用顯示程序1</p><p> LCALLCHOOSE_DISPLAY1</p><
58、p><b> RET</b></p><p> NOT_CLOCK0:</p><p> MOVA,MODE</p><p> CJNEA,#8,NOT_CLOCK1;MODE2為1時(shí),不為模式8,判斷是否為模式9</p><p> LCALLCONVERT_BCD3;為模式8,調(diào)用dis
59、play——clock程序</p><p> LCALLCLOCK_DISPLAY</p><p><b> RET</b></p><p> NOT_CLOCK1:</p><p> CJNEA,#9,NOT_CLOCK2;不為模式9,顯示mode2=0下的display程序</p>&
60、lt;p> LCALLCONVERT_BCD3 ;為模式9,調(diào)用clockdisplay程序</p><p> LCALLCLOCK_DISPLAY</p><p><b> RET</b></p><p> NOT_CLOCK2:</p><p> LCALLCONVERT_BCD2;
61、 此時(shí)為mode2模式為1的,選擇閃爍模式,對DISPLAY程序經(jīng)行選擇</p><p> LCALLCHOOSE_DISPLAY2;模式0,display程序</p><p><b> RET</b></p><p> ;-----------顯示模式選擇函數(shù)-----------------------</p>&l
62、t;p> CHOOSE_DISPLAY1:</p><p> MOVA,MODE</p><p> CJNEA,#0,CH_1</p><p> LCALLDISPLAY1 ;模式為0,調(diào)用正常的顯示程序</p><p><b> RET</b></p><p>&l
63、t;b> CH_1:</b></p><p> LCALLDISPLAY1_2</p><p><b> RET</b></p><p> CHOOSE_DISPLAY2:</p><p> MOVA,MODE</p><p> CJNEA,#0,CH_
64、2</p><p> LCALLDISPLAY2 ;模式為0,調(diào)用正常的顯示程序</p><p><b> RET</b></p><p><b> CH_2:</b></p><p> LCALLDISPLAY2_2</p><p><b> R
65、ET</b></p><p><b> ; 中斷服務(wù)程序</b></p><p> ;------------------------中斷服務(wù)程序-------------------------------------</p><p><b> T0_INT:</b></p><p&
66、gt; PUSHACC;保護(hù)現(xiàn)場開始,保護(hù)A累加器</p><p> PUSHPSW;保護(hù)程序狀態(tài)字存儲(chǔ)器</p><p> PUSH DPL;數(shù)據(jù)地址指針(低8位)</p><p><b> PUSHDPH</b></p><p> SETBRS1
67、;選擇2區(qū)工作存儲(chǔ)單元</p><p> MOVTL0,#(65536-5000)MOD 256;恢復(fù)時(shí)間常數(shù)</p><p> MOVTH0,#(65536-5000)/256</p><p> LCALLKEY_SCAN</p><p> INCTIMER_COUNT</p>&
68、lt;p> MOVA,TIMER_COUNT</p><p> CJNEA,#100,T0_INT1;如果A不等于100,跳到TO_INT1</p><p> MOVTIMER_COUNT,#0</p><p> CPLFLASH_FLAG;每5MS*100=500MS取反閃爍標(biāo)志位</p><
69、;p> ;CPLP1.4</p><p> ;LCALLFLASH;CPL:Converse Position Logical 位取反</p><p> JNBFLASH_FLAG,T0_INT1;為0跳到TO_INT1</p><p> INCS_MEM</p><p> MOV
70、A,S_MEM</p><p> CJNEA,#60,T0_INT1;秒位</p><p> MOVS_MEM,#0</p><p> INC M_MEM</p><p> MOVA,M_MEM</p><p> CJNEA,#60,T0_INT1 ;分位</
71、p><p> MOVM_MEM,#0</p><p> INC H_MEM</p><p> MOVA,H_MEM</p><p> CJNEA,#24,T0_INT1</p><p> MOVH_MEM,#0 ;時(shí)位</p><p> INC
72、D_MEM</p><p> MOVA,D_MEM</p><p> CJNEA,#32,T0_INT1</p><p> MOVD_MEM,#1</p><p><b> ;天</b></p><p> INCMON_MEM</p><p&
73、gt; MOVA,MON_MEM</p><p> CJNEA,#13,T0_INT1</p><p> MOVMON_MEM,#1;月</p><p> INCY_MEM_1</p><p> MOVA,Y_MEM_1</p><p> CJNEA,#100,T0
74、_INT1</p><p> MOVY_MEM_1,#0 ;低位年</p><p> INCY_MEM_2</p><p> MOVA,Y_MEM_2</p><p> CJNEA,#100,T0_INT1</p><p> MOVY_MEM_2,#0;高位
75、年</p><p><b> T0_INT1:</b></p><p><b> POPDPH</b></p><p><b> POPDPL</b></p><p><b> POPPSW</b></p><
76、p><b> POPACC</b></p><p> RETI ;出棧</p><p> ;鬧鐘顯示及轉(zhuǎn)碼程序</p><p><b> ;鬧鐘顯示程序</b></p><p> ;--------------------------時(shí)鐘的顯示函數(shù)-----
77、----------------------------</p><p> CLOCK_DISPLAY:</p><p> ;SETBCLOCK_FLASH</p><p> MOVP0,#11111111B</p><p> SETBP2.7</p><p><b> NOP<
78、/b></p><p><b> NOP</b></p><p> CPLP2.7</p><p> MOVA,SCAN_COUNT5</p><p> ADDA,ACC</p><p> MOVR1,A</p><p>
79、 LCALLFLASH3 ;在flash函數(shù)中選擇調(diào)用哪個(gè)表</p><p> ;MOVDPTR,#LED_SCAN_TABLE</p><p> MOVA,R1</p><p> MOVCA,@A+DPTR</p><p> SETBP2.7;位鎖存</p><p
80、> MOVP0,A</p><p> CLRP2.7 </p><p> MOVA,SCAN_COUNT5</p><p> ADDA,ACC</p><p><b> INCA</b></p><p> MOVCA,@A+DPTR
81、</p><p> MOVR0,A</p><p> MOVA,@R0</p><p> SETBP2.6</p><p> MOVP0,A</p><p> ;LCALLDELAY_1S ;調(diào)試用</p><p> CLRP2.6 ;D
82、B3FH,06H,5BH,04FH,66H,6DH,7DH,07H</p><p> ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH </p><p> INCSCAN_COUNT5</p><p> MOVA,SCAN_COUNT5 </p><p> CJNEA,#4,D
83、ONE5</p><p> MOVSCAN_COUNT5,#0</p><p><b> DONE5: </b></p><p><b> RET</b></p><p> ;鬧鐘閃爍及模式選擇程序</p><p> ;----------------時(shí)鐘
84、閃爍模式選擇程序----------------------------</p><p><b> FLASH3:</b></p><p> JNBFLASH_FLAG,F31;若標(biāo)志位位為0,顯示閃爍程序,否則顯示正常模式</p><p> ;LCALLLIGHT_OFF</p><p> LJM
85、P FLASH3</p><p> F31:MOVA,MODE</p><p> CJNEA,#8,F32</p><p> LJMPH_F_CLOCK;模式8,校準(zhǔn)小時(shí)</p><p> F32:;CJNEA,#0,F34;模式為0,則返回?</p><p> LJMPM_
86、F_CLOCK;模式9,校準(zhǔn)分鐘</p><p> F34:RET; </p><p> ;----------------閃爍程序--------------------------</p><p> H_F_CLOCK:</p><p> MOVDPTR,#LED_SCAN_TABLE_CLOCK_1</p>
87、<p><b> RET</b></p><p> M_F_CLOCK:</p><p> MOVDPTR,#LED_SCAN_TABLE_CLOCK_2</p><p><b> RET</b></p><p> ;鬧鐘BCD轉(zhuǎn)碼程序</p><
88、p> ;-----------------------為鬧鐘做BCD轉(zhuǎn)碼----------------</p><p> CONVERT_BCD3:</p><p><b> ;第一個(gè)數(shù)碼管</b></p><p> MOVR3,H_MEM_CLOCK</p><p> MOVR2,#0&l
89、t;/p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH;保留低四位</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVL
90、ED1_CLOCK_HOUR,A</p><p><b> ;第二個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H;保留高四位</p><p> SWAPA</p><p> MOVDPTR,#LED_CODE
91、</p><p> MOVCA,@A+DPTR</p><p> MOVLED2_CLOCK_HOUR,A</p><p><b> ;第三個(gè)數(shù)碼管</b></p><p> MOVR3,M_MEM_CLOCK</p><p> MOVR2,#0</p>
92、<p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED1_CLOCK_MIN,A&l
93、t;/p><p><b> ;第四個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> ;MOVDPTR,#LED_CODE</p>
94、<p> MOVCA,@A+DPTR</p><p> MOVLED2_CLOCK_MIN,A</p><p><b> RET</b></p><p><b> ;檢測鬧鐘程序</b></p><p> ;----------------------檢測是否到達(dá)鬧鐘
95、時(shí)間---------------------------------</p><p> CHECK_TIME:</p><p> MOVA,H_MEM_CLOCK</p><p> CJNEA,H_MEM,OVER2</p><p> CHECK_NEXT:</p><p> MOVA,M_
96、MEM_CLOCK</p><p> CJNEA,M_MEM,OVER2</p><p> MOVA,S_MEM;為了防止整一分鐘都會(huì)叫,只在一秒的時(shí)候判斷一次</p><p> CJNEA,#0,OVER2</p><p> LCALLCLOCK_SOUND</p><p><b>
97、; RET</b></p><p><b> OVER2:</b></p><p><b> RET</b></p><p><b> ; 顯示時(shí)分秒程序</b></p><p><b> ;時(shí)分秒顯示程序</b></p&g
98、t;<p> ;------------------------顯示時(shí)分秒程序--------------------------------------</p><p><b> DISPLAY1:</b></p><p> MOVP0,#11111111B</p><p> SETBP2.7</p>
99、;<p><b> NOP</b></p><p><b> NOP</b></p><p> ;MOVP0,#0FFH</p><p> CPLP2.7</p><p> MOVA,SCAN_COUNT;之前定義過:SCAN_COUNTEQU
100、7BH</p><p> ADDA,ACC</p><p> MOVDPTR,#LED_SCAN_TABLE</p><p> MOVCA,@A+DPTR</p><p> SETBP2.7;位鎖存</p><p> MOVP0,A</p><p
101、> CLRP2.7 </p><p> MOVA,SCAN_COUNT</p><p> ADDA,ACC</p><p><b> INCA</b></p><p> MOVCA,@A+DPTR</p><p> MOVR0,A&
102、lt;/p><p> MOVA,@R0</p><p> MOVR0,SCAN_COUNT</p><p> DOT:CJNER0,#2,NOACT1</p><p> ACT:SETBP2.6</p><p> ORLA,#80H</p><p> MOV
103、P0,A</p><p> SETBP0.7 ;調(diào)試用</p><p> CLRP2.6</p><p> SJMPGO_ON</p><p> NOACT1: CJNER0,#4,NOACT2</p><p><b> SJMPACT</b>&l
104、t;/p><p> NOACT2:SETBP2.6</p><p> MOVP0,A </p><p> CLRP2.6 ;DB3FH,06H,5BH,04FH,66H,6DH,7DH,07H</p><p> ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH &l
105、t;/p><p> GO_ON:INCSCAN_COUNT</p><p> MOVA,SCAN_COUNT </p><p> CJNEA,#6,DONE</p><p> MOVSCAN_COUNT,#0</p><p><b> DONE: </b><
106、/p><p><b> RET</b></p><p><b> ;時(shí)分秒BCD程序</b></p><p> ;-----------------------------------------------------</p><p> CONVERT_BCD1:</p><
107、;p><b> ;第一個(gè)數(shù)碼管</b></p><p> MOVR3,S_MEM</p><p> MOVR2,#0</p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH;保留低四位<
108、/p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED1,A</p><p><b> ;第二個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANL
109、A,#0F0H;保留高四位</p><p> SWAPA</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED2,A</p><p><b> ;第三個(gè)數(shù)碼管</b>&l
110、t;/p><p> MOVR3,M_MEM</p><p> MOVR2,#0</p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH</p><p> MOVDPTR,#LED_CODE</p
111、><p> MOVCA,@A+DPTR</p><p> MOVLED3,A</p><p><b> ;第四個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H</p><p><b> SWA
112、PA</b></p><p> ;MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED4,A</p><p><b> ;第五個(gè)數(shù)碼管</b></p><p> MOVR3,H_MEM<
113、;/p><p> MOVR2,#0</p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p
114、><p> MOVLED5,A</p><p><b> ;第六個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> M
115、OVCA,@A+DPTR</p><p> MOVLED6,A</p><p><b> RET</b></p><p><b> ;二翻十程序</b></p><p> ;------------------二翻十程序----------------------------<
116、;/p><p><b> BTID:</b></p><p><b> CLRA</b></p><p> MOVR4,A</p><p> MOVR5,A</p><p> MOVR6,A</p><p> MOV
117、R7,#16</p><p><b> IBTL:</b></p><p><b> CLRC</b></p><p> MOVA,R3</p><p> RLCA;帶進(jìn)位循環(huán)左移,與LC指令的區(qū)別?</p><p> MOVR3,A
118、</p><p> MOVA,R2</p><p><b> RLCA</b></p><p> MOVR2,A</p><p> MOVA,R6</p><p> ADDCA,R6</p><p> DAA;DA:十進(jìn)制
119、調(diào)整指令,將二進(jìn)制結(jié)果</p><p><b> ;調(diào)整為十進(jìn)制數(shù)</b></p><p> MOVR6,A</p><p> MOVA,R5</p><p> ADDCA,R5</p><p><b> DAA</b></p>
120、<p> MOVR5,A</p><p> MOVA,R4</p><p> ADDCA,R4;在進(jìn)行A+R4前,A的值是多少</p><p><b> DAA</b></p><p> MOVR4,A</p><p> DJNZR7,IB
121、TL ;減1為1跳轉(zhuǎn)</p><p><b> RET</b></p><p> ; 顯示年月日的程序</p><p><b> ;年月日顯示程序</b></p><p> ;-----------------顯示年月日的程序-----------------</p>&
122、lt;p><b> DISPLAY2:</b></p><p> MOVP0,#11111111B</p><p> SETBP2.7</p><p><b> NOP</b></p><p><b> NOP</b></p><p
123、> ;MOVP0,#0FFH</p><p> CPLP2.7</p><p> MOVA,SCAN_COUNT2;之前定義過:SCAN_COUNTEQU7BH</p><p> ADDA,ACC</p><p> MOVDPTR,#LED_SCAN_TABLE2</p
124、><p> MOVCA,@A+DPTR</p><p> SETBP2.7;位鎖存</p><p> MOVP0,A</p><p> CLRP2.7 </p><p> MOVA,SCAN_COUNT2</p><p> ADD
125、A,ACC</p><p><b> INCA</b></p><p> MOVCA,@A+DPTR</p><p> MOVR0,A</p><p> MOVA,@R0</p><p> SETBP2.6</p><p> MOV
126、P0,A</p><p> ;LCALLDELAY_1S</p><p> CLRP2.6 </p><p> INCSCAN_COUNT2</p><p> MOVA,SCAN_COUNT2 </p><p> CJNEA,#8,DONE2</p><
127、p> MOVSCAN_COUNT2,#0</p><p><b> DONE2: </b></p><p><b> RET</b></p><p> ;年月日BCD轉(zhuǎn)碼程序</p><p> ;--------------------------啟用第二段轉(zhuǎn)碼程序----
128、--------------------</p><p> CONVERT_BCD2:</p><p><b> ;第1_2個(gè)數(shù)碼管</b></p><p> MOVR3,D_MEM</p><p> MOVR2,#0</p><p> LCALLBTID</p
129、><p> MOVA,R6</p><p> ANLA,#0FH;保留低四位</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED1_2,A</p><p><b>
130、 ;第2_2個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H;保留高四位</p><p> SWAPA</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p&
131、gt;<p> MOVLED2_2,A</p><p><b> ;第3_2個(gè)數(shù)碼管</b></p><p> MOVR3,MON_MEM</p><p> MOVR2,#0</p><p> LCALLBTID</p><p> MOVA,R
132、6</p><p> ANLA,#0FH</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> JNBFLASH_FLAG,MODE0_BCD1 ;FLASH_FLAG為0跳到MODE0_BCD1</p><p> SET
133、BACC.7</p><p> MODE0_BCD1:</p><p> MOVLED3_2,A</p><p><b> ;第4_2個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H</p><p&g
134、t;<b> SWAPA</b></p><p> MOVCA,@A+DPTR</p><p> MOVLED4_2,A</p><p><b> ;第5_2個(gè)數(shù)碼管</b></p><p> MOVR3,Y_MEM_1</p><p> MO
135、VR2,#0</p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH</p><p> MOVDPTR,#LED_CODE</p><p> MOVCA,@A+DPTR</p><p> JNB
136、FLASH_FLAG,MODE0_BCD2 ;FLASH_FLAG為0跳到MODE0_BCD1</p><p> SETBACC.7</p><p> MODE0_BCD2:</p><p> MOVLED5_2,A</p><p><b> ;第6_2個(gè)數(shù)碼管</b></p>&l
137、t;p> MOVA,R6</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> MOVCA,@A+DPTR</p><p> MOVLED6_2,A</p><p><b> ;第7_2個(gè)數(shù)碼管
138、</b></p><p> MOVR3,Y_MEM_2</p><p> MOVR2,#0</p><p> LCALLBTID</p><p> MOVA,R6</p><p> ANLA,#0FH</p><p> MOVDPTR,#
139、LED_CODE</p><p> MOVCA,@A+DPTR</p><p> MOVLED7_2,A</p><p><b> ;第8_2個(gè)數(shù)碼管</b></p><p> MOVA,R6</p><p> ANLA,#0F0H</p><p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的電子鐘設(shè)計(jì)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)--單片機(jī)多功能電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 課程設(shè)計(jì)----基于單片機(jī)的數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)的電子鐘設(shè)計(jì)
- 電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 基于51單片機(jī)的簡約電子鐘
- 單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘
- 單片機(jī)c語言課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
評論
0/150
提交評論