?? system.s
字號:
.module System.c
.area text(rom, con, rel)
.dbfile D:\設計項目\深入淺出AVR\光盤文件\實例程序源代碼\實例13_電量計\實例13_電量計_查詢方式\System.c
.dbfunc e main _main fV
; Voltage -> R10,R11
; Port_Value -> R20
; Loop_Counter -> R22
.even
_main::
.dbline -1
.dbline 64
; /*********************************************************/
; /* */
; /* 實例13 電量計 查詢方式 */
; /* */
; /* 程序設計 江海波 */
; /* */
; /* 編寫時間 : 2007-05 版本 : V1.0 */
; /* */
; /* 提示 : 代碼受版權保護,示例程序用于工程應謹慎 */
; /* */
; /* E-mail : soundman@sohu.com */
; /*-------------------------------------------------------*/
; /* 硬件環境: */
; /* */
; /* 實驗電路板,ATmega48單片機,CPU時鐘1MHz */
; /* ------------------------------------------------------*/
; /* 軟件環境: */
; /* */
; /* ICCAVR 6.31A */
; /* ------------------------------------------------------*/
; /* 最后修改時間: */
; /* */
; /*-------------------------------------------------------*/
; /* 歷史版本紀錄: */
; /* */
; /*********************************************************/
;
; /********************
; * 頭 文 件 配 置 區 *
; ********************/
; # include "PF_Config.h"
;
; /********************
; * 系 統 宏 定 義 *
; ********************/
;
; /*------------------*
; * 常 數 宏 定 義 *
; *------------------*/
;
; /*------------------*
; * 動 作 宏 定 義 *
; *------------------*/
;
; /********************
; * 模塊結構體定義區 *
; ********************/
;
; /********************
; * 模塊函數聲明區 *
; ********************/
;
; /********************
; * 模塊變量聲明區 *
; ********************/
;
; /***********************************************************
; * 函數說明:主函數 *
; * 輸入: 無 *
; * 輸出: 無 *
; * 調用函數:System_INIT() *
; ***********************************************************/
; void main(void)
; {
.dbline 68
; unsigned int Voltage;
; unsigned char Loop_Counter, Port_Value;
;
; System_INIT(); //調用初始化器件函數
rcall _System_INIT
.dbline 70
;
; SEI(); //器件初始化完成,允許中斷
sei
rjmp L3
L2:
.dbline 73
;
; while(TRUE)
; {
.dbline 74
; ADCSRA |= 1<<ADSC; //置位ADSC位,啟動一次轉換
lds R24,122
ori R24,64
sts 122,R24
L5:
.dbline 75
L6:
.dbline 75
; while(!(ADCSRA&(1<<ADIF))); //查詢方式等待轉換完成
lds R2,122
sbrs R2,4
rjmp L5
.dbline 77
;
; Voltage = ADC; //讀入ADCH和ADCL中的轉換結果
lds R10,120
lds R11,120+1
.dbline 79
;
; Loop_Counter = Voltage/170; //轉換為光柱顯示
ldi R18,170
ldi R19,0
movw R16,R10
rcall div16u
mov R22,R16
.dbline 81
;
; Port_Value = 0x00;
clr R20
rjmp L9
L8:
.dbline 83
.dbline 84
mov R17,R22
subi R17,1
ldi R16,1
rcall lsl8
or R20,R16
.dbline 85
dec R22
.dbline 86
L9:
.dbline 82
clr R2
cp R2,R22
brlo L8
.dbline 88
ldi R24,255
ldi R25,0
mov R2,R20
clr R3
eor R2,R24
eor R3,R25
mov R20,R2
.dbline 89
out 0x5,R2
.dbline 90
L3:
.dbline 72
rjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r Voltage 10 i
.dbsym r Port_Value 20 c
.dbsym r Loop_Counter 22 c
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -