?? system.s
字號:
.module System.c
.area text(rom, con, rel)
.dbfile D:\設計項目\深入淺出AVR\光盤文件\實例程序源代碼\實例12_復雜閃爍控制\實例12_復雜閃爍控制_警報燈\System.c
.dbfunc e LED_Flash _LED_Flash fV
.even
_LED_Flash::
.dbline -1
.dbline 65
; /*********************************************************/
; /* */
; /* 實例12 復雜閃爍控制 警報燈 */
; /* */
; /* 程序設計 江海波 */
; /* */
; /* 編寫時間 : 2007-05 版本 : V1.0 */
; /* */
; /* 提示 : 代碼受版權保護,示例程序用于工程應謹慎 */
; /* */
; /* E-mail : soundman@sohu.com */
; /*-------------------------------------------------------*/
; /* 硬件環境: */
; /* */
; /* 實驗電路板,ATmega48單片機,CPU時鐘1MHz */
; /* ------------------------------------------------------*/
; /* 軟件環境: */
; /* */
; /* ICCAVR 6.31A */
; /* ------------------------------------------------------*/
; /* 最后修改時間: */
; /* */
; /*-------------------------------------------------------*/
; /* 歷史版本紀錄: */
; /* */
; /*********************************************************/
;
; /********************
; * 頭 文 件 配 置 區 *
; ********************/
; # include "PF_Config.h"
;
; /********************
; * 系 統 宏 定 義 *
; ********************/
;
; /*------------------*
; * 常 數 宏 定 義 *
; *------------------*/
;
; /*------------------*
; * 動 作 宏 定 義 *
; *------------------*/
;
; /********************
; * 模塊結構體定義區 *
; ********************/
;
; /********************
; * 模塊函數聲明區 *
; ********************/
;
; /********************
; * 模塊變量聲明區 *
; ********************/
;
; /***********************************************************
; * 函數說明:LED閃爍控制函數 *
; * 輸入: 無 *
; * 輸出: 無 *
; * 調用函數: *
; ***********************************************************/
;
; void LED_Flash (void)
; {
.dbline 66
; switch (TimeStamp)
lds R2,_TimeStamp
lds R3,_TimeStamp+1
tst R2
brne X0
tst R3
breq L4
X0:
lds R24,_TimeStamp
lds R25,_TimeStamp+1
cpi R24,1
ldi R30,0
cpc R25,R30
breq L5
cpi R24,2
ldi R30,0
cpc R25,R30
breq L6
cpi R24,3
ldi R30,0
cpc R25,R30
breq L7
cpi R24,10
ldi R30,0
cpc R25,R30
breq L8
cpi R24,11
ldi R30,0
cpc R25,R30
breq L9
cpi R24,12
ldi R30,0
cpc R25,R30
breq L10
cpi R24,13
ldi R30,0
cpc R25,R30
breq L11
cpi R24,20
ldi R30,0
cpc R25,R30
breq L12
cpi R24,21
ldi R30,0
cpc R25,R30
breq L13
cpi R24,22
ldi R30,0
cpc R25,R30
breq L14
cpi R24,23
ldi R30,0
cpc R25,R30
breq L15
rjmp L2
X1:
.dbline 67
; {
L4:
.dbline 69
; case 0 :
; {
.dbline 70
; LED_ON_A;
in R24,0x8
andi R24,221
out 0x8,R24
.dbline 70
.dbline 71
; break;
rjmp L3
L5:
.dbline 75
; }
;
; case 1 :
; {
.dbline 76
; LED_OFF_A;
in R24,0x8
ori R24,34
out 0x8,R24
.dbline 76
.dbline 77
; break;
rjmp L3
L6:
.dbline 81
; }
;
; case 2 :
; {
.dbline 82
; LED_ON_A;
in R24,0x8
andi R24,221
out 0x8,R24
.dbline 82
.dbline 83
; break;
rjmp L3
L7:
.dbline 87
; }
;
; case 3 :
; {
.dbline 88
; LED_OFF_A;
in R24,0x8
ori R24,34
out 0x8,R24
.dbline 88
.dbline 89
; break;
rjmp L3
L8:
.dbline 93
; }
;
; case 10 :
; {
.dbline 94
; LED_ON_B;
in R24,0x8
andi R24,235
out 0x8,R24
.dbline 94
.dbline 95
; break;
rjmp L3
L9:
.dbline 99
; }
;
; case 11 :
; {
.dbline 100
; LED_OFF_B;
in R24,0x8
ori R24,20
out 0x8,R24
.dbline 100
.dbline 101
; break;
rjmp L3
L10:
.dbline 105
; }
;
; case 12 :
; {
.dbline 106
; LED_ON_B;
in R24,0x8
andi R24,235
out 0x8,R24
.dbline 106
.dbline 107
; break;
rjmp L3
L11:
.dbline 111
; }
;
; case 13 :
; {
.dbline 112
; LED_OFF_B;
in R24,0x8
ori R24,20
out 0x8,R24
.dbline 112
.dbline 113
; break;
rjmp L3
L12:
.dbline 117
; }
;
; case 20 :
; {
.dbline 118
; LED_ON_C;
cbi 0x8,3
.dbline 118
.dbline 119
; break;
rjmp L3
L13:
.dbline 123
; }
;
; case 21 :
; {
.dbline 124
; LED_OFF_C;
sbi 0x8,3
.dbline 124
.dbline 125
; break;
rjmp L3
L14:
.dbline 129
; }
;
; case 22 :
; {
.dbline 130
; LED_ON_C;
cbi 0x8,3
.dbline 130
.dbline 131
; break;
rjmp L3
L15:
.dbline 135
; }
;
; case 23 :
; {
.dbline 136
; LED_OFF_C;
sbi 0x8,3
.dbline 136
.dbline 137
; break;
L2:
L3:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 149
; }
; }
; }
;
; /***********************************************************
; * 函數說明:主函數 *
; * 輸入: 無 *
; * 輸出: 無 *
; * 調用函數:System_INIT() *
; ***********************************************************/
; void main(void)
; {
.dbline 150
; System_INIT(); //代碼初始化
rcall _System_INIT
rjmp L18
L17:
.dbline 153
;
; while(TRUE) //超級循環
; {
.dbline 154
; if (DoFLASH == TRUE)
lds R24,_DoFLASH
cpi R24,1
brne L20
.dbline 155
; {
.dbline 156
; LED_Flash(); //當閃爍執行標志為真時,調用閃爍控制函數
rcall _LED_Flash
.dbline 157
; DoFLASH = FALSE;
clr R2
sts _DoFLASH,R2
.dbline 158
; }
L20:
.dbline 159
L18:
.dbline 152
rjmp L17
X2:
.dbline -2
L16:
.dbline 0 ; func end
ret
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -