⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocmj815b.lst

📁 OCMJ815触摸屏使用范例
💻 LST
📖 第 1 页 / 共 3 页
字号:
    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 + -