版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于 TMS320LF2407 按鍵計數(shù)器設計說明在控制電路中,通常需要以按鍵來控制程序執(zhí)行流程或是輸入數(shù)據(jù)。在圖4.1 中,4 個按鍵 K1K4分別對應 TMS320LF2407 芯片的引腳 IOPF3IOPF4 作為 I/O 端口 的輸入,8 只發(fā)光二極管 LED1I LED8 通過 SW-DIP8 撥碼開關和 74HC273 鎖存器 芯片分別對應 TMS320LF2407 芯片的引腳 IOPF0IOPF7 作為 I/O 端口的輸出。本 設計僅使用一條 I/O 引腳,借助軟件查詢方法點亮 8 只發(fā)光二極管。本設計中的 K1 鍵對應的 TMS320LF2407 輸入 I/O 引腳為 IOPF
2、3,當按下 K1 鍵, 則將所對應的端口 F 數(shù)據(jù)和方向控制寄存器(PFDATDIR )的第 3 位為(IOPF3 引 腳)0,同時點亮發(fā)光二極管。二內(nèi)容1 設計并調(diào)試用于 TMS320LF2407 芯片的計數(shù)程序,要求由按鍵 K1 作輸入并對 其進行計數(shù),計數(shù)的結果由 LED7LED0 發(fā)光二極管以二進制方式顯示。2對程序稍作改動,用 K4 按鍵完成上述功能。三硬件電路圖 4.1 TMS320LF2407 與鍵盤、LED 接口電路四參考程序清單通過編程,設計一個按鍵計數(shù)器,要求剛接通電源時,8 只發(fā)光二極管都不亮,表示計數(shù)器的初始值為 0,即二進制數(shù)的 00000000B;當按下 K1 鍵時
3、,計數(shù)器的值 加 1,發(fā)光二極管 LED0 點亮,表示二進制數(shù)的 00000001B,然后松開按鍵;再次 按下 K1 鍵時,計數(shù)器的值又加 1,發(fā)光二極管 LED1 點亮,表示二進制數(shù)的 00000010B,然后再松開按鍵;依次類推。直到按動了255 次按鍵時,發(fā)光二極管LED7LED0 會全部點亮,其后的一次 K1 鍵按下時將使計數(shù)器回 0,就這樣循環(huán) 往復。C 語言程序(1)所需的復位和中斷向量定義文件vectors.asm 同于前。在這以后的所有例程中,如果沒有特別說明,vectors.asm 者 B 是相同的。(2 主程序二亍RMRM n n一茁riFifriFifHHLEHHLE31
4、013101源程序代碼:#include registerint m=OxOOO1;initial(asm(” setc SXM;asm( clrc OVM;asm( clrc CNF;*SCSR 1= 0 x81FE;*WDCR=0 x0E8;*IMR=0 x0000;*IFR=0 x0FFFF;*MCRA=*MCRA&0 x0FF;*PFDATDIR=*PFDATDIR|0 x0400;*PBDATDIR=*PBDATDIR|0 x0FF00;*PFDATDIR=*PFDATDIR|0 x0404;*PFDATDIR=*PFDATDIR&0 xFFFB;void inlin
5、e disable(asm( setc INTM;int keyscan(int k,j;k=*PFDATDIR&0 x0008;if(k=0 x0008 k=0;else k=1;if(k=1for(j=30000;j0;j-j=j;k=*PFDATDIR&0 x0008;if(k=0 x0008k=0;elsek=1;return(k;int keyserve(int k;k=*PFDATDIR&0 x0008;if(k=0 x0000*PBDATDIR=(*PBDATDIR&0 xFF00+m+; else*PBDATDIR=*PBDATDIR;*PFDA
6、TDIR=*PFDATDIR|0 x0404;*PFDATDIR=*PFDATDIR&0 xFFFB;main(disable(;initial(;while(1int i;i=0;i=keyscan(;.include F2407REGS.H;引用頭部文件if(i=1keyserve(;void interrupt nothing(return;匯編程序;鍵盤與發(fā)光二極管配合使用程序st0_temp .usect .b20,1 ;60st1_temp .usect .b20,1 ;61context .usect .b20,7 ;62-68STACK .usect .stack,40
7、IOSFT_REG .usect .data0,1 ;顯示數(shù)據(jù)移位寄存器IO_COUNT .usect .data0,1 ;延時計數(shù)寄存器IO_DATA .usect .data0,1 ;I/O 臨時數(shù)據(jù)緩沖區(qū)LEDXS .usect .data0,1 ;LED 顯示的數(shù)據(jù)LEDFLAG .usect .data0,1 ;LED 顯示標志寄存器K1FLAG .usect .data0,1 ;K1 標志寄存器KEYDATA .usect .data0,1 ;讀得鍵盤值存放寄存器DP_USER .set 5SW_INT24 B PHANTOM ; PM 30 User S/W int -.def
8、_c_intO;(1)建立中斷向量表.sect .vectors;定義主向量段RSVECT B _c_intO ;PM 0 Reset Vector 1INT1 B PHANTOM ;PM 2 Int level 1 4INT2 B GISR2 ;PM 4 Int level 2 5INT3 B PHANTOM ;PM 6 Int level 3 6INT4 B PHANTOM ;PM 8 Int level 4 7INT5 B PHANTOM ;PM A Int level 5 8INT6 B PHANTOM ;PM C Int level 6 9RESERVED B PHANTOM ;PM
9、 E (Analysis Int 10 SW_INT8 B PHANTOM ;PM 10 User S/W int SW_INT9 B PHANTOM ;PM 12 User S/W int - SW_INT10 B PHANTOM ; PM 14 User S/W int - SW_INT11 B PHANTOM ; PM 16 User S/W int -SW_INT12 B PHANTOM ; PM 18 User S/W int - SW_INT13 B PHANTOM ; PM 1A User S/W int - SW_INT14 B PHANTOM ;PM 1C User S/W
10、int - SW_INT15 B PHANTOM ; PM 1E User S/W int - SW_INT16 B PHANTOM ; PM 20 User S/W int -TRAP B PHANTOM ; PM 22 Trap vector - NMI B PHANTOM ; PM 24 Non maskable Int3 EMU_TRAP B PHANTOM ; PM 26Emulator Trap2 SW_INT20 B PHANTOM ; PM 28 User S/W int - SW_INT21 B PHANTOM ; PM 2A User S/W int -SW_INT22 B
11、 PHANTOM ; PM 2C User S/W int - SW_INT23 B PHANTOM ; PM 2E User S/W int -SW_INT25 B PHANTOM ; PM 32 User S/W int -SW_INT26 B PHANTOM ; PM 34 User S/W int -SW_INT27 B PHANTOM ; PM 36 User S/W int -SW_INT28 B PHANTOM ; PM 38 User S/W int -SW_INT29 B PHANTOM ; PM 3A User S/W int -SW_INT30 B PHANTOM ; P
12、M 3C User S/W int -SW_INT31 B PHANTOM ;PM 3E User S/W int 沖斷子向量入口定義 pvecs.sect .pvecs;定義子向量段PVECTORS B PHANTOM ;保留向量地址偏移量 -OOOOhB PHANTOM ;保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量-0001hB PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量-05B PHANTOM ; SCI_R
13、X_ISR; 保留向量地址偏移量B PHANTOM ; SCI_TX_ISR ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量-0AB PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM; 保留向量地址偏移量B PHANTOM; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量-10B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址
14、偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量 -15B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM;保留向量地址偏移量 -1AB PHANTOM ;保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量 -20B PHANTOM ;保留向量地址偏移量B PHANTOM
15、;保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量 -25B PHANTOM;保留向量地址偏移量 -0026hB T1GP_ISR ;保留向量地址偏移量 -0027h T1PINT 中斷B PHANTOM ;保留向量地址偏移量 -0028hB PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量-2AB PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ;保留向量地址偏移量B PHANTOM ; pvector addr offset 0
16、 x02f - T3PINTB PHANTOM ; 保留向量地址偏移量-30B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量-35B PHANTOM;保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM;保留向量地址偏移量B PHANTOM;保留向量地址偏移量-3AB PHANTOM ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM ;
17、保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量B PHANTOM;保留向量地址偏移量-3FB PHANTOM; CANMBX_ISR ; 保留向量地址偏移量B PHANTOM ; 保留向量地址偏移量 -0041h;(2)主程序.text_c_int0CALL SYSINIT ;調(diào)系統(tǒng)初始化程序CALL KEYLEDINIT ; 調(diào)鍵盤和 LED 初始化程序LDP #DP_USER ;指向 0280h0300h 區(qū)SACL PFDATDIR ;關 74HC273 片選信號SPLK #01H,IOSFT_REG ;寄存器和標志初始化SPLK #00H,IO_COUNTSPLK #00
18、1H,IO_DATASPLK #001H, LEDXSSPLK #00H,LEDFLAG ;LEDFLAG.0=1 表示 K1,K2,K3 按下;LEDFLAG.0=0 表示 K4 按下SPLK #01H,K1FLAGCLRC INTM ;開總中斷LOOP: CALL KEY ;調(diào)鍵盤程序,即掃描鍵盤LDP #DP_USERBIT LEDFLAG,15BCND LEDBD1,TCLACL IO_COUNTSUB #03E8HBCND WAIT,LEQ ;判 10 s 延時到否LEDBD1: SPLK #00H,IO_COUNTLDP #DP_PF2LACL PFDATDIROR #0404H
19、;IOPF2=1SACL PFDATDIR ;開 74HC273 片選信號LDP #DP_USERLACL LEDXSOR #0FF00H ;IOPB 口為輸出方式LDP #DP_PF2SACL PBDATDIR ;送要顯示的數(shù)據(jù)到 IOPB 口LACL PFDATDIRAND #0FFFBH ;IOPF2=0LDP #DP_USERBIT LEDFLAG,15BCND LEDBD2,TCLACL LEDXSSFLSACL LEDXSLACL IOSFT_REGSFLSACL IOSFT_REGBIT IOSFT_REG,BIT8 ;判是否循環(huán)完一次BCND LOOP1,TCB WAITLOO
20、P1: LDP #DP_USERSPLK #01H,IOSFT_REG ;賦初值LEDBD2: LACL IO_DATASACL LEDXSWAIT: NOPB LOOP1;(3)系統(tǒng)初始化程序SYSINIT:SETC INTMCLRC SXMCLRC OVMCLRC CNF ;B0 區(qū)被配置為數(shù)據(jù)空間LDP #0E0H ;指向 7000h 7080h 區(qū)SPLK #81FEH,SCSR1 ;時鐘 4 倍頻,CLKIN=6 M,CLKOUT=24 MSPLK #0E8H,WDCR ;不使能 WDTLDP #0SPLK #02H,IMR ;使能中斷優(yōu)先級 INT2SPLK #0FFFFh,IFR
21、 ;清中斷標志LDP #DP_EVA ;指向 7400h 7480h 區(qū)SPLK #80H,EVAIMRA ;使能 T1PINT 中斷SPLK #0FFFFh,EVAIFRA ;清 EVA 中斷標志SPLK #0,GPTCONASPLK #0EA6H,T1PR ;使定時器每 10 ms 產(chǎn)生一次中斷SPLK #0,T1CNTSPLK #0164CH,T1CON ;設置通用定時器 1RET;(4)鍵盤和發(fā)光二極管初始化程序KEYLEDINIT:LDP #DP_PF2LACL MCRCAND #083FFH ;IOPF2,IOPF3 6配置為一般的 I/O 口SACL MCRCLACL MCRAA
22、ND #000FFH ;IOPB0 7配置為一般的 I/O 口SACL MCRALACL PFDATDIROR #0400H ;IOPF2 為輸出方式AND #08787H ;IOPF3 6為輸入方式SACL PFDATDIRLACL PBDATDIROR #0FF00H ;IOPB07為輸出方式SACL PBDATDIRRET;(5)鍵盤程序KEY:CALL READKEY ;調(diào)讀鍵程序LACL KEYDATABCND KEYRET,EQ ;ACC=O?CALL KEYDELAY材料:玉米粒 50 克,胡蘿卜 30 克,生菜 30 克,雞蛋 3 個,面粉 100 克椒粉各少許;做法:1. 先
23、將雞蛋打散成蛋液,加入少許胡椒粉拌勻,胡蘿卜洗凈切瀝干切碎,蔥切 花;2. 將胡蘿卜粒和玉米粒放入沸水中煮熟后瀝干待用;3. 面粉中加入適量的鹽,再倒入雞蛋液,加入適量的水攪拌成4. 放入瀝干的胡蘿卜粒和玉米粒、生菜、蔥花,再加入少許芝;再一次讀鍵值LACL KEYDATABCND KEYRET,EQLDP #DP_USER ;判斷按鍵情況BIT KEYDATA,15BCND KEYRET,NTCCALL K1 ; +鍵按下B KEYRETKEYRET: LACL KEYDATAAND #OFFFOH ;清讀取的鍵值寄存器SACL KEYDATARET1;(6)讀鍵子程序READKEY:LDP #DP_PF2LACL PFDATDIR ;取出鍵值 PFDATDIR.3 PFDATDIR.6RPT #2SFR ;右移 3 位OR #OFFFOH ;屏蔽高 4 位(用到 4 個鍵)CMPLLDP #DP_USERSACL KEYDATA ;存放鍵值RET1;(7)用軟件延時 30mS 消抖動KEYDELAY:LACC #6000KEYD1: SUB #1RPT #80NOPBCND KEYD1,NEQRET1;(8)鍵子程序K1: ;+鍵子程序READK1: CALL KEYDELAYCALL READKEYLDP #
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版石油化工安全評價與隱患排查合同3篇
- 二零二五年度品牌推廣活動策劃與執(zhí)行合同3篇
- 二零二五版工藝品展覽館建設與運營管理合同3篇
- 二零二五年度電力工程建設項目融資合同2篇
- 二零二五年度4S店汽車租賃與綠色出行倡導合同3篇
- 二零二五版房地產(chǎn)開發(fā)項目掛靠合作保密協(xié)議合同3篇
- 2025年度特色餐飲品牌店面全面轉(zhuǎn)讓合同范本2篇
- 二零二五版物業(yè)公司應急處理合同3篇
- 二零二五版數(shù)據(jù)中心建設工程施工合同2篇
- 基于2025年度區(qū)塊鏈技術的電子勞動合同信任機制合同3篇
- 高二物理競賽霍爾效應 課件
- 金融數(shù)學-(南京大學)
- 基于核心素養(yǎng)下的英語寫作能力的培養(yǎng)策略
- 現(xiàn)場安全文明施工考核評分表
- 亞什蘭版膠衣操作指南
- 四年級上冊數(shù)學教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機械化作業(yè)的單體鋼架塑料大棚 技術規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計報表制度(2020年)
- 人工挖孔樁施工監(jiān)測監(jiān)控措施
- 供應商物料質(zhì)量問題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊5.2運動的合成與分解(共19張ppt)
評論
0/150
提交評論