?? main.s
字號:
.module main.c
.area text
; i -> 0,X
; j -> 1,X
_main::
ais #-2
tsx
; /*-----------------------------------------------------*
; *工 程 名:Timer1.prj *
; *硬件連接:無 *
; *程序描述:1.從串口接收表示時間的3字節(jié)數(shù)據(jù) *
; * 2.利用定時器溢出中斷修改時間,并發(fā)送新時間 *
; *目 的:學(xué)習(xí)定時器基本功能 *
; *---------《嵌入式應(yīng)用技術(shù)基礎(chǔ)教程》教學(xué)實例----------*/
; //頭文件
; #include "GP32C.H"
; #include "SCI.h" //串行通信子程序頭文件
; //有關(guān)寄存器位定義
; #define TSTOPBit 5 //定時器計數(shù)停止位
; #define TOFBit 7 //定時器溢出標志位
; //函數(shù)聲明
; extern void SCIInit(void);
; extern void SCISendN(unsigned char n,unsigned char ch[]);
; void Timer1init(void);
; unsigned char time[3]; //存放時、分、秒
; //*====================================================*
; //*[主程序]
; void main()
; {
; unsigned char i;
; unsigned char j;
; asm("SEI"); //關(guān)總中斷
SEI
; SCIInit();
jsr _SCIInit
; Timer1init(); //調(diào)定時器1初始化子程序
jsr _Timer1init
tsx
; SCC2|=(1<<5); //令SCC2.5=1,允許接收中斷
bset #5,0x14
; asm("CLI"); //開總中斷
CLI
; //給時分秒賦初始值
; time[0]=0; time[1]=0; time[2]=0;
clr *_time
clr *_time+1
clr *_time+2
; i=time[2];
lda *_time+2
sta ,X
bra L6
L5:
; while(1)
; {
; j=time[2];
lda *_time+2
sta 1,X
; if (i!=j) //數(shù)組已經(jīng)更新
lda ,X
cmp 1,X
beq L9
; {SCISendN(3,time); i=j;} //發(fā)送新數(shù)據(jù)
ldhx #_time
pshx
pshh
lda #3
psha
jsr _SCISendN
ais #3
tsx
lda 1,X
sta ,X
L9:
L6:
bra L5
X0:
L1:
ais #2
.dbline 0 ; func end
rts
_Timer1init::
; }
; }
; /*[內(nèi)部直接調(diào)用子程序存放處]*/
; /*Timer1init:定時器1初始化子程序-----------------------*
; *功能:對定時器1初始化 *
; *參數(shù):無 *
; *返回:無 *
; *-----------------------------------------------------*/
; void Timer1init(void)
; {
; //允許溢出中斷、不啟動計數(shù)、分頻因子=64
; T1SC=0b01100110;
lda #102
sta 0x20
; //計數(shù)寄存器初值=0x0000
; T1CNTH=0x00; T1CNTL=0x00;
clr 0x21
clr 0x22
; //1秒產(chǎn)生1次溢出中斷,計數(shù)寄存器=1×(2457600/64)=9600
; T1MODH=0x96; T1MODL=0x00;
lda #-106
sta 0x23
clr 0x24
; //允許定時器1計數(shù)寄存器計數(shù)
; T1SC&=~(1<<TSTOPBit);
bclr #5,0x20
L11:
.dbline 0 ; func end
rts
.area bss
_time::
.blkb 3
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -