📄 mnj_1335.lis
字号:
.module MNJ_1335.c
.area data(ram, con, rel)
0000 _RX_data::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .blkb 3
.area idata
0001 000000 .byte 0,0,0
.area data(ram, con, rel)
0004 .dbfile MNJ_1335.c
0004 .dbsym e RX_data _RX_data A[4:4]c
0004 _RX_counter::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile MNJ_1335.c
0005 .dbsym e RX_counter _RX_counter c
0005 _ParaSysTable8::
0005 .blkb 2
.area idata
0005 3087 .byte 48,135
.area data(ram, con, rel)
0007 .dbfile MNJ_1335.c
0007 .blkb 2
.area idata
0007 0727 .byte 7,39
.area data(ram, con, rel)
0009 .dbfile MNJ_1335.c
0009 .blkb 2
.area idata
0009 42F0 .byte 'B,240
.area data(ram, con, rel)
000B .dbfile MNJ_1335.c
000B .blkb 2
.area idata
000B 2800 .byte 40,0
.area data(ram, con, rel)
000D .dbfile MNJ_1335.c
000D .dbsym e ParaSysTable8 _ParaSysTable8 A[8:8]c
000D _ParaScrTableA::
000D .blkb 2
.area idata
000D 0000 .byte 0,0
.area data(ram, con, rel)
000F .dbfile MNJ_1335.c
000F .blkb 2
.area idata
000F F000 .byte 240,0
.area data(ram, con, rel)
0011 .dbfile MNJ_1335.c
0011 .blkb 2
.area idata
0011 40F0 .byte 64,240
.area data(ram, con, rel)
0013 .dbfile MNJ_1335.c
0013 .blkb 2
.area idata
0013 0080 .byte 0,128
.area data(ram, con, rel)
0015 .dbfile MNJ_1335.c
0015 .blkb 2
.area idata
0015 0000 .byte 0,0
.area data(ram, con, rel)
0017 .dbfile MNJ_1335.c
0017 .dbsym e ParaScrTableA _ParaScrTableA A[10:10]c
.area text(rom, con, rel)
0000 .dbfile MNJ_1335.c
0000 .dbfunc e delay_us _delay_us fV
0000 ; time -> R16,R17
.even
0000 _delay_us::
0000 .dbline -1
0000 .dbline 106
0000 ; /*-------------------------------------------------------
0000 ; MD-500Ⅱ模拟定位机(ICCAVR)显示程序 2.0
0000 ; 作者:cyk8 2004.12.3
0000 ; 1、应包含头文件slavr.h
0000 ; 2、在工程选项中的Additional Lib中填入slavr
0000 ; 使编译器使用附加库文件libslavr.a
0000 ; 3、数据线D0~D7接PORTC
0000 ; WR------>用PD4代替
0000 ; RD------>用PD3代替
0000 ; A0------>用PD6代替
0000 ; RESET接RESET
0000 ; CS接地
0000 ; 4, 通讯协议:
0000 ; 主机发送的控制指令采用6个字符组成的字符串格式“(X/Y/S/C/G/T)”+数据1,数据2,数据3,数据4+“#”,
0000 ; 主机共发7B,7C,7D,7E,7F,
0000 ; a.第一个发的是X,Y,SAD,C,G,TH的ASCⅡ
0000 ; X--->58H(X)
0000 ; Y--->59H(Y)
0000 ; SAD->53H(S)
0000 ; C--->43H(C)
0000 ; G--->47H(G)
0000 ; TH-->54H(T)
0000 ; b.7B,7C,7D,7E四个数据
0000 ; c.最后一个7F=#23H(ASCⅡ="#"表示结束符号)
0000 ;
0000 ; ---------------------------------------------------------*/
0000 ; #include<ioM16V.h>
0000 ; #include <stdlib.h>
0000 ; #include <macros.h>
0000 ; #include <slavr.h>
0000 ;
0000 ; //宏定义//
0000 ; #define Uchar unsigned char
0000 ; #define Uint unsigned int
0000 ; #define paraP9 0x28 // 相对于320 X 240
0000 ; #define BasePart1 0x00
0000 ; #define BasePart2 0x40
0000 ; #define BasePart3 0x80
0000 ; #define BasePart4 0x00
0000 ; #define SystemSet 0x40
0000 ; #define Scroll 0x44
0000 ; #define DispOn 0x59
0000 ; #define DispOff 0x58
0000 ; #define Ovlay 0x5b
0000 ; #define HdotScr 0x5a
0000 ; #define CsrForm 0x5d
0000 ; #define CgramAdr 0x5c
0000 ; #define CsrDirR 0x4c
0000 ; #define CsrDirL 0x4d
0000 ; #define CsrDirU 0x4e
0000 ; #define CsrDirD 0x4f
0000 ; #define CsrW 0x46
0000 ; #define CsrR 0x47
0000 ; #define mWrite 0x42
0000 ; #define mRead 0x43
0000 ; #define A0_H PORTD |=0x40
0000 ; #define A0_L PORTD &=0xbf
0000 ; #define RD_H PORTD |=0x08
0000 ; #define WR_H PORTD |=0x10
0000 ; #define WR_L PORTD &=0xef
0000 ; #define LcmRdataPort A0_H
0000 ; #define LcmStatusPort A0_L
0000 ;
0000 ; unsigned char RX_data[4]={0}; //串口接收的数据
0000 ; unsigned char RX_counter=0; //串口接收到的字节数计数器
0000 ;
0000 ; void UART_init (void);
0000 ; void putchar (unsigned char c);
0000 ; void puts (unsigned char *s);
0000 ; void UART_rx (void);
0000 ; void delay_nms (unsigned int n);
0000 ;
0000 ; const Uchar *ptr; //液晶字符指针变量
0000 ;
0000 ; Uchar ParaSysTable8[]= {
0000 ; 0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 // P1-P8参数
0000 ; };
0000 ; Uchar ParaScrTableA[]= {
0000 ; 0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
0000 ; };
0000 ;
0000 ; void PutCdotInAlpha( Uchar Ox, Uchar Oy, Uchar Cnumber );
0000 ; void PutWordInAlpha(void);
0000 ; void TextDisp( Uchar Ox,Uchar Oy, const Uchar *ptr );
0000 ; void LcmInition( void );
0000 ; void LcmClear( void );
0000 ; void SelfInit( void );
0000 ; void delay(Uint t);
0000 ; void RollLaft( void );
0000 ; void Rollright( void );
0000 ; void RollDown( void );
0000 ; void RollUp( void );
0000 ; void BuildCgram( Uchar Base, Uchar EndlCode );
0000 ; void PutWordInAlpha(void);
0000 ; void PutWordInGraph( void );
0000 ; void PutWord24InGraph( void );
0000 ; void Linexy(Uint x0,Uchar y0,Uint xt,Uchar yt,Uchar att);
0000 ; void Sample3( void );
0000 ; void Point(Uint Px, Uchar Py, Uchar attr );
0000 ;
0000 ;
0000 ;
0000 ;
0000 ; /* 微秒级延时函数(mS) 本延时函数实际为delay_us(int time)中的int time=1->实际等于2us */
0000 ; void delay_us(int time)
0000 ; {
0000 L2:
0000 .dbline 108
0000 ; do
0000 ; {
0000 .dbline 109
0000 ; time--;
0000 0150 subi R16,1
0002 1040 sbci R17,0
0004 .dbline 110
0004 ; }
0004 L3:
0004 .dbline 111
0004 ; while (time>1);
0004 81E0 ldi R24,1
0006 90E0 ldi R25,0
0008 8017 cp R24,R16
000A 9107 cpc R25,R17
000C CCF3 brlt L2
000E .dbline -2
000E .dbline 112
000E ; }
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r time 16 I
0010 .dbend
0010 .dbfunc e delay_ms _delay_ms fV
0010 ; time -> R20,R21
.even
0010 _delay_ms::
0010 0E940000 xcall push_gset1
0014 A801 movw R20,R16
0016 .dbline -1
0016 .dbline 116
0016 ;
0016 ; /* 毫秒级延时函数 */
0016 ; void delay_ms(unsigned int time)
0016 ; {
0016 05C0 xjmp L7
0018 L6:
0018 .dbline 118
0018 .dbline 119
0018 04EF ldi R16,500
001A 11E0 ldi R17,1
001C F1DF xcall _delay_us
001E .dbline 120
001E 4150 subi R20,1
0020 5040 sbci R21,0
0022 .dbline 121
0022 L7:
0022 .dbline 117
0022 ; while(time!=0)
0022 4030 cpi R20,0
0024 4507 cpc R20,R21
0026 C1F7 brne L6
0028 X0:
0028 .dbline -2
0028 .dbline 122
0028 ; {
0028 ; delay_us(500);
0028 ; time--;
0028 ; }
0028 ; }
0028 L5:
0028 0E940000 xcall pop_gset1
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r time 20 i
002E .dbend
002E .dbfunc e sed1335_write_command _sed1335_write_command fV
002E ; commandcode -> R16
.even
002E _sed1335_write_command::
002E .dbline -1
002E .dbline 124
002E ; void sed1335_write_command(Uchar commandcode)
002E ; {
002E .dbline 125
002E ; PORTC=commandcode;
002E 05BB out 0x15,R16
0030 .dbline 126
0030 ; A0_H;
0030 969A sbi 0x12,6
0032 .dbline 127
0032 ; RD_H;
0032 939A sbi 0x12,3
0034 .dbline 128
0034 ; WR_L;
0034 82B3 in R24,0x12
0036 8F7E andi R24,239
0038 82BB out 0x12,R24
003A .dbline 129
003A ; WR_H;
003A 949A sbi 0x12,4
003C .dbline -2
003C .dbline 130
003C ; }
003C L9:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbsym r commandcode 16 c
003E .dbend
003E .dbfunc e sed1335_write_data _sed1335_write_data fV
003E ; data -> R16
.even
003E _sed1335_write_data::
003E .dbline -1
003E .dbline 133
003E ;
003E ; void sed1335_write_data(Uchar data)
003E ; {
003E .dbline 134
003E ; PORTC=data;
003E 05BB out 0x15,R16
0040 .dbline 135
0040 ; A0_L;
0040 82B3 in R24,0x12
0042 8F7B andi R24,191
0044 82BB out 0x12,R24
0046 .dbline 136
0046 ; RD_H;
0046 939A sbi 0x12,3
0048 .dbline 137
0048 ; WR_L;
0048 82B3 in R24,0x12
004A 8F7E andi R24,239
004C 82BB out 0x12,R24
004E .dbline 138
004E ; WR_H;
004E 949A sbi 0x12,4
0050 .dbline -2
0050 .dbline 139
0050 ; }
0050 L10:
0050 .dbline 0 ; func end
0050 0895 ret
0052 .dbsym r data 16 c
0052 .dbend
0052 .dbfunc e SelfInit _SelfInit fV
.even
0052 _SelfInit::
0052 .dbline -1
0052 .dbline 142
0052 ; //CPU初始化//
0052 ; void SelfInit( void )
0052 ; {
0052 .dbline 143
0052 ; DDRA =0xff;
0052 8FEF ldi R24,255
0054 8ABB out 0x1a,R24
0056 .dbline 144
0056 ; PORTA = 0x00;
0056 2224 clr R2
0058 2BBA out 0x1b,R2
005A .dbline 145
005A ; DDRB =0xff;
005A 87BB out 0x17,R24
005C .dbline 146
005C ; PORTB = 0x00;
005C 28BA out 0x18,R2
005E .dbline 147
005E ; DDRC = 0xff;
005E 84BB out 0x14,R24
0060 .dbline 148
0060 ; PORTC = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -