📄 ocmj815b.lst
字号:
0251 0F00 LSL R16
(0194) clk_clr; //上升沿有效
0252 98C2 CBI 0x18,2
(0195) asm("nop");
0253 0000 NOP
(0196) asm("nop");
0254 0000 NOP
(0197) asm("nop");
0255 0000 NOP
(0198) clk_set;
0256 9AC2 SBI 0x18,2
(0199) asm("nop");
0257 0000 NOP
(0200) asm("nop");
0258 0000 NOP
(0201) asm("nop");
0259 0000 NOP
025A 9543 INC R20
025B 3048 CPI R20,0x8
025C F378 BCS 0x024C
025D 940E0452 CALL pop_gset1
025F 9508 RET
(0202) }
(0203) }
(0204) /*^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ */
(0205) /*&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&&&&&&*/
(0206) //函数名: ReadFromCharFrom7843()
(0207) //功能: SPI 读数据
(0208) //输入: 无
(0209) //输出: 读出的X或Y坐标值num (0-4069)
(0210) //By: 李 平 2007.7.11
(0211) //备注:
(0212) unsigned int ReadFromCharFrom7843(void)
(0213) {
(0214) uchar count=0;
_ReadFromCharFrom7843:
Num --> R16
count --> R18
0260 2722 CLR R18
(0215) uint Num=0;
0261 2700 CLR R16
0262 2711 CLR R17
(0216) for(count=0;count<12;count++)
0263 C00F RJMP 0x0273
(0217) {
(0218) Num<<=1;
0264 0F00 LSL R16
0265 1F11 ROL R17
(0219) clk_set;
0266 9AC2 SBI 0x18,2
(0220) /*
(0221) _nop_();
(0222) _nop_();
(0223) _nop_();*/
(0224) asm("nop");
0267 0000 NOP
(0225) asm("nop");
0268 0000 NOP
(0226) asm("nop");
0269 0000 NOP
(0227) clk_clr;
026A 98C2 CBI 0x18,2
(0228) asm("nop");
026B 0000 NOP
(0229) asm("nop");
026C 0000 NOP
(0230) asm("nop");
026D 0000 NOP
(0231) if(dout)
026E 9BB5 SBIS 0x16,5
026F C002 RJMP 0x0272
(0232) Num++;
0270 5F0F SUBI R16,0xFF
0271 4F1F SBCI R17,0xFF
0272 9523 INC R18
0273 302C CPI R18,0xC
0274 F378 BCS 0x0264
(0233) }
(0234) return(Num);
0275 9508 RET
_disp_ciclr:
Y --> R22
X --> R20
0276 940E044D CALL push_gset2
0278 01B9 MOVW R22,R18
0279 01A8 MOVW R20,R16
(0235) }
(0236)
(0237)
(0238) /*^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ */
(0239) /*&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&&&&&&*/
(0240) //函数名: void disp_ciclr(uint X,uint Y)
(0241) //功能: 显示画过的曲线
(0242) //输入: X,Y坐标值
(0243) //输出: 无
(0244) //By: 李 平 2007.7.12
(0245) //备注:
(0246) void disp_ciclr(uint X,uint Y)
(0247) {
(0248) send(0xf2); //画1*1点阵
027A EF02 LDI R16,0xF2
027B DEF4 RCALL _send
(0249) send((uchar)((4096-Y)/17));//定义为相对X显示坐标值
027C E000 LDI R16,0
027D E110 LDI R17,0x10
027E 1B06 SUB R16,R22
027F 0B17 SBC R17,R23
0280 E121 LDI R18,0x11
0281 E030 LDI R19,0
0282 940E0417 CALL div16u
0284 DEEB RCALL _send
(0250) send((uchar)((4096-X)/32));//定义为相对Y显示坐标值
0285 E000 LDI R16,0
0286 E110 LDI R17,0x10
0287 1B04 SUB R16,R20
0288 0B15 SBC R17,R21
0289 E025 LDI R18,5
028A E030 LDI R19,0
028B 940E0466 CALL lsr16
028D DEE2 RCALL _send
028E 940E0441 CALL pop_gset2
0290 9508 RET
FILE: F:\项目\电子设计培训计划\MYOWNT~1.12\delay.h
(0001)
(0002) void delay_1us(void)
(0003) {
(0004) asm("nop");
_delay_1us:
0291 0000 NOP
0292 9508 RET
(0005) }
(0006)
(0007)
(0008)
(0009)
(0010) void delay_1ms(void)
(0011) {
(0012) unsigned int i;
(0013) for(i=(4*143-2);i>0;i--)
_delay_1ms:
i --> R16
0293 E30A LDI R16,0x3A
0294 E012 LDI R17,2
0295 C002 RJMP 0x0298
0296 5001 SUBI R16,1
0297 4010 SBCI R17,0
0298 3000 CPI R16,0
0299 0701 CPC R16,R17
029A F7D9 BNE 0x0296
029B 9508 RET
_delay_1s:
i --> R20
029C 940E044F CALL push_gset1
(0014) ;
(0015) }
(0016)
(0017)
(0018)
(0019)
(0020)
(0021) void delay_1s(void)
(0022) {
(0023) unsigned int i;
(0024) for(i=250;i>0;i--) //250ms*4=1000ms
029E EF4A LDI R20,0xFA
029F E050 LDI R21,0
02A0 C003 RJMP 0x02A4
(0025) delay_1ms();
02A1 DFF1 RCALL _delay_1ms
02A2 5041 SUBI R20,1
02A3 4050 SBCI R21,0
02A4 3040 CPI R20,0
02A5 0745 CPC R20,R21
02A6 F7D1 BNE 0x02A1
(0026) for(i=250;i>0;i--)
02A7 EF4A LDI R20,0xFA
02A8 E050 LDI R21,0
02A9 C003 RJMP 0x02AD
(0027) delay_1ms();
02AA DFE8 RCALL _delay_1ms
02AB 5041 SUBI R20,1
02AC 4050 SBCI R21,0
02AD 3040 CPI R20,0
02AE 0745 CPC R20,R21
02AF F7D1 BNE 0x02AA
(0028) for(i=250;i>0;i--)
02B0 EF4A LDI R20,0xFA
02B1 E050 LDI R21,0
02B2 C003 RJMP 0x02B6
(0029) delay_1ms();
02B3 DFDF RCALL _delay_1ms
02B4 5041 SUBI R20,1
02B5 4050 SBCI R21,0
02B6 3040 CPI R20,0
02B7 0745 CPC R20,R21
02B8 F7D1 BNE 0x02B3
(0030) for(i=250;i>0;i--)
02B9 EF4A LDI R20,0xFA
02BA E050 LDI R21,0
02BB C003 RJMP 0x02BF
(0031) delay_1ms();
02BC DFD6 RCALL _delay_1ms
02BD 5041 SUBI R20,1
02BE 4050 SBCI R21,0
02BF 3040 CPI R20,0
02C0 0745 CPC R20,R21
02C1 F7D1 BNE 0x02BC
02C2 940E0452 CALL pop_gset1
02C4 9508 RET
_delay_nus:
i --> R20
n --> R22
02C5 940E044D CALL push_gset2
02C7 01B8 MOVW R22,R16
(0032) }
(0033)
(0034)
(0035)
(0036)
(0037)
(0038) void delay_nus(unsigned int n)
(0039) {
(0040) unsigned int i;
(0041) for(i=n;i>0;i--)
02C8 01AB MOVW R20,R22
02C9 C003 RJMP 0x02CD
(0042) delay_1us();
02CA DFC6 RCALL _delay_1us
02CB 5041 SUBI R20,1
02CC 4050 SBCI R21,0
02CD 3040 CPI R20,0
02CE 0745 CPC R20,R21
02CF F7D1 BNE 0x02CA
02D0 940E0441 CALL pop_gset2
02D2 9508 RET
_delay_nms:
i --> R20
n --> R22
02D3 940E044D CALL push_gset2
02D5 01B8 MOVW R22,R16
(0043) }
(0044)
(0045)
(0046)
(0047)
(0048)
(0049) void delay_nms(unsigned int n)
(0050) {
(0051) unsigned int i;
(0052) for(i=n;i>0;i--)
02D6 01AB MOVW R20,R22
02D7 C003 RJMP 0x02DB
(0053) delay_1ms();
02D8 DFBA RCALL _delay_1ms
02D9 5041 SUBI R20,1
02DA 4050 SBCI R21,0
02DB 3040 CPI R20,0
02DC 0745 CPC R20,R21
02DD F7D1 BNE 0x02D8
02DE 940E0441 CALL pop_gset2
02E0 9508 RET
_delay_ns:
j --> R20
i --> R22
n --> R22
02E1 940E044D CALL push_gset2
02E3 01B8 MOVW R22,R16
(0054) }
(0055)
(0056)
(0057)
(0058)
(0059)
(0060)
(0061) void delay_ns(unsigned int n)
(0062) {
(0063) unsigned int i,j;
(0064) for(j=n;j>0;j--)
02E4 01AB MOVW R20,R22
02E5 C026 RJMP 0x030C
(0065) {
(0066) for(i=250;i>0;i--) //250ms*4=1000ms
02E6 EF6A LDI R22,0xFA
02E7 E070 LDI R23,0
02E8 C003 RJMP 0x02EC
(0067) delay_1ms();
02E9 DFA9 RCALL _delay_1ms
02EA 5061 SUBI R22,1
02EB 4070 SBCI R23,0
02EC 3060 CPI R22,0
02ED 0767 CPC R22,R23
02EE F7D1 BNE 0x02E9
(0068) for(i=250;i>0;i--)
02EF EF6A LDI R22,0xFA
02F0 E070 LDI R23,0
02F1 C003 RJMP 0x02F5
(0069) delay_1ms();
02F2 DFA0 RCALL _delay_1ms
02F3 5061 SUBI R22,1
02F4 4070 SBCI R23,0
02F5 3060 CPI R22,0
02F6 0767 CPC R22,R23
02F7 F7D1 BNE 0x02F2
(0070) for(i=250;i>0;i--)
02F8 EF6A LDI R22,0xFA
02F9 E070 LDI R23,0
02FA C003 RJMP 0x02FE
(0071) delay_1ms();
02FB DF97 RCALL _delay_1ms
02FC 5061 SUBI R22,1
02FD 4070 SBCI R23,0
02FE 3060 CPI R22,0
02FF 0767 CPC R22,R23
0300 F7D1 BNE 0x02FB
(0072) for(i=250;i>0;i--)
0301 EF6A LDI R22,0xFA
0302 E070 LDI R23,0
0303 C003 RJMP 0x0307
(0073) delay_1ms();
0304 DF8E RCALL _delay_1ms
0305 5061 SUBI R22,1
0306 4070 SBCI R23,0
0307 3060 CPI R22,0
0308 0767 CPC R22,R23
0309 F7D1 BNE 0x0304
030A 5041 SUBI R20,1
030B 4050 SBCI R21,0
030C 3040 CPI R20,0
030D 0745 CPC R20,R21
030E F6B9 BNE 0x02E6
030F 940E0441 CALL pop_gset2
0311 9508 RET
_main:
j --> R20
0312 9721 SBIW R28,1
FILE: F:\项目\电子设计培训计划\MYOWNT~1.12\OCMJ815B.c
(0001) /*^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ */
(0002) /*&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&&&&&&*/
(0003) //函数名: main()
(0004) //功能: 主函数,先显示一行字和X=,Y=然后判断INT是否中断,中断了再显示
(0005) //触摸处内容和触摸处坐标值
(0006) //输入: 无
(0007) //输出: 无
(0008) //By: 李 平 2007.7.11
(0009) //备注:
(0010) #include <iom16v.h>
(0011) #include <macros.h>
(0012) #include "Portini.h"
(0013) #include "function.h"
(0014) #include "Data.h"
(0015) #include "delay.h"
(0016)
(0017) void main ()
(0018) {
(0019) uchar j=0 ;
0313 2744 CLR R20
(0020) DDRA=0XFF;
0314 EF8F LDI R24,0xFF
0315 BB8A OUT 0x1A,R24
(0021) DDRB=0X1e;
0316 E18E LDI R24,0x1E
0317 BB87 OUT 0x17,R24
(0022) req_clr;
0318 98C1 CBI 0x18,1
(0023) DDRB=0x1f; //busy=1;
0319 E18F LDI R24,0x1F
031A BB87 OUT 0x17,R24
(0024) busy_set;
031B 9AC0 SBI 0x18,0
(0025) DDRB=0x1e;
031C E18E LDI R24,0x1E
031D BB87 OUT 0x17,R24
031E C035 RJMP 0x0354
(0026) while(1)
(0027) {
(0028) disp1line(code0); //显示一行字
031F E600 LDI R16,0x60
0320 E010 LDI R17,0
0321 DE65 RCALL _disp1line
(0029) write(0xf9,24,0); //显示X
0322 2422 CLR R2
0323 8228 STD Y+0,R2
0324 E128 LDI R18,0x18
0325 EF09 LDI R16,0xF9
0326 DE53 RCALL _write
(0030) send(0x58);
0327 E508 LDI R16,0x58
0328 DE47 RCALL _send
(0031) write(0xf9,24,16); //显示Y
0329 E180 LDI R24,0x10
032A 8388 STD Y+0,R24
032B E128 LDI R18,0x18
032C EF09 LDI R16,0xF9
032D DE4C RCALL _write
(0032) send(0x59);
032E E509 LDI R16,0x59
032F DE40 RCALL _send
(0033) write(0xf9,25,0); //显示‘= ’
0330 2422 CLR R2
0331 8228 STD Y+0,R2
0332 E129 LDI R18,0x19
0333 EF09 LDI R16,0xF9
0334 DE45 RCALL _write
(0034) send(0x3d);
0335 E30D LDI R16,0x3D
0336 DE39 RCALL _send
(0035) write(0xf9,25,16); //显示‘= ’
0337 E180 LDI R24,0x10
0338 8388 STD Y+0,R24
0339 E129 LDI R18,0x19
033A EF09 LDI R16,0xF9
033B DE3E RCALL _write
(0036) send(0x3d);
033C E30D LDI R16,0x3D
033D DE32 RCALL _send
(0037) //画横线//
(0038) for(j=0;j<128;j++)
033E 2744 CLR R20
033F C005 RJMP 0x0345
(0039) {
(0040) write(0xf2,239,j);
0340 8348 STD Y+0,R20
0341 EE2F LDI R18,0xEF
0342 EF02 LDI R16,0xF2
0343 DE36 RCALL _write
0344 9543 INC R20
0345 3840 CPI R20,0x80
0346 F3C8 BCS 0x0340
(0041) // send(1);
(0042) }
(0043) // disp_img(img);
(0044) /*
(0045) write(0xf9,5,16);
(0046) send(0x31); //1
(0047) write(0xf9,5,48);
(0048) send(0x32); //2
(0049) write(0xf9,5,80);
(0050) send(0x33); //3
(0051) write(0xf9,5,112);
(0052) send(0x34); //4
(0053)
(0054) write(0xf9,12,16);
(0055) send(0x35); //5
(0056) write(0xf9,12,48);
(0057) send(0x36); //6
(0058) write(0xf9,12,80);
(0059) send(0x37); //7
(0060) write(0xf9,12,112);
(0061) send(0x38); //8
(0062)
(0063) write(0xf9,20,16);
(0064) send(0x39); //9
(0065) write(0xf9,20,48);
(0066) send(0x41); //A
(0067) write(0xf9,20,80);
(0068) send(0x42); //B
(0069) write(0xf9,20,112);
(0070) send(0x43); //C
(0071)
(0072) // write(0xf9,27,16);
(0073) // send(0x44); //D
(0074) write(0xf9,27,48);
(0075) send(0x45); //E
(0076) write(0xf9,27,80);
(0077) send(0x46); //F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -