📄 main.s
字号:
.module main.c
.area data
_Num::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e Num _Num c
_FLine::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e FLine _FLine c
_LcdShowBuff::
.blkb 64
.area idata
.byte 32,32,32,32,32,32,32,32,32,32,32,'a,'s,32,32,32
.byte 32,32,32,32,32,32,32,32,32,32,32,32,'d,'f,32,32
.byte 32,32,32,32,32,32,32,32,32,32,32,32,'d,'f,32,32
.byte 32,32,32,32,32,32,32,32,32,32,32,32,'d,'a,32,32
.area data
.dbfile main.c
.dbsym e LcdShowBuff _LcdShowBuff A[64:64]c
_YNo::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e YNo _YNo c
_XNo::
.blkb 1
.area idata
.byte 0
.area data
.dbfile main.c
.dbsym e XNo _XNo c
_Data::
.blkb 2
.area idata
.word 12
.area data
.dbfile main.c
.dbsym e Data _Data i
.area memory(abs)
.org 0x8000
.dbfile main.c
_BigNumCode::
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 896
.word 3168
.word 2096
.word 6192
.word 12312
.word 12312
.word 12312
.word 12312
.word 28700
.word 28700
.word 28700
.word 28700
.word 28700
.word 12312
.word 12312
.word 12312
.word 12312
.word 6192
.word 6192
.word 3168
.word 896
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 64
.word 960
.word 960
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 448
.word 4088
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 1984
.word 8176
.word 12408
.word 24636
.word 16444
.word 28
.word 28
.word 28
.word 24
.word 56
.word 48
.word 96
.word 64
.word 192
.word 384
.word 768
.word 1536
.word 3074
.word 6150
.word 16380
.word 32764
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 1984
.word 4080
.word 6264
.word 8248
.word 24
.word 24
.word 16
.word 32
.word 64
.word 496
.word 2040
.word 248
.word 60
.word 28
.word 12
.word 12
.word 12
.word 8
.word 14352
.word 15392
.word 8128
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 48
.word 112
.word 240
.word 240
.word 368
.word 368
.word 624
.word 1136
.word 1136
.word 2160
.word 6256
.word 4208
.word 8304
.word 24688
.word 32766
.word 32766
.word 112
.word 112
.word 112
.word 112
.word 112
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 1016
.word 2032
.word 2032
.word 2048
.word 2048
.word 7680
.word 8064
.word 16352
.word 1008
.word 240
.word 120
.word 56
.word 24
.word 24
.word 24
.word 24
.word 16
.word 48
.word 12384
.word 16320
.word 7936
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 60
.word 224
.word 896
.word 1792
.word 3584
.word 7168
.word 6144
.word 14336
.word 13280
.word 31856
.word 28728
.word 28732
.word 28700
.word 28700
.word 28700
.word 28700
.word 12316
.word 14360
.word 6192
.word 3184
.word 1984
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 8190
.word 16382
.word 16380
.word 8204
.word 16412
.word 24
.word 24
.word 56
.word 48
.word 48
.word 112
.word 96
.word 96
.word 224
.word 192
.word 192
.word 448
.word 384
.word 384
.word 896
.word 768
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 2016
.word 3128
.word 6168
.word 14364
.word 14364
.word 14364
.word 15416
.word 7728
.word 3936
.word 1920
.word 992
.word 1520
.word 3320
.word 6264
.word 14396
.word 14364
.word 14364
.word 14364
.word 7192
.word 3632
.word 2016
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 1984
.word 3184
.word 6200
.word 12316
.word 28700
.word 28686
.word 28686
.word 28686
.word 28686
.word 30734
.word 14350
.word 7198
.word 4076
.word 28
.word 56
.word 48
.word 112
.word 224
.word 384
.word 3840
.word 30720
.word 0
.word 0
.word 0
.word 0
.word 0
.dbsym e BigNumCode _BigNumCode A[640:320]i
.area lit
.area text
.dbfile main.c
.dbfunc e main _main fV
; tmp -> 0,X
; RF -> 1,X
_main::
.dbline -1
ais #-3
tsx
.dbline 82
; /*-----------------------------------------------------*
; *工 程 名:TG12864E02.prj *
; *硬件连接: 1.LCD的DB0-7与MCU的B口的PTB0-7连接 *
; * 2.LCD的RS,R/W,E与MCU的PTC0,PTC1,PTC2连接 *
; * 功 能:初始时显示:"苏州大学 " *
; * "单片机实验室 " *
; * "http://sumcu.s " *
; * "uda.edu.cn " *
; *-----------------------------------------------------*/
;
; /*[头文件]*/
; #include "GP32C.h" //映像寄存器地址头文件
; #include "lcd.h" //Lcd头文件
; #include "SCI.h" //SCI头文件
;
; //有关定时器寄存器位定义
; #define TSTOPBit 5 //定时器计数停止位
;
; //定时器初始化函数声明
; void Timer1init(void);
; //SCI初始化
; extern void SCIInit(void);
;
; //全局变量声明
; unsigned char Num=0; //显示的数据
; unsigned char FLine=0; //得到焦点的行号
; //[外部定义64个字节的Lcd显示缓冲区]
; unsigned char LcdShowBuff[64]=" as "
; " df "
; " df "
; " da ";
; unsigned char YNo=0,XNo=0;
; unsigned int Data=12;
; //*====================================================*
;
; #pragma abs_address:0x8000
; const INT16U BigNumCode[320]={
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,0x0C60, //"0"
; 0x0830,0x1830,0x3018,0x3018,0x3018,0x3018,0x701C,0x701C,
; 0x701C,0x701C,0x701C,0x3018,0x3018,0x3018,0x3018,0x1830,
; 0x1830,0x0C60,0x0380,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0040,0x03C0, //"1"
; 0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
; 0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
; 0x01C0,0x01C0,0x0FF8,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x1FF0, //"2"
; 0x3078,0x603C,0x403C,0x001C,0x001C,0x001C,0x0018,0x0038,
; 0x0030,0x0060,0x0040,0x00C0,0x0180,0x0300,0x0600,0x0C02,
; 0x1806,0x3FFC,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0FF0, //"3"
; 0x1878,0x2038,0x0018,0x0018,0x0010,0x0020,0x0040,0x01F0,
; 0x07F8,0x00F8,0x003C,0x001C,0x000C,0x000C,0x000C,0x0008,
; 0x3810,0x3C20,0x1FC0,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0070, //"4"
; 0x00F0,0x00F0,0x0170,0x0170,0x0270,0x0470,0x0470,0x0870,
; 0x1870,0x1070,0x2070,0x6070,0x7FFE,0x7FFE,0x0070,0x0070,
; 0x0070,0x0070,0x0070,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x07F0, //"5"
; 0x07F0,0x0800,0x0800,0x1E00,0x1F80,0x3FE0,0x03F0,0x00F0,
; 0x0078,0x0038,0x0018,0x0018,0x0018,0x0018,0x0010,0x0030,
; 0x3060,0x3FC0,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003C,0x00E0, //"6"
; 0x0380,0x0700,0x0E00,0x1C00,0x1800,0x3800,0x33E0,0x7C70,
; 0x7038,0x703C,0x701C,0x701C,0x701C,0x701C,0x301C,0x3818,
; 0x1830,0x0C70,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1FFE,0x3FFE, //"7"
; 0x3FFC,0x200C,0x401C,0x0018,0x0018,0x0038,0x0030,0x0030,
; 0x0070,0x0060,0x0060,0x00E0,0x00C0,0x00C0,0x01C0,0x0180,
; 0x0180,0x0380,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0C38, //"8"
; 0x1818,0x381C,0x381C,0x381C,0x3C38,0x1E30,0x0F60,0x0780,
; 0x03E0,0x05F0,0x0CF8,0x1878,0x383C,0x381C,0x381C,0x381C,
; 0x1C18,0x0E30,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,
; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0C70, //"9"
; 0x1838,0x301C,0x701C,0x700E,0x700E,0x700E,0x700E,0x780E,
; 0x380E,0x1C1E,0x0FEC,0x001C,0x0038,0x0030,0x0070,0x00E0,
; 0x0180,0x0F00,0x7800,0x0000,0x0000,0x0000,0x0000,0x0000};
; #pragma end_abs_address
;
; /*[主函数]*/
; void main()
; {
.dbline 85
; unsigned char *RF; //接收标志
; unsigned char tmp; //行号标志
; asm("SEI"); //关总中断
SEI
.dbline 86
; Timer1init(); //调定时器1初始化子程序
jsr _Timer1init
.dbline 87
; Lcdinit(); //Lcd初始化
jsr _Lcdinit
.dbline 88
; SCIInit(); //SCI初始化
jsr _SCIInit
tsx
.dbline 89
; asm("CLI"); //开总中断
CLI
bra L3
L2:
.dbline 93
; //[主循环]
; //循环等待接收
; while(1)
; {
.dbline 99
; //LcdShBigCh(0,0,(INT16U *)(BigChCode_NUM[Num]));
; //tmp=SCIRe1(RF);
; //if(tmp!=0xFF) Num=tmp;
; //SCISend1(Num);
;
; SCISend1(86);
lda #86
psha
jsr _SCISend1
ais #1
tsx
.dbline 100
; if(SCIRe1(RF)!=56) continue;
lda 2,X
psha
lda 1,X
psha
jsr _SCIRe1
ais #2
tsx
sta *__r1
cmp #56
beq L5
.dbline 100
bra L3
L5:
.dbline 101
lda 2,X
psha
lda 1,X
psha
jsr _SCIRe1
ais #2
tsx
sta *__r1
sta *_YNo
.dbline 102
lda 2,X
psha
lda 1,X
psha
jsr _SCIRe1
ais #2
tsx
sta *__r1
sta *_XNo
.dbline 114
L3:
.dbline 92
bra L2
X0:
.dbline -2
L1:
ais #3
.dbline 0 ; func end
rts
.dbsym l tmp 0 c
.dbsym l RF 1 pc
.dbend
.dbfunc e Timer1init _Timer1init fV
_Timer1init::
.dbline -1
.dbline 124
; YNo=SCIRe1(RF);
; XNo=SCIRe1(RF);
;
; /*
; if(LN==1) //将接收到的数据放在第一行显示缓冲区
; SCIReN(16,LcdShowBuff);
; else if(LN==2)//将接收到的数据放在第二行显示缓冲区
; SCIReN(16,LcdShowBuff+16);
; else if(LN==3)//将接收到的数据放在第三行显示缓冲区
; SCIReN(16,LcdShowBuff+32);
; else if(LN==4)//将接收到的数据放在第四行显示缓冲区
; SCIReN(16,LcdShowBuff+48);
; */
; }
; }
;
; /*[内部直接调用子程序存放处]*/
; /*Timer1init:定时器1初始化子程序-----------------------*
; *功能:对定时器1初始化 *
; *参数:无 *
; *返回:无 *
; *-----------------------------------------------------*/
; void Timer1init(void)
; {
.dbline 126
; //允许溢出中断、不启动计数、分频因子=64
; T1SC=0b01100110;
lda #102
sta 0x20
.dbline 128
; //计数寄存器初值=0x0000
; T1CNTH=0x00; T1CNTL=0x00;
clr 0x21
.dbline 128
clr 0x22
.dbline 131
; //1/2秒产生1次溢出中断
; //计数寄存器=1/2×(2457600/64)=1200
; T1MODH=0x12; T1MODL=0x00;
lda #18
sta 0x23
.dbline 131
clr 0x24
.dbline 133
; //允许定时器1计数寄存器计数
; T1SC&=~(1<<TSTOPBit);
bclr #5,0x20
.dbline -2
L7:
.dbline 0 ; func end
rts
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -