📄 ocmj815b.lis
字号:
.module OCMJ815B.c
.area text(rom, con, rel)
0000 .dbfile F:\项目\电子设计培训计划\MYOWNT~1.12/function.h
0000 .dbfunc e send _send fV
0000 ; dat -> R16
.even
0000 _send::
0000 .dbline -1
0000 .dbline 53
0000 ; /*^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ */
0000 ; /*&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&&&&&&*/
0000 ; //函数名: main()
0000 ; //功能: 主函数,先显示一行字和X=,Y=然后判断INT是否中断,中断了再显示
0000 ; //触摸处内容和触摸处坐标值
0000 ; //输入: 无
0000 ; //输出: 无
0000 ; //By: 李 平 2007.7.11
0000 ; //备注:
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "Portini.h"
0000 ; #include "function.h"
0000 ; #include "Data.h"
0000 ; #include "delay.h"
0000 ;
0000 ; void main ()
0000 ; {
0000 ; uchar j=0 ;
0000 ; DDRA=0XFF;
0000 ; DDRB=0X1e;
0000 ; req_clr;
0000 ; DDRB=0x1f; //busy=1;
0000 ; busy_set;
0000 ; DDRB=0x1e;
0000 ; while(1)
0000 ; {
0000 ; disp1line(code0); //显示一行字
0000 ; write(0xf9,24,0); //显示X
0000 ; send(0x58);
0000 ; write(0xf9,24,16); //显示Y
0000 ; send(0x59);
0000 ; write(0xf9,25,0); //显示‘= ’
0000 ; send(0x3d);
0000 ; write(0xf9,25,16); //显示‘= ’
0000 ; send(0x3d);
0000 ; //画横线//
0000 ; for(j=0;j<128;j++)
0000 ; {
0000 ; write(0xf2,239,j);
0000 ; // send(1);
0000 ; }
0000 ; // disp_img(img);
0000 ; /*
0000 ; write(0xf9,5,16);
0000 ; send(0x31); //1
0000 ; write(0xf9,5,48);
0000 ; send(0x32); //2
0000 ; write(0xf9,5,80);
0000 ; send(0x33); //3
0000 ; write(0xf9,5,112);
0000 ; send(0x34); //4
0000 ;
0000 L2:
0000 .dbline 55
0000 L3:
0000 .dbline 54
0000 ; write(0xf9,12,16);
0000 26B2 in R2,0x16
0002 3324 clr R3
0004 20FC sbrc R2,0
0006 FCCF rjmp L2
0008 .dbline 56
0008 ; send(0x35); //5
0008 ; write(0xf9,12,48);
0008 0BBB out 0x1b,R16
000A .dbline 57
000A ; send(0x36); //6
000A C19A sbi 0x18,1
000C L5:
000C .dbline 59
000C L6:
000C .dbline 58
000C ; write(0xf9,12,80);
000C B09B sbis 0x16,0
000E FECF rjmp L5
0010 .dbline 60
0010 ; send(0x37); //7
0010 ; write(0xf9,12,112);
0010 C198 cbi 0x18,1
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r dat 16 c
0014 .dbend
0014 .dbfunc e write _write fV
0014 ; addr_y -> y+4
0014 ; addr_x -> R20
0014 ; comm -> R22
.even
0014 _write::
0014 0E940000 xcall push_gset2
0018 422F mov R20,R18
001A 602F mov R22,R16
001C .dbline -1
001C .dbline 71
001C ; send(0x38); //8
001C ;
001C ; write(0xf9,20,16);
001C ; send(0x39); //9
001C ; write(0xf9,20,48);
001C ; send(0x41); //A
001C ; write(0xf9,20,80);
001C ; send(0x42); //B
001C ; write(0xf9,20,112);
001C ; send(0x43); //C
001C ;
001C .dbline 72
001C ; // write(0xf9,27,16);
001C 062F mov R16,R22
001E F0DF xcall _send
0020 .dbline 73
0020 ; // send(0x44); //D
0020 042F mov R16,R20
0022 EEDF xcall _send
0024 .dbline 74
0024 ; write(0xf9,27,48);
0024 0C81 ldd R16,y+4
0026 ECDF xcall _send
0028 .dbline -2
0028 L8:
0028 0E940000 xcall pop_gset2
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym l addr_y 4 c
002E .dbsym r addr_x 20 c
002E .dbsym r comm 22 c
002E .dbend
002E .dbfunc e disp1line _disp1line fV
002E ; i -> R20
002E ; chn -> R22,R23
.even
002E _disp1line::
002E 0E940000 xcall push_gset2
0032 B801 movw R22,R16
0034 2197 sbiw R28,1
0036 .dbline -1
0036 .dbline 85
0036 ; send(0x45); //E
0036 ; write(0xf9,27,80);
0036 ; send(0x46); //F
0036 ; write(0xf9,27,112);
0036 ; send(0x47); //G
0036 ;
0036 ; //send(0xf5); //上移一个点阵
0036 ; */
0036 ; if(!(intt))
0036 ; {
0036 ; delay_nus(10000);
0036 .dbline 87
0036 ; if(!(intt))
0036 ; {
0036 42E0 ldi R20,2
0038 19C0 xjmp L13
003A L10:
003A .dbline 88
003A .dbline 89
003A 2224 clr R2
003C 2882 std y+0,R2
003E 242F mov R18,R20
0040 2250 subi R18,2
0042 00EF ldi R16,240
0044 E7DF xcall _write
0046 .dbline 90
0046 82E0 ldi R24,2
0048 849F mul R24,R20
004A F001 movw R30,R0
004C 3497 sbiw R30,4
004E E60F add R30,R22
0050 F71F adc R31,R23
0052 0081 ldd R16,z+0
0054 005A subi R16,160
0056 D4DF xcall _send
0058 .dbline 91
0058 82E0 ldi R24,2
005A 849F mul R24,R20
005C F001 movw R30,R0
005E 3497 sbiw R30,4
0060 E60F add R30,R22
0062 F71F adc R31,R23
0064 0181 ldd R16,z+1
0066 005A subi R16,160
0068 CBDF xcall _send
006A .dbline 92
006A L11:
006A .dbline 87
006A 4395 inc R20
006C L13:
006C .dbline 87
006C 4E30 cpi R20,14
006E 28F3 brlo L10
0070 .dbline -2
0070 L9:
0070 2196 adiw R28,1
0072 0E940000 xcall pop_gset2
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbsym r i 20 c
0078 .dbsym r chn 22 pc
0078 .dbend
0078 .dbfunc e disp2lines _disp2lines fV
0078 ; i -> R20
0078 ; chn -> R22,R23
.even
0078 _disp2lines::
0078 0E940000 xcall push_gset2
007C B801 movw R22,R16
007E 2197 sbiw R28,1
0080 .dbline -1
0080 .dbline 103
0080 ; DDRB=0X5e; //ip=1;
0080 ; int_set; //而非clr;
0080 ; DDRB=0X1e;
0080 ; bang();
0080 ; }
0080 ; }
0080 ; }
0080 ; }
0080 ; /*^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ */
0080 ; /*&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&&&&&&*/
0080 ; //函数名: bang()
0080 ; //功能: 有触摸的时候,显示触摸处的X,Y值并执行触摸操作
0080 ; //输入: 条件int=0
0080 ; //输出: 无
0080 ; //By: 李 平 2007.7.11
0080 ; //备注:
0080 .dbline 105
0080 ; void bang(void)
0080 ; {
0080 42E0 ldi R20,2
0082 19C0 xjmp L18
0084 L15:
0084 .dbline 106
0084 .dbline 107
0084 82E0 ldi R24,2
0086 8883 std y+0,R24
0088 242F mov R18,R20
008A 2250 subi R18,2
008C 00EF ldi R16,240
008E C2DF xcall _write
0090 .dbline 108
0090 82E0 ldi R24,2
0092 849F mul R24,R20
0094 F001 movw R30,R0
0096 3497 sbiw R30,4
0098 E60F add R30,R22
009A F71F adc R31,R23
009C 0081 ldd R16,z+0
009E 005A subi R16,160
00A0 AFDF xcall _send
00A2 .dbline 109
00A2 82E0 ldi R24,2
00A4 849F mul R24,R20
00A6 F001 movw R30,R0
00A8 3497 sbiw R30,4
00AA E60F add R30,R22
00AC F71F adc R31,R23
00AE 0181 ldd R16,z+1
00B0 005A subi R16,160
00B2 A6DF xcall _send
00B4 .dbline 110
00B4 L16:
00B4 .dbline 105
00B4 4395 inc R20
00B6 L18:
00B6 .dbline 105
00B6 4B30 cpi R20,11
00B8 28F3 brlo L15
00BA .dbline 111
00BA ; unsigned int X=0,Y=0;
00BA ; //delay(10000);
00BA ; //中断后延时以消除抖动,使得采样数据更准确
00BA ; spi_start(); //启动SPI
00BA ; delay_nus(2);
00BA ; WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
00BA 42E0 ldi R20,2
00BC 17C0 xjmp L22
00BE L19:
00BE .dbline 112
00BE .dbline 113
00BE 83E0 ldi R24,3
00C0 8883 std y+0,R24
00C2 242F mov R18,R20
00C4 2250 subi R18,2
00C6 00EF ldi R16,240
00C8 A5DF xcall _write
00CA .dbline 114
00CA 82E0 ldi R24,2
00CC 849F mul R24,R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -