📄 main.s
字号:
.module main.c
.area data
_MACHINE_NO::
.blkb 1
.area idata
.byte 1
.area data
.dbfile main.c
.dbsym e MACHINE_NO _MACHINE_NO c
_ReSendFlag::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e ReSendFlag _ReSendFlag c
_KB_DefValue::
.blkb 1
.area idata
.byte 255
.area data
.dbfile main.c
.dbsym e KB_DefValue _KB_DefValue c
_CertenFlag::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e CertenFlag _CertenFlag c
_CurrentRow::
.blkb 1
.area idata
.byte 1
.area data
.dbfile main.c
.dbsym e CurrentRow _CurrentRow c
_LcdShowBuff::
.blkb 64
.area idata
.byte 32,49,50,53,46,51,161,230,40,49,51,48,161,230,41,32
.byte 32,32,53,53,46,51,37,32,40,32,53,53,37,32,41,32
.byte 32,32,202,230,202,202,32,32,203,205,183,231,32,32,32,32
.byte 50,48,48,55,46,48,52,46,48,51,32,50,50,58,50,48
.area data
.dbfile main.c
.dbsym e LcdShowBuff _LcdShowBuff A[64:64]c
_CurrentH::
.blkb 2
.area idata
.word 2
.area data
.dbfile main.c
.dbsym e CurrentH _CurrentH s
_ColdHotFlag::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e ColdHotFlag _ColdHotFlag c
_ColdHot::
.blkb 12
.area idata
.byte 202,230,202,202,214,198,192,228,214,198,200,200
.area data
.dbfile main.c
.dbsym e ColdHot _ColdHot A[12:12]c
.area text
.dbfile main.c
.dbfunc e main _main fV
; channel -> 0,X
; cs -> 1,X
; j -> 2,X
; i -> 4,X
; k -> 6,X
; buf -> 7,X
; data -> 13,X
; SendBuff -> 16,X
; buff -> 38,X
; tmp -> 40,X
_main::
.dbline -1
ais #-41
tsx
.dbline 42
; /*-----------------------------------------------------*
; *工 程 名:Assistant.prj
; *硬件连接:
; *程序描述: SD-HC08 模板生成
; */
; /*[头文件]*/
; #include "Includes.h"
; //变量定义
; INT8U MACHINE_NO=1; //本机编号
; //SCI变量
; INT8U ReBuf[];
; INT8U SendBuf[];
; INT8U ReSendFlag=0; //接受发送标志(1-接受成功)
; INT16U ADValue[22]; //存放22路AD值
; INT16U DAvalue[16]; //存放8路DA转换的16位数据
; //Key使用变量
; INT8U KB_DefValue=0xff; //键盘定义值
; INT8S MoveBtn; //LCD切屏标志(1-上移;-1-下移)
; INT8U CertenFlag=0; //确定按钮标志(0-上/下移按钮为行切换功能,1-上/下移按钮为温湿度加减按钮)
; INT8U CurrentRow=1; //当前光标所在行
;
; INT8U TimeFlag; //定时标志字节
; //LCD显示和温湿度调节变量
; INT8U LcdShowBuff[64]={" 125.3℃(130℃) "" 55.3% ( 55% ) "
; " 舒适 送风 ""2007.04.03 22:20"};//LCD显示的初始信息
; INT16U BasicT; //温度设定值(温度范围-40~+140℃)
; INT8U SignBT; //设定温度符号(+/-)
; INT8U SignCT; //当前温度符号
; INT16U CurrentT; //当前温度
; INT16U BasicH; //湿度设定值(范围0~100%)
; INT16U CurrentH=2; //当前湿度
; INT8U ColdHotFlag=0; //当前风机状态(0舒适/1制冷/2制热),
; INT8U ColdHot[12]={"舒适制冷制热"};
; INT8U Hour[5]; //系统时间(y-m-d-h-s)
; //控制信息变量
; INT8U WindState; //风机状态(76排风阀,54送风阀,32新风阀,10回风阀)
; INT16U BackWindT; //回风管温度的数值
; INT8U BackWindST; //回风管温度的符号
; INT16U BackWindH; //回风管湿度
; /*[主函数]*/
; void main()
; {
.dbline 52
; INT8U buff[2];
; INT8U SendBuff[22];
; INT8U data[3];INT8U buf[6];
;
; INT8U tmp,k;
; int i,j;
; INT8U cs,channel;
;
; //各个模块初始化
; asm("SEI");
SEI
.dbline 53
; SCIInit();Lcdinit();AD_SPIInit();DA_SPIInit();
jsr _SCIInit
.dbline 53
jsr _Lcdinit
.dbline 53
jsr _AD_SPIInit
.dbline 53
jsr _DA_SPIInit
.dbline 54
; TLV5608Init();KeyInput_Init();
jsr _TLV5608Init
.dbline 54
jsr _KeyInput_Init
.dbline 55
; INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=0)
bclr #1,0x1a
.dbline 56
; SCC2|=(1<<5); //令SCC2.5=1,允许接收中断
bset #5,0x14
.dbline 57
; asm("CLI");
CLI
.dbline 59
; //LCD初始化信息----------------------
; Print(CurrentRow,1,">",1);//在当前行显示选中标志'>>'
lda #1
psha
ldhx #L2
pshx
pshh
psha
lda *_CurrentRow
psha
jsr _Print
ais #5
.dbline 60
; LcdShCh(LcdShowBuff);
ldhx #_LcdShowBuff
pshx
pshh
jsr _LcdShCh
ais #2
tsx
jmp L4
L3:
.dbline 63
; //0:等待接收设定温湿度和系统时间,ReSendFlag=1时执行主循环
; while(ReSendFlag)
; {
.dbline 66
; //1:Key功能[S]----------------------------------------------------------
; //Key.1:上移按钮标志
; tmp=KB_DefValue&0x20;
lda *_KB_DefValue
and #32
sta 40,X
.dbline 67
; if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=1;}
bne L6
.dbline 67
.dbline 67
lda *_KB_DefValue
ora #-16
sta *_KB_DefValue
.dbline 67
lda #1
sta *_MoveBtn
.dbline 67
L6:
.dbline 69
; //Key.2:下移按钮标志
; tmp=KB_DefValue&0x40;
lda *_KB_DefValue
and #64
sta 40,X
.dbline 70
; if(tmp==0) {KB_DefValue|=0xF0;MoveBtn=-1;}
bne L8
.dbline 70
.dbline 70
lda *_KB_DefValue
ora #-16
sta *_KB_DefValue
.dbline 70
lda #-1
sta *_MoveBtn
.dbline 70
L8:
.dbline 72
; //Key.3:确定按钮
; tmp=KB_DefValue&0x80;
lda *_KB_DefValue
and #-128
sta 40,X
.dbline 73
; if(tmp==0) {KB_DefValue|=0xF0;CertenFlag=(CertenFlag+1)%2;}
bne L10
.dbline 73
.dbline 73
lda *_KB_DefValue
ora #-16
sta *_KB_DefValue
.dbline 73
lda *_CertenFlag
add #1
ldx #2
clrh
div
pshh
pula
tsx
sta *_CertenFlag
.dbline 73
L10:
.dbline 75
; //Key.4:上移按钮功能
; if((MoveBtn==1)&&(CertenFlag==0)){MoveBtn=0;UpBtn(&CurrentRow);}
lda *_MoveBtn
cmp #1
bne L12
lda *_CertenFlag
bne L12
.dbline 75
.dbline 75
clr *_MoveBtn
.dbline 75
ldhx #_CurrentRow
pshx
pshh
jsr _UpBtn
ais #2
tsx
.dbline 75
L12:
.dbline 77
; //Key.5:下移按钮功能
; if((MoveBtn==-1)&&(CertenFlag==0)){MoveBtn=0;DownBtn(&CurrentRow);}
lda *_MoveBtn
cmp #-1
bne L14
lda *_CertenFlag
bne L14
.dbline 77
.dbline 77
clr *_MoveBtn
.dbline 77
ldhx #_CurrentRow
pshx
pshh
jsr _DownBtn
ais #2
tsx
.dbline 77
L14:
.dbline 79
; //Key.6:加1
; if(MoveBtn==1&&CertenFlag==1){MoveBtn=0;AddBtn(CurrentRow);}
lda *_MoveBtn
cmp #1
bne L16
lda *_CertenFlag
cmp #1
bne L16
.dbline 79
.dbline 79
clr *_MoveBtn
.dbline 79
lda *_CurrentRow
psha
jsr _AddBtn
ais #1
tsx
.dbline 79
L16:
.dbline 81
; //Key.7:减1
; if(MoveBtn==-1&&CertenFlag==1){MoveBtn=0;SubBtn(CurrentRow);}
lda *_MoveBtn
cmp #-1
bne L18
lda *_CertenFlag
cmp #1
bne L18
.dbline 81
.dbline 81
clr *_MoveBtn
.dbline 81
lda *_CurrentRow
psha
jsr _SubBtn
ais #1
tsx
.dbline 81
L18:
.dbline 84
L4:
.dbline 62
lda *_ReSendFlag
beq X0
jmp L3
X0:
.dbline -2
L1:
ais #41
.dbline 0 ; func end
rts
.dbsym l channel 0 c
.dbsym l cs 1 c
.dbsym l j 2 I
.dbsym l i 4 I
.dbsym l k 6 c
.dbsym l buf 7 A[6:6]c
.dbsym l data 13 A[3:3]c
.dbsym l SendBuff 16 A[22:22]c
.dbsym l buff 38 A[2:2]c
.dbsym l tmp 40 c
.dbend
.area bss
.dbfile main.c
_BackWindH::
.blkb 2
.dbsym e BackWindH _BackWindH s
_BackWindST::
.blkb 1
.dbsym e BackWindST _BackWindST c
_BackWindT::
.blkb 2
.dbsym e BackWindT _BackWindT s
_WindState::
.blkb 1
.dbsym e WindState _WindState c
_MoveBtn::
.blkb 1
.dbsym e MoveBtn _MoveBtn C
_Hour::
.blkb 5
.dbsym e Hour _Hour A[5:5]c
_BasicH::
.blkb 2
.dbsym e BasicH _BasicH s
_CurrentT::
.blkb 2
.dbsym e CurrentT _CurrentT s
_SignCT::
.blkb 1
.dbsym e SignCT _SignCT c
_SignBT::
.blkb 1
.dbsym e SignBT _SignBT c
_BasicT::
.blkb 2
.dbsym e BasicT _BasicT s
_TimeFlag::
.blkb 1
.dbsym e TimeFlag _TimeFlag c
_DAvalue::
.blkb 32
.dbsym e DAvalue _DAvalue A[32:16]s
_ADValue::
.blkb 44
.dbsym e ADValue _ADValue A[44:22]s
_SendBuf::
.blkb 1
.dbsym e SendBuf _SendBuf A[1:1]c
_ReBuf::
.blkb 1
.dbsym e ReBuf _ReBuf A[1:1]c
.area lit
L2:
.byte 62,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -