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

📄 main.lst

📁 WINAVR编写的PS2键盘驱动
💻 LST
字号:
   1               		.file	"main.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  73               		.data
  74               	.LC0:
  75 0000 5451 5420 		.string	"TQT input words!"
  75      696E 7075 
  75      7420 776F 
  75      7264 7321 
  75      00
  76               	.LC1:
  77 0011 6B65 6E3A 		.string	"ken:"
  77      00
  78               		.text
  80               	.global	main
  82               	main:
   1:main.c        **** /*
   2:main.c        ****  * PS2 PC键盘扫描实验程序,PD2连接PSDAT,PD6连接PSCLK
   3:main.c        ****  * EasyAVR-M16 开发板例程
   4:main.c        ****  * CopyRights @ TQT
   5:main.c        ****  * Author:ken
   6:main.c        ****  * Date:2007-8-18
   7:main.c        **** */
   8:main.c        **** 
   9:main.c        **** // CLOCK: 7.3728MHZ
  10:main.c        **** 
  11:main.c        **** 
  12:main.c        **** #include <avr/io.h>
  13:main.c        **** #include "lcm1602.h"
  14:main.c        **** //#include "declare.h"
  15:main.c        **** #include "kb.h" 
  16:main.c        **** #include "type.h"
  17:main.c        **** 
  18:main.c        **** int main(void)
  19:main.c        **** {
  84               	.LM1:
  85               	/* prologue: frame size=5 */
  86 0000 C0E0      		ldi r28,lo8(__stack - 5)
  87 0002 D0E0      		ldi r29,hi8(__stack - 5)
  88 0004 DEBF      		out __SP_H__,r29
  89 0006 CDBF      		out __SP_L__,r28
  90               	/* prologue end (size=4) */
  20:main.c        ****  char *str1,*str2;
  21:main.c        ****  str1="TQT input words!";
  92               	.LM2:
  93 0008 80E0      		ldi r24,lo8(.LC0)
  94 000a 90E0      		ldi r25,hi8(.LC0)
  95 000c 9A83      		std Y+2,r25
  96 000e 8983      		std Y+1,r24
  22:main.c        ****  str2="ken:";
  98               	.LM3:
  99 0010 80E0      		ldi r24,lo8(.LC1)
 100 0012 90E0      		ldi r25,hi8(.LC1)
 101 0014 9C83      		std Y+4,r25
 102 0016 8B83      		std Y+3,r24
  23:main.c        **** 
  24:main.c        ****  
  25:main.c        ****  GICR= (1<<INT0);                   // 使能外部中断INT0,GICR通用中断控制寄存器,0x40
 104               	.LM4:
 105 0018 80E4      		ldi r24,lo8(64)
 106 001a 8093 5B00 		sts 91,r24
  26:main.c        **** 
  27:main.c        ****  InitKeyBoard();                    // 键盘初始化
 108               	.LM5:
 109 001e 0E94 0000 		call InitKeyBoard
  28:main.c        ****  LCM1602Init();                     // lcm1602初始化
 111               	.LM6:
 112 0022 0E94 0000 		call LCM1602Init
  29:main.c        **** 
  30:main.c        **** 
  31:main.c        ****  
  32:main.c        ****  LCM1602Write_String(0,0,str1);
 114               	.LM7:
 115 0026 4981      		ldd r20,Y+1
 116 0028 5A81      		ldd r21,Y+2
 117 002a 60E0      		ldi r22,lo8(0)
 118 002c 80E0      		ldi r24,lo8(0)
 119 002e 0E94 0000 		call LCM1602Write_String
  33:main.c        ****  LCM1602Write_String(0,1,str2);
 121               	.LM8:
 122 0032 4B81      		ldd r20,Y+3
 123 0034 5C81      		ldd r21,Y+4
 124 0036 61E0      		ldi r22,lo8(1)
 125 0038 80E0      		ldi r24,lo8(0)
 126 003a 0E94 0000 		call LCM1602Write_String
 127               	.L2:
 128               	.LBB2:
  34:main.c        **** 
  35:main.c        ****  while(1)
  36:main.c        ****     {
  37:main.c        **** 	
  38:main.c        ****     uchar key = getchar_kb();
 130               	.LM9:
 131 003e 0E94 0000 		call getchar_kb
 132 0042 8D83      		std Y+5,r24
  39:main.c        **** 		if(key=='*') 
 134               	.LM10:
 135 0044 8D81      		ldd r24,Y+5
 136 0046 8A32      		cpi r24,lo8(42)
 137 0048 89F4      		brne .L4
  40:main.c        **** 		{
  41:main.c        **** 		  LCM1602WriteCommand(0x01,1);        //如果键盘输入*,清屏
 139               	.LM11:
 140 004a 61E0      		ldi r22,lo8(1)
 141 004c 81E0      		ldi r24,lo8(1)
 142 004e 0E94 0000 		call LCM1602WriteCommand
  42:main.c        **** 		  LCM1602Write_String(0,0,str1);
 144               	.LM12:
 145 0052 4981      		ldd r20,Y+1
 146 0054 5A81      		ldd r21,Y+2
 147 0056 60E0      		ldi r22,lo8(0)
 148 0058 80E0      		ldi r24,lo8(0)
 149 005a 0E94 0000 		call LCM1602Write_String
  43:main.c        ****       LCM1602Write_String(0,1,str2);
 151               	.LM13:
 152 005e 4B81      		ldd r20,Y+3
 153 0060 5C81      		ldd r21,Y+4
 154 0062 61E0      		ldi r22,lo8(1)
 155 0064 80E0      		ldi r24,lo8(0)
 156 0066 0E94 0000 		call LCM1602Write_String
 157 006a E9CF      		rjmp .L2
 158               	.L4:
  44:main.c        **** 		}
  45:main.c        **** 		else LCM1602WriteData(key);
 160               	.LM14:
 161 006c 8D81      		ldd r24,Y+5
 162 006e 0E94 0000 		call LCM1602WriteData
 163               	.LBE2:
 164 0072 E5CF      		rjmp .L2
 165               	/* epilogue: frame size=5 */
 166               	/* epilogue: noreturn */
 167               	/* epilogue end (size=0) */
 168               	/* function main size 58 (54) */
 177               	.Lscope0:
 178               		.text
 180               	Letext:
 181               	/* File "main.c": code   58 = 0x003a (  54), prologues   4, epilogues   0 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:82     .text:00000000 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccsDbaaa.s:180    .text:00000074 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
InitKeyBoard
LCM1602Init
LCM1602Write_String
getchar_kb
LCM1602WriteCommand
LCM1602WriteData

⌨️ 快捷键说明

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