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

📄 课程设计.s

📁 PS2控制代码123456789
💻 S
📖 第 1 页 / 共 5 页
字号:
	.area idata
	.byte 14,126
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'N,95
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'U,43
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 93,124
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 41,32
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'T,123
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 91,125
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'L,58
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'R,34
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'A,60
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'I,62
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'J,63
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'q,46
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'p,48
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'i,49
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'r,50
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'z,51
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'k,52
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 's,53
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 't,54
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'l,55
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 'u,56
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.blkb 2
	.area idata
	.byte 125,57
	.area data(ram, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.dbsym e Shifted _Shifted A[118:59:2]c
	.area text(rom, con, rel)
	.dbfile F:\调试\计算器\课程设计.c
	.dbfunc e delay _delay fV
;              i -> R20
;              n -> R16
	.even
_delay::
	xcall push_gset1
	.dbline -1
	.dbline 161
; #include<iom128v.h>
; #include<eeprom.h>
; #include<macros.h>
; #define fosc 8000000 //晶振4MHZ
; #define BAUD 9600 //波特率
; #define  ASK           (PINE&0X40)
; #define  SBT_ANSWER    PORTE|=BIT(PORTE7)
; #define  CLR_ANSWER    PORTE&=~BIT(PORTE7)
; #define  SBT_RESET     PORTC|=BIT(PORTC3)
; #define  CLR1_RESET    PORTC&=~BIT(PORTC3)
; #define  DPORT_A       PORTA
; #define  DATA1          0x20
; #define uchar unsigned char
; unsigned char flag_time=0; flag_computer=0;flag_test_v=0;
; unsigned char data=0,flag=0;
; unsigned char count_jiema=0;//解码键盘码
; unsigned char count_comp=0;//解码键盘码
; unsigned char keyzhi,temp1,key,jy=0; 
; unsigned long value=0,valuefirst=0,rezult=0;
; unsigned char flag_add=0,flag_sub=0,flag_mul=0,flag_mod=0;
; unsigned char DisNumx=0,DisNumy=0, Shift=0,Key_UP=0;
; unsigned char put_dete[];
; unsigned char table1[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46};
; unsigned char  UnShifted[71][2] = {
; 0x1C, 'a',
; 0x32, 'b',
; 0x21, 'c',
; 0x23, 'd',
; 0x24, 'e',
; 0x2B, 'f',
; 0x34, 'g',
; 0x33, 'h',
; 0x43, 'i',
; 0x3B, 'j',
; 0x42, 'k',
; 0x4B, 'l',
; 0x3A, 'm',
; 0x31, 'n',
; 0x44, 'o',
; 0x4D, 'p',
; 0x15, 'q',
; 0x2D, 'r',
; 0x1B, 's',
; 0x2C, 't',
; 0x3C, 'u',
; 0x2A, 'v',
; 0x1D, 'w',
; 0x22, 'x',
; 0x35, 'y',
; 0x1A, 'z',
; 0x45, '0',
; 0x16, '1',
; 0x1E, '2',
; 0x26, '3',
; 0x25, '4',
; 0x2E, '5',
; 0x36, '6',
; 0x3D, '7',
; 0x3E, '8',
; 0x46, '9',
; 0x0E, '`',
; 0x4E, '-',
; 0x55, '=',
; 0x5D, '\\',
; 0x29, ' ',
; 0x54, '[',
; 0x5B, ']',
; 0x4C, ';',
; 0x52, '\'',
; 0x41, ',',
; 0x49, '.',
; 0x4A, '/',
; 0x71, '.',
; 0x70, '0',//小键盘
; 0x69, '1',
; 0x72, '2',
; 0x7A, '3',
; 0x6B, '4',
; 0x73, '5',
; 0x74, '6',
; 0x6C, '7',
; 0x75, '8',
; 0x7D, '9',
; 0x79, '+',
; 0x7B, '-',
; 0x7c, '*',
; 0x4A, '/',
; 0x5a, ' ',//enter
; 0x76, ' ',//Esc
; 0x75, ' ',// { up }
; 0x72, ' ',// { down }
; 0x6B, ' ',// { left }
; 0x74, ' ',// { right }
; 0x66, ' ',//(删去键)
; 
; };
; 
; unsigned char  Shifted[59][2] = {
; 0x1C, 'A',
; 0x32, 'B',
; 0x21, 'C',
; 0x23, 'D',
; 0x24, 'E',
; 0x2B, 'F',
; 0x34, 'G',
; 0x33, 'H',
; 0x43, 'I',
; 0x3B, 'J',
; 0x42, 'K',
; 0x4B, 'L',
; 0x3A, 'M',
; 0x31, 'N',
; 0x44, 'O',
; 0x4D, 'P',
; 0x15, 'Q',
; 0x2D, 'R',
; 0x1B, 'S',
; 0x2C, 'T',
; 0x3C, 'U',
; 0x2A, 'V',
; 0x1D, 'W',
; 0x22, 'X',
; 0x35, 'Y',
; 0x1A, 'Z',
; 0x45, '0',
; 0x16, '1',
; 0x1E, '2',
; 0x26, '3',
; 0x25, '4',
; 0x2E, '5',
; 0x36, '6',
; 0x3D, '7',
; 0x3E, '8',
; 0x46, '9',
; 0x0E, '~',
; 0x4E, '_',
; 0x55, '+',
; 0x5D, '|',
; 0x29, ' ',
; 0x54, '{',
; 0x5B, '}',
; 0x4C, ':',
; 0x52, '"',
; 0x41, '<',
; 0x49, '>',
; 0x4A, '?',
; 0x71, '.',
; 0x70, '0',
; 0x69, '1',
; 0x72, '2',
; 0x7A, '3',
; 0x6B, '4',
; 0x73, '5',
; 0x74, '6',
; 0x6C, '7',
; 0x75, '8',
; 0x7D, '9',
; };
; 
;  void delay(unsigned char n)
;   {
	.dbline 163
;    unsigned char i;
;    for(;n>0;n--)
	xjmp L5
L2:
	.dbline 164
	clr R20
	xjmp L9
L6:
	.dbline 164
L7:
	.dbline 164
	inc R20
L9:
	.dbline 164
	cpi R20,200
	brlo L6
L3:
	.dbline 163
	dec R16
L5:
	.dbline 163
	clr R2
	cp R2,R16
	brlo L2
	.dbline -2
L1:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 16 c
	.dbend
	.dbfunc e initail_ocmj _initail_ocmj fV
	.even
_initail_ocmj::
	.dbline -1
	.dbline 168
;    for(i=0;i<200;i++);
;  }
; /**************************************/
;   void initail_ocmj(void)
;   { 
	.dbline 169
;    MCUCR=0X00;
	clr R2
	out 0x35,R2
	.dbline 170
;    DDRA=0XFF;
	ldi R24,255
	out 0x1a,R24
	.dbline 171
;    DPORT_A=0XFF;
	out 0x1b,R24
	.dbline 172
;    DDRE=0X80;      ///PORTE.7作为输出请求信号,PE3为检查忙不忙信号
	ldi R24,128
	out 0x2,R24
	.dbline 173
;    DDRD=0XFF;
	ldi R24,255
	out 0x11,R24
	.dbline 174
;    PORTD=0XfF;
	out 0x12,R24
	.dbline 175
;    PORTE=0Xff;   //PE初使化为高电平
	out 0x3,R24
	.dbline 176
;    DDRC=0X08; //PC3复位
	ldi R24,8
	out 0x14,R24
	.dbline 177
;    CLR1_RESET;
	cbi 0x15,3
	.dbline 178
;    delay_nms(20);
	ldi R16,20
	ldi R17,0
	xcall _delay_nms
	.dbline 179
;    SBT_RESET;
	sbi 0x15,3
	.dbline 180
;    CLR_ANSWER;//关闭请求信号
	cbi 0x3,7
	.dbline 181
;    delay(100);
	ldi R16,100
	xcall _delay
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e ocmj_write _ocmj_write fV
;          adata -> R16
	.even
_ocmj_write::
	.dbline -1
	.dbline 185
;  }
;  /***************************************/ 
;   void ocmj_write(unsigned char adata)
;    {
L12:
	.dbline 186
L13:
	.dbline 186
;       while(ASK);//高电平就等待
	sbic 0x1,6
	rjmp L12
	.dbline 187
;       DPORT_A=adata;//先给数据给PA
	out 0x1b,R16
	.dbline 188
;       _NOP();   //延时
	nop
	.dbline 189
;       SBT_ANSWER;//请求信号
	sbi 0x3,7
	.dbline 190
;       _NOP(); 
	nop
L15:
	.dbline 191
L16:
	.dbline 191
;       while(ASK==0);//等待数据传送完
	sbis 0x1,6
	rjmp L15
	.dbline 192
;       CLR_ANSWER; //关闭请求
	cbi 0x3,7
	.dbline -2
L11:
	.dbline 0 ; func end
	ret
	.dbsym r adata 16 c
	.dbend
	.dbfunc e write_asiic _write_asiic fV
;          asc_p -> y+4
;              y -> R20
;              x -> R22
	.even
_write_asiic::
	xcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 197
;   }
;   
;   
;  void write_asiic(unsigned char x,unsigned char y,unsigned char asc_p)
;         {
	.dbline 198
; 	         x+=4;
	subi R22,252    ; addi 4
	.dbline 199
;              ocmj_write(0xf1);
	ldi R16,241
	xcall _ocmj_write
	.dbline 200
; 		     ocmj_write(x);
	mov R16,R22
	xcall _ocmj_write
	.dbline 201
; 	      	 ocmj_write(y);
	mov R16,R20
	xcall _ocmj_write
	.dbline 202
; 		     ocmj_write(asc_p);
	ldd R16,y+4
	xcall _ocmj_write
	.dbline -2
L18:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l asc_p 4 c
	.dbsym r y 20 c
	.dbsym r x 22 c
	.dbend
	.dbfunc e DisplayListChar _DisplayListChar fV
;          asc_p -> R20
;              i -> R22
;              y -> R10
;              x -> R12
	.even
_DisplayListChar::
	xcall push_gset4
	mov R10,R18
	mov R12,R16
	.dbline -1
	.dbline 209
; 		
; 		 }	
;  /********************************************/ 
; 
; /**********************************************/
;   void  DisplayListChar(unsigned char x,unsigned char y)
;      {
	.dbline 211
;         unsigned char i,asc_p;
;          asc_p=' ';
	ldi R20,32
	.dbline 212
;        x+=4;
	mov R24,R12
	subi R24,252    ; addi 4
	mov R12,R24
	.dbline 213
;        for(i=0;i<16;i++)
	clr R22
	xjmp L23
L20:
	.dbline 214
	.dbline 214
	ldi R16,241
	xcall _ocmj_write
	.dbline 215
	mov R16,R12
	add R16,R22
	xcall _ocmj_write
	.dbline 216
	mov R16,R10
	xcall _ocmj_write
	.dbline 217
	mov R16,R20
	xcall _ocmj_write
	.dbline 218
L21:
	.dbline 213
	inc R22
L23:
	.dbline 213
	cpi R22,16
	brlo L20
	.dbline -2
L19:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r asc_p 20 c
	.dbsym r i 22 c
	.dbsym r y 10 c
	.dbsym r x 12 c
	.dbend
	.dbfunc e bmp_tran _bmp_tran fV
;              j -> R20
;              i -> R14
;          bmp_p -> R22,R23
;          width -> R10
;           high -> R12
;              y -> y+12
;              x -> y+10
	.even
_bmp_tran::
	xcall push_arg4
	xcall push_gset5
	ldd R12,y+14
	ldd R10,y+16
	ldd R22,y+18
	ldd R23,y+19
	.dbline -1
	.dbline 228
;           {   ocmj_write(0xf1);
; 		      ocmj_write(x+i);
; 		      ocmj_write(y);
; 		      ocmj_write(asc_p);
; 	      }
; 		  
;         }	
; //***************************************************************************//
; /*         传送bmp点阵数据到LCD            */
; /*         x:0~15(字节为单位)  y:0~64      */
; /*         bmp_p:指向图形数据的指针        */	
; /*         high:位图高度(点阵行为单位)     */
; /*         width:位图宽度(以字节为单位)?  */
; void bmp_tran(unsigned char x,unsigned char y,unsigned char high,unsigned char width,const unsigned char *bmp_p)
;      {
	.dbline 230
; 	  unsigned char i,j;
; 	  x+=4;
	ldd R24,y+10
	subi R24,252    ; addi 4
	std y+10,R24
	.dbline 231
; 	  for(j=0;j<high;j++)
	clr R20
	xjmp L28
L25:
	.dbline 232
; 	     {
	.dbline 233
; 		  for(i=0;i<width;i++)
	clr R14
	xjmp L32
L29:
	.dbline 234
	.dbline 235
	ldi R16,243
	xcall _ocmj_write
	.dbline 236
	ldd R16,y+10
	xcall _ocmj_write
	.dbline 237
	ldd R16,y+12
	xcall _ocmj_write
	.dbline 238
	movw R30,R22
	lpm R16,Z
	xcall _ocmj_write
	.dbline 239
	subi R22,255  ; offset = 1
	sbci R23,255
	.dbline 240
	ldd R0,y+10
	inc R0
	std y+10,R0
	.dbline 241
L30:
	.dbline 233
	inc R14
L32:
	.dbline 233
	cp R14,R10
	brlo L29
	.dbline 242
	ldd R0,y+10
	sub R0,R10
	std y+10,R0
	.dbline 243
	ldd R0,y+12
	inc R0
	std y+12,R0
	.dbline 244
L26:
	.dbline 231
	inc R20
L28:
	.dbline 231
	cp R20,R12
	brlo L25
	.dbline -2
L24:
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r i 14 c
	.dbsym r bmp_p 22 pkc
	.dbsym r width 10 c
	.dbsym r high 12 c
	.dbsym l y 12 c
	.dbsym l x 10 c
	.dbend
	.dbfunc e clr _clr fV
	.even
_clr::
	.dbline -1
	.dbline 248
; 		    {
; 			 ocmj_write(0xf3);//图形
; 			 ocmj_write(x);
; 			 ocmj_write(y);
; 			 ocmj_write(*bmp_p);
; 			 bmp_p++;
; 			 x++;
; 			}
; 		  x-=width;
; 		  y++;	
; 		 }
; 	 }	
; 	
; 	void clr(void)
; 	{
	.dbline 249
; 	 ocmj_write(0xf4);
	ldi R16,244
	xcall _ocmj_write
	.dbline -2
L33:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e write_ASCII _write_ASCII fV
;           data -> y+6
;             yy -> y+4
;             xx -> R20,R21
;           type -> R22,R23
	.even
_write_ASCII::
	xcall push_gset2
	movw R20,R18
	movw R22,R16
	.dbline -1
	.dbline 256
; 	}
; 		 
; /**********************************************/
; 	           /* 写ASCII码初始化 *////找代码//X轴只能从4,5,6,7。....18 19开始,Y=0,16,32,48
; /**********************************************///只能显示16*4个字符
; void write_ASCII(unsigned type,unsigned xx,unsigned yy,unsigned data)
; {
	.dbline 257
;     ocmj_write(type);//0xf9  ASCII码代码
	mov R16,R22
	xcall _ocmj_write
	.dbline 258
;     ocmj_write(xx);
	mov R16,R20
	xcall _ocmj_write
	.dbline 259
;     ocmj_write(yy);
	ldd R16,y+4
	ldd R17,y+5
	xcall _ocmj_write
	.dbline 260
;     ocmj_write(data);
	ldd R16,y+6
	ldd R17,y+7
	xcall _ocmj_write
	.dbline -2
L34:
	xcall pop_gset2
	.dbline 0 ; func end
	ret

⌨️ 快捷键说明

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