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

📄 ps2_study.lst

📁 基于ps/2接口协议的键盘学习机,采用128*64LCD显示,使用单片机为,mega16
💻 LST
📖 第 1 页 / 共 5 页
字号:
    077C DE2F      RCALL	_LCD_char
(0412)    LCD_char(27,0,r,1);
    077D E081      LDI	R24,1
    077E 838A      STD	R24,2+Y
    077F EA80      LDI	R24,0xA0
    0780 E094      LDI	R25,4
    0781 8388      STD	R24,0+Y
    0782 8399      STD	R25,1+Y
    0783 2722      CLR	R18
    0784 E10B      LDI	R16,0x1B
    0785 DE26      RCALL	_LCD_char
(0413)    LCD_char(45,0,t,1);
    0786 E081      LDI	R24,1
    0787 838A      STD	R24,2+Y
    0788 EC80      LDI	R24,0xC0
    0789 E094      LDI	R25,4
    078A 8388      STD	R24,0+Y
    078B 8399      STD	R25,1+Y
    078C 2722      CLR	R18
    078D E20D      LDI	R16,0x2D
    078E DE1D      RCALL	_LCD_char
(0414)    LCD_char(54,0,u,1);
    078F E081      LDI	R24,1
    0790 838A      STD	R24,2+Y
    0791 ED80      LDI	R24,0xD0
    0792 E094      LDI	R25,4
    0793 8388      STD	R24,0+Y
    0794 8399      STD	R25,1+Y
    0795 2722      CLR	R18
    0796 E306      LDI	R16,0x36
    0797 DE14      RCALL	_LCD_char
(0415)    LCD_char(9,4,w,1);
    0798 E081      LDI	R24,1
    0799 838A      STD	R24,2+Y
    079A EF80      LDI	R24,0xF0
    079B E094      LDI	R25,4
    079C 8388      STD	R24,0+Y
    079D 8399      STD	R25,1+Y
    079E E024      LDI	R18,4
    079F E009      LDI	R16,0x9
    07A0 DE0B      RCALL	_LCD_char
(0416)    LCD_char(18,4,x,1);
    07A1 E081      LDI	R24,1
    07A2 838A      STD	R24,2+Y
    07A3 E080      LDI	R24,0
    07A4 E095      LDI	R25,5
    07A5 8388      STD	R24,0+Y
    07A6 8399      STD	R25,1+Y
    07A7 E024      LDI	R18,4
    07A8 E102      LDI	R16,0x12
    07A9 DE02      RCALL	_LCD_char
(0417)    LCD_char(27,4,y,1);
    07AA E081      LDI	R24,1
    07AB 838A      STD	R24,2+Y
    07AC E180      LDI	R24,0x10
    07AD E095      LDI	R25,5
    07AE 8388      STD	R24,0+Y
    07AF 8399      STD	R25,1+Y
    07B0 E024      LDI	R18,4
    07B1 E10B      LDI	R16,0x1B
    07B2 DDF9      RCALL	_LCD_char
(0418)   if(wed1==2)
    07B3 91800082  LDS	R24,0x82
    07B5 3082      CPI	R24,2
    07B6 F009      BEQ	0x07B8
    07B7 C057      RJMP	0x080F
(0419)    {
(0420)  
(0421)    LCD_char(0,0,c,0);
    07B8 2422      CLR	R2
    07B9 822A      STD	R2,2+Y
    07BA EB80      LDI	R24,0xB0
    07BB E093      LDI	R25,3
    07BC 8388      STD	R24,0+Y
    07BD 8399      STD	R25,1+Y
    07BE 2722      CLR	R18
    07BF 2700      CLR	R16
    07C0 DDEB      RCALL	_LCD_char
(0422)    //LCD_char(9,0,b,0);
(0423)    LCD_char(18,0,f,0);
    07C1 2422      CLR	R2
    07C2 822A      STD	R2,2+Y
    07C3 EE80      LDI	R24,0xE0
    07C4 E093      LDI	R25,3
    07C5 8388      STD	R24,0+Y
    07C6 8399      STD	R25,1+Y
    07C7 2722      CLR	R18
    07C8 E102      LDI	R16,0x12
    07C9 DDE2      RCALL	_LCD_char
(0424)   // LCD_char(27,0,d,0);
(0425)    //LCD_char(36,0,e,0);
(0426)    LCD_char(45,0,a,0);
    07CA 2422      CLR	R2
    07CB 822A      STD	R2,2+Y
    07CC E980      LDI	R24,0x90
    07CD E093      LDI	R25,3
    07CE 8388      STD	R24,0+Y
    07CF 8399      STD	R25,1+Y
    07D0 2722      CLR	R18
    07D1 E20D      LDI	R16,0x2D
    07D2 DDD9      RCALL	_LCD_char
(0427)   // LCD_char(54,0,g,0);
(0428)    LCD_char(0,4,v,0);
    07D3 2422      CLR	R2
    07D4 822A      STD	R2,2+Y
    07D5 EE80      LDI	R24,0xE0
    07D6 E094      LDI	R25,4
    07D7 8388      STD	R24,0+Y
    07D8 8399      STD	R25,1+Y
    07D9 E024      LDI	R18,4
    07DA 2700      CLR	R16
    07DB DDD0      RCALL	_LCD_char
(0429)   // LCD_char(9,4,i,0);
(0430)    //LCD_char(18,4,j,0);
(0431)    LCD_char(27,4,h,0);
    07DC 2422      CLR	R2
    07DD 822A      STD	R2,2+Y
    07DE E080      LDI	R24,0
    07DF E094      LDI	R25,4
    07E0 8388      STD	R24,0+Y
    07E1 8399      STD	R25,1+Y
    07E2 E024      LDI	R18,4
    07E3 E10B      LDI	R16,0x1B
    07E4 DDC7      RCALL	_LCD_char
(0432)    //LCD_char(36,4,l,0);
(0433)    LCD_char(45,4,o,0);
    07E5 2422      CLR	R2
    07E6 822A      STD	R2,2+Y
    07E7 E780      LDI	R24,0x70
    07E8 E094      LDI	R25,4
    07E9 8388      STD	R24,0+Y
    07EA 8399      STD	R25,1+Y
    07EB E024      LDI	R18,4
    07EC E20D      LDI	R16,0x2D
    07ED DDBE      RCALL	_LCD_char
(0434)    //LCD_char(54,4,m,0);
(0435)    LCD_char(0,0,n,1);
    07EE E081      LDI	R24,1
    07EF 838A      STD	R24,2+Y
    07F0 E580      LDI	R24,0x50
    07F1 E094      LDI	R25,4
    07F2 8388      STD	R24,0+Y
    07F3 8399      STD	R25,1+Y
    07F4 2722      CLR	R18
    07F5 2700      CLR	R16
    07F6 DDB5      RCALL	_LCD_char
(0436)   // LCD_char(9,0,p,1);
(0437)   // LCD_char(18,0,q,1);
(0438)   // LCD_char(27,0,r,1);
(0439)    LCD_char(36,0,k,1);
    07F7 E081      LDI	R24,1
    07F8 838A      STD	R24,2+Y
    07F9 E380      LDI	R24,0x30
    07FA E094      LDI	R25,4
    07FB 8388      STD	R24,0+Y
    07FC 8399      STD	R25,1+Y
    07FD 2722      CLR	R18
    07FE E204      LDI	R16,0x24
    07FF DDAC      RCALL	_LCD_char
(0440)   // LCD_char(45,0,t,1);
(0441)   // LCD_char(54,0,u,1);
(0442)    LCD_char(0,4,s,1);
    0800 E081      LDI	R24,1
    0801 838A      STD	R24,2+Y
    0802 EB80      LDI	R24,0xB0
    0803 E094      LDI	R25,4
    0804 8388      STD	R24,0+Y
    0805 8399      STD	R25,1+Y
    0806 E024      LDI	R18,4
    0807 2700      CLR	R16
    0808 DDA3      RCALL	_LCD_char
(0443)   // LCD_char(9,4,w,1);
(0444)   // LCD_char(18,4,x,1);
(0445)   // LCD_char(27,4,y,1);
(0446)    //LCD_char(36,4,z,1);
(0447)    //LCD_char(45,4,o,1);
(0448)   // LCD_char(54,4,x,1);
(0449)    //LCD_char(0,4,v,1);
(0450)    flag_char1=0;
    0809 2422      CLR	R2
    080A 92200062  STS	R2,0x62
(0451)    flag_w=1;
    080C E081      LDI	R24,1
    080D 93800065  STS	R24,0x65
(0452)    }
(0453)    if(wed1==1)
    080F 91800082  LDS	R24,0x82
    0811 3081      CPI	R24,1
    0812 F009      BEQ	0x0814
    0813 C057      RJMP	0x086B
(0454)    {
(0455)      LCD_char(0,0,z,0);
    0814 2422      CLR	R2
    0815 822A      STD	R2,2+Y
    0816 E280      LDI	R24,0x20
    0817 E095      LDI	R25,5
    0818 8388      STD	R24,0+Y
    0819 8399      STD	R25,1+Y
    081A 2722      CLR	R18
    081B 2700      CLR	R16
    081C DD8F      RCALL	_LCD_char
(0456)   // LCD_char(9,0,b,0);
(0457)    LCD_char(18,0,s,0);
    081D 2422      CLR	R2
    081E 822A      STD	R2,2+Y
    081F EB80      LDI	R24,0xB0
    0820 E094      LDI	R25,4
    0821 8388      STD	R24,0+Y
    0822 8399      STD	R25,1+Y
    0823 2722      CLR	R18
    0824 E102      LDI	R16,0x12
    0825 DD86      RCALL	_LCD_char
(0458)    //LCD_char(27,0,d,0);
(0459)   // LCD_char(36,0,e,0);
(0460)    LCD_char(45,0,n,0);
    0826 2422      CLR	R2
    0827 822A      STD	R2,2+Y
    0828 E580      LDI	R24,0x50
    0829 E094      LDI	R25,4
    082A 8388      STD	R24,0+Y
    082B 8399      STD	R25,1+Y
    082C 2722      CLR	R18
    082D E20D      LDI	R16,0x2D
    082E DD7D      RCALL	_LCD_char
(0461)   // LCD_char(54,0,g,0);
(0462)    LCD_char(0,4,o,0);
    082F 2422      CLR	R2
    0830 822A      STD	R2,2+Y
    0831 E780      LDI	R24,0x70
    0832 E094      LDI	R25,4
    0833 8388      STD	R24,0+Y
    0834 8399      STD	R25,1+Y
    0835 E024      LDI	R18,4
    0836 2700      CLR	R16
    0837 DD74      RCALL	_LCD_char
(0463)   // LCD_char(9,4,i,0);
(0464)   // LCD_char(18,4,j,0);
(0465)    LCD_char(27,4,v,0);
    0838 2422      CLR	R2
    0839 822A      STD	R2,2+Y
    083A EE80      LDI	R24,0xE0
    083B E094      LDI	R25,4
    083C 8388      STD	R24,0+Y
    083D 8399      STD	R25,1+Y
    083E E024      LDI	R18,4
    083F E10B      LDI	R16,0x1B
    0840 DD6B      RCALL	_LCD_char
(0466)   // LCD_char(36,4,l,0);
(0467)    LCD_char(45,4,f,0);
    0841 2422      CLR	R2
    0842 822A      STD	R2,2+Y
    0843 EE80      LDI	R24,0xE0
    0844 E093      LDI	R25,3
    0845 8388      STD	R24,0+Y
    0846 8399      STD	R25,1+Y
    0847 E024      LDI	R18,4
    0848 E20D      LDI	R16,0x2D
    0849 DD62      RCALL	_LCD_char
(0468)  //  LCD_char(54,4,m,0);
(0469)    LCD_char(0,0,h,1);
    084A E081      LDI	R24,1
    084B 838A      STD	R24,2+Y
    084C E080      LDI	R24,0
    084D E094      LDI	R25,4
    084E 8388      STD	R24,0+Y
    084F 8399      STD	R25,1+Y
    0850 2722      CLR	R18
    0851 2700      CLR	R16
    0852 DD59      RCALL	_LCD_char
(0470)   // LCD_char(9,0,p,1);
(0471)   // LCD_char(18,0,q,1);
(0472)    //LCD_char(27,0,r,1);
(0473)    LCD_char(36,0,c,1);
    0853 E081      LDI	R24,1
    0854 838A      STD	R24,2+Y
    0855 EB80      LDI	R24,0xB0
    0856 E093      LDI	R25,3
    0857 8388      STD	R24,0+Y
    0858 8399      STD	R25,1+Y
    0859 2722      CLR	R18
    085A E204      LDI	R16,0x24
    085B DD50      RCALL	_LCD_char
(0474)   // LCD_char(45,0,t,1);
(0475)   // LCD_char(54,0,u,1);
(0476)    LCD_char(0,4,k,1);
    085C E081      LDI	R24,1
    085D 838A      STD	R24,2+Y
    085E E380      LDI	R24,0x30
    085F E094      LDI	R25,4
    0860 8388      STD	R24,0+Y
    0861 8399      STD	R25,1+Y
    0862 E024      LDI	R18,4
    0863 2700      CLR	R16
    0864 DD47      RCALL	_LCD_char
(0477)   // LCD_char(9,4,w,1);
(0478)   // LCD_char(18,4,x,1);
(0479)   // LCD_char(27,4,y,1);
(0480)    //LCD_char(36,4,z,1);
(0481)    //LCD_char(45,4,o,1);
(0482)   // LCD_char(54,4,x,1);
(0483)    //LCD_char(0,4,v,1);
(0484)    flag_char1=0;
    0865 2422      CLR	R2
    0866 92200062  STS	R2,0x62
(0485)    flag_w=1;
    0868 E081      LDI	R24,1
    0869 93800065  STS	R24,0x65
(0486)    }
(0487)   }
(0488)   wed1++;
    086B 91800082  LDS	R24,0x82
    086D 5F8F      SUBI	R24,0xFF
    086E 93800082  STS	R24,0x82
(0489)   if(wed1==3)
    0870 3083      CPI	R24,3
    0871 F419      BNE	0x0875
