📄 main.lis
字号:
81FA 0000 .word 0
81FC 0000 .word 0
81FE 0000 .word 0
8200 0000 .word 0
8202 0000 .word 0
8204 0000 .word 0
8206 0000 .word 0
8208 0000 .word 0
820A 0000 .word 0
820C 07E0 .word 2016
820E 0C38 .word 3128
8210 1818 .word 6168
8212 381C .word 14364
8214 381C .word 14364
8216 381C .word 14364
8218 3C38 .word 15416
821A 1E30 .word 7728
821C 0F60 .word 3936
821E 0780 .word 1920
8220 03E0 .word 992
8222 05F0 .word 1520
8224 0CF8 .word 3320
8226 1878 .word 6264
8228 383C .word 14396
822A 381C .word 14364
822C 381C .word 14364
822E 381C .word 14364
8230 1C18 .word 7192
8232 0E30 .word 3632
8234 07E0 .word 2016
8236 0000 .word 0
8238 0000 .word 0
823A 0000 .word 0
823C 0000 .word 0
823E 0000 .word 0
8240 0000 .word 0
8242 0000 .word 0
8244 0000 .word 0
8246 0000 .word 0
8248 0000 .word 0
824A 0000 .word 0
824C 07C0 .word 1984
824E 0C70 .word 3184
8250 1838 .word 6200
8252 301C .word 12316
8254 701C .word 28700
8256 700E .word 28686
8258 700E .word 28686
825A 700E .word 28686
825C 700E .word 28686
825E 780E .word 30734
8260 380E .word 14350
8262 1C1E .word 7198
8264 0FEC .word 4076
8266 001C .word 28
8268 0038 .word 56
826A 0030 .word 48
826C 0070 .word 112
826E 00E0 .word 224
8270 0180 .word 384
8272 0F00 .word 3840
8274 7800 .word 30720
8276 0000 .word 0
8278 0000 .word 0
827A 0000 .word 0
827C 0000 .word 0
827E 0000 .word 0
8280 .dbsym e BigNumCode _BigNumCode A[640:320]i
.area lit
.area text
0000 .dbfile main.c
0000 .dbfunc e main _main fV
0000 ; tmp -> 0,X
0000 ; RF -> 1,X
0000 _main::
0000 .dbline -1
0000 A7FD ais #-3
0002 95 tsx
0003 .dbline 82
0003 ; /*-----------------------------------------------------*
0003 ; *工 程 名:TG12864E02.prj *
0003 ; *硬件连接: 1.LCD的DB0-7与MCU的B口的PTB0-7连接 *
0003 ; * 2.LCD的RS,R/W,E与MCU的PTC0,PTC1,PTC2连接 *
0003 ; * 功 能:初始时显示:"苏州大学 " *
0003 ; * "单片机实验室 " *
0003 ; * "http://sumcu.s " *
0003 ; * "uda.edu.cn " *
0003 ; *-----------------------------------------------------*/
0003 ;
0003 ; /*[头文件]*/
0003 ; #include "GP32C.h" //映像寄存器地址头文件
0003 ; #include "lcd.h" //Lcd头文件
0003 ; #include "SCI.h" //SCI头文件
0003 ;
0003 ; //有关定时器寄存器位定义
0003 ; #define TSTOPBit 5 //定时器计数停止位
0003 ;
0003 ; //定时器初始化函数声明
0003 ; void Timer1init(void);
0003 ; //SCI初始化
0003 ; extern void SCIInit(void);
0003 ;
0003 ; //全局变量声明
0003 ; unsigned char Num=0; //显示的数据
0003 ; unsigned char FLine=0; //得到焦点的行号
0003 ; //[外部定义64个字节的Lcd显示缓冲区]
0003 ; unsigned char LcdShowBuff[64]=" as "
0003 ; " df "
0003 ; " df "
0003 ; " da ";
0003 ; unsigned char YNo=0,XNo=0;
0003 ; unsigned int Data=12;
0003 ; //*====================================================*
0003 ;
0003 ; #pragma abs_address:0x8000
0003 ; const INT16U BigNumCode[320]={
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,0x0C60, //"0"
0003 ; 0x0830,0x1830,0x3018,0x3018,0x3018,0x3018,0x701C,0x701C,
0003 ; 0x701C,0x701C,0x701C,0x3018,0x3018,0x3018,0x3018,0x1830,
0003 ; 0x1830,0x0C60,0x0380,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0040,0x03C0, //"1"
0003 ; 0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
0003 ; 0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
0003 ; 0x01C0,0x01C0,0x0FF8,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x1FF0, //"2"
0003 ; 0x3078,0x603C,0x403C,0x001C,0x001C,0x001C,0x0018,0x0038,
0003 ; 0x0030,0x0060,0x0040,0x00C0,0x0180,0x0300,0x0600,0x0C02,
0003 ; 0x1806,0x3FFC,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0FF0, //"3"
0003 ; 0x1878,0x2038,0x0018,0x0018,0x0010,0x0020,0x0040,0x01F0,
0003 ; 0x07F8,0x00F8,0x003C,0x001C,0x000C,0x000C,0x000C,0x0008,
0003 ; 0x3810,0x3C20,0x1FC0,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0070, //"4"
0003 ; 0x00F0,0x00F0,0x0170,0x0170,0x0270,0x0470,0x0470,0x0870,
0003 ; 0x1870,0x1070,0x2070,0x6070,0x7FFE,0x7FFE,0x0070,0x0070,
0003 ; 0x0070,0x0070,0x0070,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x07F0, //"5"
0003 ; 0x07F0,0x0800,0x0800,0x1E00,0x1F80,0x3FE0,0x03F0,0x00F0,
0003 ; 0x0078,0x0038,0x0018,0x0018,0x0018,0x0018,0x0010,0x0030,
0003 ; 0x3060,0x3FC0,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003C,0x00E0, //"6"
0003 ; 0x0380,0x0700,0x0E00,0x1C00,0x1800,0x3800,0x33E0,0x7C70,
0003 ; 0x7038,0x703C,0x701C,0x701C,0x701C,0x701C,0x301C,0x3818,
0003 ; 0x1830,0x0C70,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1FFE,0x3FFE, //"7"
0003 ; 0x3FFC,0x200C,0x401C,0x0018,0x0018,0x0038,0x0030,0x0030,
0003 ; 0x0070,0x0060,0x0060,0x00E0,0x00C0,0x00C0,0x01C0,0x0180,
0003 ; 0x0180,0x0380,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0C38, //"8"
0003 ; 0x1818,0x381C,0x381C,0x381C,0x3C38,0x1E30,0x0F60,0x0780,
0003 ; 0x03E0,0x05F0,0x0CF8,0x1878,0x383C,0x381C,0x381C,0x381C,
0003 ; 0x1C18,0x0E30,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,
0003 ; 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0C70, //"9"
0003 ; 0x1838,0x301C,0x701C,0x700E,0x700E,0x700E,0x700E,0x780E,
0003 ; 0x380E,0x1C1E,0x0FEC,0x001C,0x0038,0x0030,0x0070,0x00E0,
0003 ; 0x0180,0x0F00,0x7800,0x0000,0x0000,0x0000,0x0000,0x0000};
0003 ; #pragma end_abs_address
0003 ;
0003 ; /*[主函数]*/
0003 ; void main()
0003 ; {
0003 .dbline 85
0003 ; unsigned char *RF; //接收标志
0003 ; unsigned char tmp; //行号标志
0003 ; asm("SEI"); //关总中断
0003 9B SEI
0004 .dbline 86
0004 ; Timer1init(); //调定时器1初始化子程序
0004 CD0053 jsr _Timer1init
0007 .dbline 87
0007 ; Lcdinit(); //Lcd初始化
0007 CD0000 jsr _Lcdinit
000A .dbline 88
000A ; SCIInit(); //SCI初始化
000A CD0000 jsr _SCIInit
000D 95 tsx
000E .dbline 89
000E ; asm("CLI"); //开总中断
000E 9A CLI
000F 203D bra L3
0011 L2:
0011 .dbline 93
0011 ; //[主循环]
0011 ; //循环等待接收
0011 ; while(1)
0011 ; {
0011 .dbline 99
0011 ; //LcdShBigCh(0,0,(INT16U *)(BigChCode_NUM[Num]));
0011 ; //tmp=SCIRe1(RF);
0011 ; //if(tmp!=0xFF) Num=tmp;
0011 ; //SCISend1(Num);
0011 ;
0011 ; SCISend1(86);
0011 A656 lda #86
0013 87 psha
0014 CD0000 jsr _SCISend1
0017 A701 ais #1
0019 95 tsx
001A .dbline 100
001A ; if(SCIRe1(RF)!=56) continue;
001A E602 lda 2,X
001C 87 psha
001D E601 lda 1,X
001F 87 psha
0020 CD0000 jsr _SCIRe1
0023 A702 ais #2
0025 95 tsx
0026 B700 sta *__r1
0028 A138 cmp #56
002A 2702 beq L5
002C .dbline 100
002C 2020 bra L3
002E L5:
002E .dbline 101
002E E602 lda 2,X
0030 87 psha
0031 E601 lda 1,X
0033 87 psha
0034 CD0000 jsr _SCIRe1
0037 A702 ais #2
0039 95 tsx
003A B700 sta *__r1
003C B742 sta *_YNo
003E .dbline 102
003E E602 lda 2,X
0040 87 psha
0041 E601 lda 1,X
0043 87 psha
0044 CD0000 jsr _SCIRe1
0047 A702 ais #2
0049 95 tsx
004A B700 sta *__r1
004C B743 sta *_XNo
004E .dbline 114
004E L3:
004E .dbline 92
004E 20C1 bra L2
0050 X0:
0050 .dbline -2
0050 L1:
0050 A703 ais #3
0052 .dbline 0 ; func end
0052 81 rts
0053 .dbsym l tmp 0 c
0053 .dbsym l RF 1 pc
0053 .dbend
0053 .dbfunc e Timer1init _Timer1init fV
0053 _Timer1init::
0053 .dbline -1
0053 .dbline 124
0053 ; YNo=SCIRe1(RF);
0053 ; XNo=SCIRe1(RF);
0053 ;
0053 ; /*
0053 ; if(LN==1) //将接收到的数据放在第一行显示缓冲区
0053 ; SCIReN(16,LcdShowBuff);
0053 ; else if(LN==2)//将接收到的数据放在第二行显示缓冲区
0053 ; SCIReN(16,LcdShowBuff+16);
0053 ; else if(LN==3)//将接收到的数据放在第三行显示缓冲区
0053 ; SCIReN(16,LcdShowBuff+32);
0053 ; else if(LN==4)//将接收到的数据放在第四行显示缓冲区
0053 ; SCIReN(16,LcdShowBuff+48);
0053 ; */
0053 ; }
0053 ; }
0053 ;
0053 ; /*[内部直接调用子程序存放处]*/
0053 ; /*Timer1init:定时器1初始化子程序-----------------------*
0053 ; *功能:对定时器1初始化 *
0053 ; *参数:无 *
0053 ; *返回:无 *
0053 ; *-----------------------------------------------------*/
0053 ; void Timer1init(void)
0053 ; {
0053 .dbline 126
0053 ; //允许溢出中断、不启动计数、分频因子=64
0053 ; T1SC=0b01100110;
0053 A666 lda #102
0055 B720 sta 0x20
0057 .dbline 128
0057 ; //计数寄存器初值=0x0000
0057 ; T1CNTH=0x00; T1CNTL=0x00;
0057 3F21 clr 0x21
0059 .dbline 128
0059 3F22 clr 0x22
005B .dbline 131
005B ; //1/2秒产生1次溢出中断
005B ; //计数寄存器=1/2×(2457600/64)=1200
005B ; T1MODH=0x12; T1MODL=0x00;
005B A612 lda #18
005D B723 sta 0x23
005F .dbline 131
005F 3F24 clr 0x24
0061 .dbline 133
0061 ; //允许定时器1计数寄存器计数
0061 ; T1SC&=~(1<<TSTOPBit);
0061 1B20 bclr #5,0x20
0063 .dbline -2
0063 L7:
0063 .dbline 0 ; func end
0063 81 rts
0064 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -