備用 13 綜合練習(xí)_第1頁(yè)
備用 13 綜合練習(xí)_第2頁(yè)
備用 13 綜合練習(xí)_第3頁(yè)
備用 13 綜合練習(xí)_第4頁(yè)
備用 13 綜合練習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

打鈴定時(shí)器一、基礎(chǔ)部分芯片定時(shí)器設(shè)置定時(shí)器狀態(tài)和控制寄存器TSCR$20fi=總線頻率一、基礎(chǔ)部分定時(shí)器中斷的設(shè)定有兩個(gè)因素決定:硬件決定:晶振頻率: 晶振頻率/4=總線頻率(fi)軟件決定:計(jì)數(shù)脈沖的分頻:PS2:PS1:PS0可以選擇1分頻(000)至64分頻(110)

比較中斷的模數(shù)計(jì)數(shù)值(比較值):定時(shí)器計(jì)數(shù)模數(shù)寄存器高位TMODH$23定時(shí)器計(jì)數(shù)模數(shù)寄存器低位TMODL$24晶振選擇:8MHz 總線頻率=8/4=2MHz總線周期=0.5uS(微秒)一、基礎(chǔ)部分參數(shù)設(shè)定:Tscr_initEQU %01000000

;1分頻,計(jì)數(shù)器頻率=總線頻率=2MHzTmodh_initEQU0Tmodl_init

EQU 250T

;溢出周期=250*0.5uS(微秒)=125uS(微秒)初始化程序:MOV#Tscr_init,TSCR

MOV#Tmodh_init,TMODHMOV#Tmodl_init,TMODL;溢出中斷頻率:每秒8000次二、蜂鳴器控制部分;==================================================================================;蜂鳴器管理;---------------Beep_ctrlTSTBEEP_DLYBNEBeep_bk;蜂鳴計(jì)數(shù)未結(jié)束,不處理其余事;---------------LDABEEP_CNTBRSET2,TIME_FL,Beep_offBIT#%11110000BEQBeep_bk;已經(jīng)響完,不再處理;---------------Beep_onBSET2,TIME_FL;要繼續(xù)蜂鳴,原未開(kāi),現(xiàn)在開(kāi)

SUB#%00010000STABEEP_CNTBRAGet_gap;---------------;---------------Beep_offBCLR2,TIME_FL;要繼續(xù)蜂鳴,原已開(kāi),現(xiàn)在關(guān)(間隔)BCLR5,PORTALSRALSRAGet_gapAND#%00000011TAXLDABeep_tbl,XSTABEEP_DLYBeep_bkJMPMain_loop;----------------------------------------------------------------------------------Beep_tblFCB60T,100T,150T,200T;2毫秒計(jì)時(shí);===============================================================三、定時(shí)器程序練習(xí)在平臺(tái)程序的基礎(chǔ)上,添加和修改程序代碼從淺入深,步步深入考核方式是單人單機(jī)操作,在平時(shí)的操作中一定要多動(dòng)手親自操作,否則很難過(guò)關(guān)練習(xí)一編制一個(gè)定時(shí)器程序

用于實(shí)訓(xùn)樓上課計(jì)時(shí).上課或下課有蜂鳴器提示上午4節(jié)課,下午2節(jié)課.具體時(shí)間間隔如下:上午:45分鐘,10分鐘,45分鐘,20分鐘,45分鐘,10分鐘,45分鐘,140分鐘下午:45分鐘,10分鐘,45分鐘課間休息時(shí)間閃動(dòng)LED燈(自選一個(gè)燈),每秒閃動(dòng)一次(0.5秒亮,0.5秒滅)注意:調(diào)試時(shí)使用縮時(shí)功能,1秒鐘=1分鐘(如何進(jìn)入縮時(shí)狀態(tài)?)要新定義變量,(如何增加新的變量定義)如:TM_M_CNT分鐘計(jì)數(shù)器TM_STEP階段計(jì)數(shù)器閃動(dòng)LED燈,使用平臺(tái)程序“練習(xí)-4.ASM”提供的資源:BLNK_CNT平臺(tái)程序已經(jīng)作好,只要使用該變量來(lái)控制閃動(dòng)(固定間隔亮燈,固定間隔滅燈)該變量每0.25秒加1,不同的位的翻轉(zhuǎn)周期不同解題思路a).在RAM區(qū)定義以下變量:TM_M_CNTRMB1TM_STEPRMB1b)在外時(shí)鐘程序后部加數(shù)據(jù)表如下:TM_TBL

FCB45T,10T,45T,20T,45T,10T,45T,140T,45T,10T,45T

注意:數(shù)據(jù)表的標(biāo)號(hào)“TM_TBL”不需要定義,貼邊寫(xiě)的字母默認(rèn)為標(biāo)號(hào),匯編時(shí)自動(dòng)分配地址給此處。c)在分鐘平臺(tái)程序處,寫(xiě)入以下程序:

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

MOV#%00010000,BEEP_CNT

INCTM_STEP

PP-1

NOPd)在顯示程序的風(fēng)速燈(LED)顯示處,屏蔽原風(fēng)速顯示:;---------------;風(fēng)速顯示*****;---------------

Dsp_f_spd;BRCLR1,MIX_FLAG,Dsp_lo_f

;BRCLR0,MIX_FLAG,Dsp_med_f

BRCLR0,TM_STEP,Dsp_swng

BRCLR1,BLNK_CNT,Dsp_swng

BSET0,DSP_BUF_1

BRADsp_swng

練習(xí)二加入數(shù)碼管顯示運(yùn)行分鐘程序位置在顯示處理(見(jiàn)*****標(biāo)記處)用運(yùn)行分鐘代替原來(lái)的室內(nèi)溫度(ROOM_TMP);-----------------------------------------------;顯示室溫*****;---------------Dsp_rm_tempLDXTM_M_CNT ;ROOM_TMPJSRDsp_temp_subBRASet_dsp_drv;-----------------------------------------------

練習(xí)三定時(shí)器擴(kuò)展到8節(jié)課上午4節(jié)課,下午4節(jié)課.具體時(shí)間間隔如下:上午:45分鐘,10分鐘,45分鐘,20分鐘,45分鐘,10分鐘,45分鐘,140分鐘下午:45分鐘,10分鐘,45分鐘,20分鐘,45分鐘,10分鐘,45分鐘附加要求:在數(shù)碼管上顯示所上課的節(jié)數(shù)解題思路:TM_STEP由11個(gè)增為15個(gè),要添加相應(yīng)的可訪問(wèn)到的數(shù)據(jù)對(duì)TM_STEP值的判斷標(biāo)準(zhǔn)把上課的節(jié)數(shù)作為一個(gè)量去顯示需要實(shí)時(shí)判斷是否為上課的時(shí)間階段修改時(shí)間序列表如下

TM_TBL

FCB45T,10T,45T,20T,45T,10T,45T,

140T

FCB45T,10T,45T,20T,45T,10T,45T原有的分鐘平臺(tái)程序處程序片段:

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

MOV#%00010000,BEEP_CNT

INCTM_STEP

LDA

TM_STEP

CMP#11T

BLO

PP-1

CLRTM_STEP

PP-1

NOP原有顯示運(yùn)行分鐘程序片斷;顯示室溫*****Dsp_rm_tempLDXTM_M_CNT ;ROOM_TMP

JSRDsp_temp_subBRASet_dsp_drv應(yīng)如何修改呢?上課階段的對(duì)應(yīng)值為0,2,4,6,8,10,12,14原有顯示運(yùn)行分鐘程序片斷;顯示室溫*****Dsp_rm_temp

BRSET0,TM_STEP,Set_dsp_drv

LDX

TM_STEPCLCRORXINCX

JSRDsp_temp_subBRASet_dsp_drv練習(xí)四數(shù)碼管顯示運(yùn)行分鐘倒計(jì)數(shù)當(dāng)前階段已運(yùn)行分鐘數(shù)當(dāng)前階段所需運(yùn)行分鐘總數(shù)以上第一節(jié)課為例(階段變量為0,該階段運(yùn)行時(shí)間為45分鐘)當(dāng)前階段余下的分鐘數(shù)用運(yùn)行分鐘代替原來(lái)的室內(nèi)溫度(ROOM_TMP);-----------------------------------------------;顯示室溫*****;---------------Dsp_rm_tempLDXTM_M_CNT ;ROOM_TMPINCX

JSRDsp_temp_subBRASet_dsp_drv;-----------------------------------------------

當(dāng)前階段已運(yùn)行分鐘數(shù)TM_M_CNT當(dāng)前階段所需運(yùn)行分鐘總數(shù)為45分鐘,通過(guò)查表獲得,如LDATM_TBL,XTM_STEP=0當(dāng)前階段余下的分鐘數(shù)(A)-TM_M_CNT??思考:如何實(shí)現(xiàn)個(gè)功能?用什么指令?;-----------------------------------------------;顯示室溫*****;---------------Dsp_rm_tempLDXTM_STEP LDATM_TBL,X

SUBTM_M_CNT

TAX

JSRDsp_temp_subBRASet_dsp_drv;-----------------------------------------------附加功能:把下課時(shí)段內(nèi)高風(fēng)燈閃改為高風(fēng)、中風(fēng)兩個(gè)燈同時(shí)閃?把下課時(shí)段內(nèi)高風(fēng)、中風(fēng)兩個(gè)燈同時(shí)閃改為兩個(gè)燈輪流閃爍?練習(xí)五上課下課蜂鳴器聲音不同平臺(tái)提供蜂鳴器控制的指令:1聲蜂鳴器MOV#%00010000,BEEP_CNT1短聲2聲蜂鳴器MOV#%00100000,BEEP_CNT

2短聲3聲蜂鳴器MOV#%00110000,BEEP_CNT

3短聲1聲蜂鳴器MOV#%00011011,BEEP_CNT

1長(zhǎng)聲2聲蜂鳴器MOV#%00101011,BEEP_CNT

2長(zhǎng)聲3聲蜂鳴器MOV#%00111011,BEEP_CNT

3長(zhǎng)聲

a).在時(shí)間序列表后加蜂鳴器聲音控制表BP_TBL

FCB%00010001 ;1節(jié)課下,1短聲

FCB%00101111 ;2節(jié)課上,2長(zhǎng)聲

FCB%00010001 ;2節(jié)課下,1短聲

FCB%00111111 ;3節(jié)課上,3長(zhǎng)聲

FCB%00010001 ;3節(jié)課下,1短聲

FCB%01001111 ;4節(jié)課上,4長(zhǎng)聲

FCB%00010001 ;4節(jié)課下,1短聲

FCB%01011111 ;5節(jié)課上,5長(zhǎng)聲

FCB%00010001 ;5節(jié)課下,1短聲

FCB%01101111 ;6節(jié)課上,6長(zhǎng)聲

FCB%00010001 ;6節(jié)課下,1短聲

FCB%01111111 ;7節(jié)課上,7長(zhǎng)聲

FCB%00010001 ;7節(jié)課下,1短聲

FCB%10001111 ;8節(jié)課上,8長(zhǎng)聲

FCB%00010001 ;8節(jié)課下,1短聲b)定時(shí)器程序如下:

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

LDABP_TBL,X

STABEEP_CNT

INCTM_STEPPP-1

NOP計(jì)當(dāng)前的運(yùn)行分鐘數(shù)、當(dāng)前的階段值當(dāng)前階段是否運(yùn)行完讀取相應(yīng)階段蜂鳴器數(shù)據(jù)表設(shè)置蜂鳴器更新階段變量NY練習(xí)六有選擇地運(yùn)行定時(shí)器按開(kāi)機(jī)鍵運(yùn)行定時(shí)器,不按鍵處于待機(jī)狀態(tài)平臺(tái)程序提供的按鍵開(kāi)關(guān)機(jī)標(biāo)記:3,MIX_FLAG檢測(cè)開(kāi)關(guān)機(jī)標(biāo)記開(kāi)機(jī)標(biāo)記MIX_FLAG的bit3為1關(guān)機(jī)標(biāo)記MIX_FLAG的bit3為0修改定時(shí)器程序如下:

BRCLR3,MIX_FLAG,PP-1

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

LDABP_TBL,X

STABEEP_CNT

INCTM_STEPPP-1

NOP思考:這一條指令是開(kāi)機(jī)轉(zhuǎn)移還是關(guān)機(jī)轉(zhuǎn)移?答案:是關(guān)機(jī)轉(zhuǎn)移注意不要與已有的標(biāo)號(hào)沖突如果改為開(kāi)機(jī)轉(zhuǎn)移,實(shí)現(xiàn)功能不變,這段程序應(yīng)作如何修改?改為開(kāi)機(jī)轉(zhuǎn)移:

BRSET3,MIX_FLAG,PP-2BRAPP-1PP-2

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

LDABP_TBL,X

STABEEP_CNT

INCTM_STEPPP-1

NOP把這種方法與前面對(duì)比一下,哪種好呢?練習(xí)七預(yù)定時(shí)運(yùn)行定時(shí)器運(yùn)行時(shí)加前10分鐘預(yù)定時(shí),按開(kāi)關(guān)鍵開(kāi)機(jī)后先運(yùn)行10分鐘預(yù)定時(shí),10分鐘到后響2長(zhǎng)聲蜂鳴器,開(kāi)始運(yùn)行打鈴定時(shí)器.用一個(gè)標(biāo)記來(lái)表明預(yù)定時(shí)10分鐘是否到當(dāng)標(biāo)記為1時(shí)表明預(yù)定時(shí)10分鐘到當(dāng)標(biāo)記為0時(shí)表明預(yù)定時(shí)10分鐘未到在這種情況下定時(shí)器工作在這種情況下定時(shí)器不工作,繼續(xù)預(yù)定時(shí)是開(kāi)機(jī)?預(yù)定時(shí)了?打鈴器工作運(yùn)行分鐘增1到10分鐘了嗎?清運(yùn)行分鐘變量置預(yù)定時(shí)標(biāo)記設(shè)置蜂鳴器否是是否否是是開(kāi)機(jī)?預(yù)定時(shí)了?打鈴器工作運(yùn)行分鐘增1到10分鐘了嗎?清運(yùn)行分鐘變量置預(yù)定時(shí)標(biāo)記設(shè)置蜂鳴器否是是否否是PP-1PP-3

修改定時(shí)器程序如下:

BRCLR3,MIX_FLAG,PP-1

BRSET6,MIX_FLAG,PP-3

INCTM_M_CNT

LDATM_M_CNT

CMP#10T

BLOPP-1

CLRTM_M_CNT

BSET6,MIX_FLAG

MOV#%00100011,BEEP_CNTPP-3

INCTM_M_CNT

LDATM_M_CNT

……………PP-1

NOP

練習(xí)八定時(shí)器自動(dòng)關(guān)機(jī)定時(shí)器運(yùn)行到第八節(jié)課后自動(dòng)關(guān)機(jī),再按開(kāi)關(guān)鍵重新開(kāi)機(jī)后,定時(shí)器可從10分鐘預(yù)定時(shí)開(kāi)始再運(yùn)行一遍.………

INCTM_M_CNT

LDATM_M_CNT

LDXTM_STEP

CMPTM_TBL,X

BLOPP-1

CLRTM_M_CNT

LDABP_TBL,X

STABEEP_CNT

INCTM_STEPPP-1

NOP思考一:階段變量是如何更新的呢?思考二:如何判斷是否到了第八節(jié)課結(jié)束,在哪里判斷?

該階段是否結(jié)束?是否第八節(jié)課結(jié)束清階段變量清開(kāi)機(jī)、預(yù)定時(shí)標(biāo)記清運(yùn)行分鐘變量設(shè)置蜂鳴器更新階段變量否是是否PP-1更新運(yùn)行分鐘變量讀取階段變量打鈴器工作分解打鈴器常規(guī)工作本次練習(xí)所增加的功能修改定時(shí)器程序如下:

…………

LDABP_TBL,X

STABEEP_CNT

INCTM_STEP

LDATM_STEP

CMP#14T

BLSPP-1

CLRTM_STEP

BCLR3,MIX_FLAG

BCLR6,MIX_FLAGPP-1

NOP

思考:這里可以改成BLOPP-1如果要使用這條指令,應(yīng)如何修改?答案:CMP#15TBLOPP-1這兩條指令意味著什么呢?你如何理解的?練習(xí)九增加預(yù)備鈴增加上課鈴的預(yù)備鈴,下課休息最后3分鐘響1短聲預(yù)備鈴,正式上課響3長(zhǎng)聲蜂鳴器,下課響1長(zhǎng)聲蜂鳴器.原上下課閃燈控制取消.45T,7T,3T,45T,17T,3T,45T,7T,3T,45T,137T,3T,45T,7T,3T,45T,17T,3T,45T,7T,3T,45T具有三種不同的蜂鳴聲音控制按照前面把6節(jié)課延伸為8節(jié)課的思路,可以通過(guò)改變?cè)械臅r(shí)間數(shù)據(jù)表,增加相應(yīng)的時(shí)間段即可按照前面上課下課對(duì)應(yīng)對(duì)蜂鳴聲音的控制,修改蜂鳴聲音控制表可以改變對(duì)各階段蜂鳴聲音的控制重新構(gòu)建數(shù)據(jù)表TM_TBL

FCB45T,7T,3T,45T,17T,3T,45T

FCB

7T,3T,45T,137T,3T,45T,7T

FCB

3T,45T,17T,3T,45T,7T,3T,45T以前的時(shí)間數(shù)據(jù)表如下:TM_TBL

FCB45T,10T

溫馨提示

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

評(píng)論

0/150

提交評(píng)論