(0490)   {
(0491)    wed1=1;
    0872 E081      LDI	R24,1
    0873 93800082  STS	R24,0x82
(0492)   }
(0493)   
(0494) }
    0875 9623      ADIW	R28,3
    0876 9508      RET
_key:
    0877 940E1FBD  CALL	push_gset2
(0495) 
(0496) 
(0497) 
(0498) void key(void)
(0499) {
(0500)    if(data_key[key_i-1]==0x5a)//enter
    0879 EA87      LDI	R24,0xA7
    087A E090      LDI	R25,0
    087B 91E00063  LDS	R30,0x63
    087D 27FF      CLR	R31
    087E 0FE8      ADD	R30,R24
    087F 1FF9      ADC	R31,R25
    0880 8180      LDD	R24,0+Z
    0881 358A      CPI	R24,0x5A
    0882 F009      BEQ	0x0884
    0883 C040      RJMP	0x08C4
(0501)     {
(0502) 	 if(flag_enter==1)
    0884 91800087  LDS	R24,0x87
    0886 3081      CPI	R24,1
    0887 F449      BNE	0x0891
(0503) 	 {
(0504) 	  TCCR0=0x00;
    0888 2422      CLR	R2
    0889 BE23      OUT	P33,R2
(0505) 	  flag_score=1;
    088A E081      LDI	R24,1
    088B 93800086  STS	R24,0x86
(0506) 	  flag_over=1;
    088D 93800085  STS	R24,0x85
(0507) 	  //flag_enter=0;
(0508) 	  flag_char1=0;
    088F 92200062  STS	R2,0x62
(0509) 	  
(0510) 	 }
(0511) 	 if(flag_enter==0)
    0891 90200087  LDS	R2,0x87
    0893 2022      TST	R2
    0894 F551      BNE	0x08BF
(0512) 	 {
(0513) 	 flag_1=0;
    0895 2422      CLR	R2
    0896 92200060  STS	R2,0x60
(0514)      flag_char1=1;
    0898 E081      LDI	R24,1
    0899 93800062  STS	R24,0x62
(0515) 	 x_station=0;
    089B 922000A5  STS	R2,_x_station
(0516) 	 y_station=2;
    089D E082      LDI	R24,2
    089E 938000A7  STS	R24,_y_station
(0517) 	 flag_error=0;
    08A0 92200084  STS	R2,0x84
(0518) 	 flag_over=0;
    08A2 92200085  STS	R2,0x85
(0519) 	 LR=0;
    08A4 92200081  STS	R2,0x81
(0520) 	 rig=0;
    08A6 2422      CLR	R2
    08A7 92200080  STS	R2,0x80
(0521) 	 key_i=1;
    08A9 E081      LDI	R24,1
    08AA 93800063  STS	R24,0x63
(0522) 	 flag_enter=1;
    08AC 93800087  STS	R24,0x87
(0523) 	 char_display();
    08AE DE6D      RCALL	_char_display
(0524) 	 flag_ts=0;
    08AF 2422      CLR	R2
    08B0 9220008A  STS	R2,0x8A
(0525)      flag_cout=0;
    08B2 92200089  STS	R2,0x89
(0526)      flag_ms=0;
    08B4 2433      CLR	R3
    08B5 9230008C  STS	R3,0x8C
    08B7 9220008B  STS	R2,0x8B
(0527)      flag_time0=0;
    08B9 92200088  STS	R2,0x88
(0528) 	  TCNT0=0X38;
    08BB E388      LDI	R24,0x38
    08BC BF82      OUT	P32,R24
(0529) 	 TCCR0=(1<<CS01);//8分频
    08BD E082      LDI	R24,2
    08BE BF83      OUT	P33,R24
(0530) 	 }
(0531) 	 data_key[1]=0;
    08BF 2422      CLR	R2
    08C0 922000A9  STS	R2,_data_key+1
(0532) 	  data_key[2]=0;
    08C2 922000AA  STS	R2,_data_key+2
(0533) 	  
(0534) 	}
(0535) 	
(0536) 	if((data_key[key_i-1]==0x76)&(flag_w==1))//esc
    08C4 EA87      LDI	R24,0xA7
    08C5 E090      LDI	R25,0
    08C6 91E00063  LDS	R30,0x63
    08C8 27FF      CLR	R31
    08C9 0FE8      ADD	R30,R24
    08CA 1FF9      ADC	R31,R25
    08CB 8180      LDD	R24,0+Z
    08CC 3786      CPI	R24,0x76
    08CD F419      BNE	0x08D1
    08CE E061      LDI	R22,1
    08CF E070      LDI	R23,0
    08D0 C002      RJMP	0x08D3
    08D1 2766      CLR	R22
    08D2 2777      CLR	R23
    08D3 91800065  LDS	R24,0x65

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -