?? main.lis
字號:
.module main.c
.area text
0000 _main::
0000 ; /*-----------------------------------------------------*
0000 ; *文件名:Tim1Ch0I.prj *
0000 ; *硬件接線:1:PTA.1接指示燈 *
0000 ; * 2:PTD.4,即定時器1通道0(21腳),接開關 *
0000 ; *程序描述:以輸入捕捉中斷方式, *
0000 ; * 開關撥動使捕捉中斷取反指示燈PTA1,使其閃動 *
0000 ; *目的:學習HC08系列定時器溢出捕捉功能 *
0000 ; *說明:本例是將定時器1通道0(21腳)設為"跳變沿捕捉" *
0000 ; * (即電平發生變化時產生中斷),驗證方法是將21腳不 *
0000 ; * 斷接高電平、低電平,此時指示燈PTA1狀態跟隨改變 *
0000 ; *---------《嵌入式應用技術基礎教程》教學實例----------*/
0000 ; #include "GP32C.h"
0000 ; #include "head.h"
0000 ; /*函數聲明*/
0000 ; void SetTim1Ch0I(void); //定時器1和定時器1通道0初始化
0000 ;
0000 ; void main()
0000 ; {
0000 ; asm("SEI"); //禁止所有中斷
0000 9B SEI
0001 ; //[I/O初始化]
0001 ; Light_D|=1<<Light_Pin; //令指示燈引腳為輸出
0001 1204 bset #1,0x4
0003 ; Light_P|=1<<Light_Pin; //初始時,指示燈"暗"
0003 1200 bset #1,0
0005 ; //[定時器1和定時器1通道0初始化]
0005 ; SetTim1Ch0I();
0005 CD000D jsr _SetTim1Ch0I
0008 95 tsx
0009 ; asm("CLI"); //開放中斷
0009 9A CLI
000A L2:
000A L3:
000A ; //[主循環開始,為空操作]
000A ; //[等待輸入捕捉中斷,(開關的撥動)]
000A ; while(1);
000A 20FE bra L2
000C X0:
000C L1:
000C .dbline 0 ; func end
000C 81 rts
000D _SetTim1Ch0I::
000D ; }
000D ;
000D ; /*SetTim1Ch0I:定時器1和定時器1通道0 初始化-------------*
000D ; * 功能:初始化定時器1和定時器1通道0 *
000D ; * 參數:無 *
000D ; * 返回:無 *
000D ; *-----------------------------------------------------*/
000D ; void SetTim1Ch0I()
000D ; {
000D ; T1SC=0b00110000;//允許溢出中斷、不啟動計數、分頻因子=1
000D A630 lda #48
000F B720 sta 0x20
0011 ; T1SC0=0b01001100; //01001100設置通道0輸入捕捉模式,
0011 A64C lda #76
0013 B725 sta 0x25
0015 ; //允許輸入捕捉中斷,跳變沿捕捉
0015 ; T1SC&=0b11011111; //允許定時器1計數寄存器計數
0015 B620 lda 0x20
0017 A4DF and #-33
0019 B720 sta 0x20
001B L5:
001B .dbline 0 ; func end
001B 81 rts
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -