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

📄 ad转换.lst

📁 基于ATMEGA16的AD转换的C程序源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
     2EB 5747      SUBI	R20,0x77
(0095) 			   break;
     2EC C005      RJMP	0x02F2
(0096) 		case 3:
(0097) 			   address = 0x98 + y+1;		   //计算显示地址
     2ED 2F46      MOV	R20,R22
     2EE 5647      SUBI	R20,0x67
(0098) 			   break;
     2EF C002      RJMP	0x02F2
(0099) 		default:address = 0x80 + y;
     2F0 2F46      MOV	R20,R22
     2F1 5840      SUBI	R20,0x80
(0100) 	}
(0101) 	WR_control( address);	  	   	   		   //写地址命令
     2F2 2F04      MOV	R16,R20
     2F3 DFB1      RCALL	_WR_control
     2F4 940C 045C JMP	pop_xgsetF00C
_LCD_Write_string:
  s                    --> R20
  Y                    --> R12
  X                    --> R10
     2F6 940E 0463 CALL	push_xgset303C
     2F8 2EC2      MOV	R12,R18
     2F9 2EA0      MOV	R10,R16
     2FA 814E      LDD	R20,Y+6
     2FB 815F      LDD	R21,Y+7
(0102) }
(0103) //**************************************************************************
(0104) /*******************************************************/
(0105) /******   函数名称: LCD_write_string()            ******/
(0106) /******   功    能: 中英文字符串显示函数          ******/
(0107) /******   参    数: *s--英文字符串指针            ******/
(0108) /******             X、Y--显示字符串的位置        ******/
(0109) /******   返回值  : 无                            ******/
(0110) /*******************************************************/
(0111) void LCD_Write_string(unsigned char X,unsigned char Y,unsigned char *s)
(0112) {
(0113)     
(0114)  	LCD_address( X, Y );		   				//写显示地址
     2FC 2D2C      MOV	R18,R12
     2FD 2D0A      MOV	R16,R10
     2FE DFCF      RCALL	_LCD_address
     2FF C005      RJMP	0x0305
(0115)     while (*s) 	   	 						//是否到字符串尾
(0116)     {
(0117)      	WR_dat (*s );						//写显示数据
     300 01FA      MOVW	R30,R20
     301 8100      LDD	R16,Z+0
     302 DF8F      RCALL	_WR_dat
(0118) 		s ++;								//字符串地址加1
     303 5F4F      SUBI	R20,0xFF
     304 4F5F      SBCI	R21,0xFF
     305 01FA      MOVW	R30,R20
     306 8020      LDD	R2,Z+0
     307 2022      TST	R2
     308 F7B9      BNE	0x0300
     309 940C 046A JMP	pop_xgset303C
(0119)  	}
(0120) }
(0121) 
(0122) 
(0123) /******************************************************************************/ 
(0124) //函数功能:将BCD码转换为ASCII码函数 
(0125) //输入数据:BCD
(0126) //输出:ASCII
(0127) //作者:韩红瑞
(0128) //修改时间:2006-08-31
(0129) /******************************************************************************/ 
(0130) unsigned char BCD_ASCII(unsigned char bcd) 
(0131) { 
(0132)     bcd &= 0x0F; 
_BCD_ASCII:
  bcd                  --> R16
     30B 700F      ANDI	R16,0xF
(0133)     if(bcd > 9)  
     30C E089      LDI	R24,0x9
     30D 1780      CP	R24,R16
     30E F410      BCC	0x0311
(0134)     bcd +=('7');     // 将A~F转换为ASCII 
     30F 5C09      SUBI	R16,0xC9
     310 C001      RJMP	0x0312
(0135)     else 
(0136)     bcd += '0';         // 将0~9转换为ASCII 0~9 
     311 5D00      SUBI	R16,0xD0
(0137)     return(bcd); 
     312 9508      RET
_LCD_writeasc:
  data                 --> Y,+4
  y                    --> R12
  x                    --> R10
     313 940E 043C CALL	push_xgset003C
     315 2EC2      MOV	R12,R18
     316 2EA0      MOV	R10,R16
(0138) } 
(0139)  
(0140) 
(0141) void  LCD_writeasc(unsigned char x, unsigned char y, unsigned char data)
(0142) {
(0143)     LCD_address(x,y);
     317 2D2C      MOV	R18,R12
     318 2D0A      MOV	R16,R10
     319 DFB4      RCALL	_LCD_address
(0144) 	WR_dat(data);
     31A 810C      LDD	R16,Y+4
     31B DF76      RCALL	_WR_dat
     31C 940C 042A JMP	pop_xgset003C
(0145) }
(0146)   
(0147) void Lcd_INT()
(0148) {
(0149)   DDRA|=BIT(1);
_Lcd_INT:
     31E 9AD1      SBI	0x1A,1
(0150)   DDRA|=BIT(3);
     31F 9AD3      SBI	0x1A,3
(0151)   lcd_control();
     320 DF97      RCALL	_lcd_control
     321 9508      RET
_lcd_writechar:
  number               --> R10
  Y                    --> R14
  X                    --> R12
     322 940E 043A CALL	push_xgset00FC
     324 2EE2      MOV	R14,R18
     325 2EC0      MOV	R12,R16
     326 80AE      LDD	R10,Y+6
(0152) }
(0153) 
(0154) void lcd_writechar(unsigned char X,unsigned char Y,unsigned char number)
(0155) {
(0156)     LCD_address(X,Y);
     327 2D2E      MOV	R18,R14
     328 2D0C      MOV	R16,R12
     329 DFA4      RCALL	_LCD_address
(0157) 	WR_dat(BCD_ASCII(number>>4));
     32A 2D0A      MOV	R16,R10
     32B 9502      SWAP	R16
     32C 700F      ANDI	R16,0xF
     32D DFDD      RCALL	_BCD_ASCII
     32E DF63      RCALL	_WR_dat
(0158) 	WR_dat(BCD_ASCII(number));
     32F 2D0A      MOV	R16,R10
     330 DFDA      RCALL	_BCD_ASCII
     331 DF60      RCALL	_WR_dat
     332 940C 042F JMP	pop_xgset00FC
_lcd_write2:
  number               --> R10
  Y                    --> R14
  X                    --> R12
     334 940E 043A CALL	push_xgset00FC
     336 2EE2      MOV	R14,R18
     337 2EC0      MOV	R12,R16
     338 80AE      LDD	R10,Y+6
     339 80BF      LDD	R11,Y+7
(0159) }
(0160) 
(0161) void lcd_write2(unsigned char X,unsigned char Y,unsigned int number)
(0162) {
(0163)     LCD_address(X,Y);
     33A 2D2E      MOV	R18,R14
     33B 2D0C      MOV	R16,R12
     33C DF91      RCALL	_LCD_address
(0164) 	WR_dat(a[(number/1000)]);
     33D EE28      LDI	R18,0xE8
     33E E033      LDI	R19,3
     33F 0185      MOVW	R16,R10
     340 940E 0410 CALL	div16u
     342 01F8      MOVW	R30,R16
     343 E680      LDI	R24,0x60
     344 E090      LDI	R25,0
     345 0FE8      ADD	R30,R24
     346 1FF9      ADC	R31,R25
     347 8100      LDD	R16,Z+0
     348 DF49      RCALL	_WR_dat
(0165) 	WR_dat(a[(number%1000/100)]);
     349 EE28      LDI	R18,0xE8
     34A E033      LDI	R19,3
     34B 0185      MOVW	R16,R10
     34C 940E 040E CALL	mod16u
     34E E624      LDI	R18,0x64
     34F E030      LDI	R19,0
     350 940E 0410 CALL	div16u
     352 01F8      MOVW	R30,R16
     353 E680      LDI	R24,0x60
     354 E090      LDI	R25,0
     355 0FE8      ADD	R30,R24
     356 1FF9      ADC	R31,R25
     357 8100      LDD	R16,Z+0
     358 DF39      RCALL	_WR_dat
(0166) 	WR_dat(a[(number%100/10)]);
     359 E624      LDI	R18,0x64
     35A E030      LDI	R19,0
     35B 0185      MOVW	R16,R10
     35C 940E 040E CALL	mod16u
     35E E02A      LDI	R18,0xA
     35F E030      LDI	R19,0
     360 940E 0410 CALL	div16u
     362 01F8      MOVW	R30,R16
     363 E680      LDI	R24,0x60
     364 E090      LDI	R25,0
     365 0FE8      ADD	R30,R24
     366 1FF9      ADC	R31,R25
     367 8100      LDD	R16,Z+0
     368 DF29      RCALL	_WR_dat
(0167) 	WR_dat(a[(number%10)]);
     369 E02A      LDI	R18,0xA
     36A E030      LDI	R19,0
     36B 0185      MOVW	R16,R10
     36C 940E 040E CALL	mod16u
     36E 01F8      MOVW	R30,R16
     36F E680      LDI	R24,0x60
     370 E090      LDI	R25,0
     371 0FE8      ADD	R30,R24
     372 1FF9      ADC	R31,R25
     373 8100      LDD	R16,Z+0
     374 DF1D      RCALL	_WR_dat
     375 940C 042F JMP	pop_xgset00FC
_ShowBmp:
  a                    --> R10
  y                    --> R22
  i                    --> R12
  x                    --> R20
     377 940E 0471 CALL	push_xgsetF03C
(0168) 	
(0169) }
(0170) 
(0171) //#if LCD12864==TRUE					//条件编译指令
(0172) //#pragma data:code 					//指定存储位置为Flash
(0173) const unsigned char Bitmap[]={/*--  宽度x高度=128x64图像  --*/
(0174) 
(0175) 
(0176) 
(0177) 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0178) 0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0179) 0x00,0x00,0x00,0x00,0x01,0x06,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0180) 0x00,0x00,0x00,0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0181) 0x00,0x00,0x00,0x00,0x04,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0182) 0x00,0x00,0x00,0x00,0x04,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0183) 0x00,0x00,0x00,0x00,0x04,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0184) 0x00,0x00,0x00,0x00,0x04,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0185) 0x00,0x00,0x00,0x0F,0xFE,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0186) 0x00,0x00,0x00,0x10,0x01,0xFF,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0187) 0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0188) 0x00,0x00,0x3F,0xFC,0x00,0x00,0xC8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0189) 0x00,0x00,0x04,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0190) 0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0191) 0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0192) 0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0193) 0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0194) 0x00,0x00,0x01,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0195) 0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0196) 0x00,0x00,0xFF,0xF0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0197) 0x00,0x00,0x80,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0198) 0x00,0x00,0x80,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,
(0199) 0x00,0x00,0x7F,0xF0,0x09,0xE0,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0200) 0x00,0x00,0x60,0x00,0x08,0x20,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0201) 0x00,0x00,0x40,0x00,0x08,0x20,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0202) 0x00,0x00,0xC0,0x00,0x0F,0xE0,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0203) 0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0204) 0x00,0x00,0x80,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0205) 0x00,0x00,0x80,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
(0206) 0x00,0x00,0x80,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,
(0207) 0x00,0x00,0x80,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,
(0208) 0x00,0x00,0x80,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
(0209) 0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
(0210) 0x00,0x00,0x80,0x3F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
(0211) 0x00,0x00,0x80,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x20,0x0F,0x00,0x00,0x00,
(0212) 0x00,0x00,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,
(0213) 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFC,0x00,0x40,0x01,0x00,0x00,0x00,
(0214) 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,
(0215) 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x80,0x01,0x00,0x00,0x00,
(0216) 0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x06,0x20,0x01,0x00,0x01,0x00,0x00,0x00,
(0217) 0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x03,0x00,0x01,0x00,0x00,0x00,
(0218) 0x00,0x00,0x9F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x3C,0x0C,0x00,0x01,0x00,0x00,0x00,
(0219) 0x00,0x00,0x80,0x00,0x0F,0xC0,0x00,0x00,0x00,0x24,0x30,0x00,0x01,0x00,0x00,0x00,
(0220) 0x00,0x00,0x80,0x00,0x00,0x3C,0x00,0x00,0x00,0x24,0x40,0x00,0x01,0x00,0x00,0x00,
(0221) 0x00,0x00,0x80,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xE4,0x80,0x00,0x01,0x00,0x00,0x00,
(0222) 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x80,0x00,0x01,0x00,0x00,0x00,
(0223) 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x00,
(0224) 0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x1E,0x00,0x00,0x00,
(0225) 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x03,0xE0,0x00,0x00,0x00,
(0226) 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x0C,0x00,0x00,0x00,0x00,
(0227) 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x00,0x00,0x00,
(0228) 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
(0229) 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
(0230) 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
(0231) 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
(0232) 0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
(0233) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0234) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0235) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0236) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0237) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0238) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0239) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0240) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0241) 
(0242) };
(0243) 
(0244) /*******************************************************/
(0245) /******   函数名称: ShowBmp()                     ******/
(0246) /******   功    能: 显示一幅128*64的BMP位图       ******/
(0247) /******   参    数: 无                            ******/
(0248) /******   返回值  : 无                            ******/
(0249) /*******************************************************/
(0250) void ShowBmp(void)
(0251) {
(0252) 	unsigned int i,a,x=0,y=0;
     379 2744      CLR	R20
     37A 2755      CLR	R21
     37B 2766      CLR	R22
     37C 2777      CLR	R23
(0253) 	WR_control(0x34);			 				
     37D E304      LDI	R16,0x34
     37E DF26      RCALL	_WR_control
(0254) 	for(a=0;a<32;a++)						
     37F 24AA      CLR	R10
     380 24BB      CLR	R11
     381 C053      RJMP	0x03D5
(0255) 	{										
(0256) 	 	WR_control(0x80+a);						
     382 2D0A      MOV	R16,R10
     383 5800      SUBI	R16,0x80
     384 4F1F      SBCI	R17,0xFF
     385 DF1F      RCALL	_WR_control
(0257) 		WR_control(0x80);						
     386 E800      LDI	R16,0x80
     387 DF1D      RCALL	_WR_control
(0258) 		for(i=0;i<8;i++)					
     388 24CC      CLR	R12
     389 24DD      CLR	R13
     38A C018      RJMP	0x03A3
(0259) 		{									
(0260) 			WR_dat(Bitmap[y+x]);			
     38B 01FB      MOVW	R30,R22
     38C 0FE4      ADD	R30,R20
     38D 1FF5      ADC	R31,R21
     38E E584      LDI	R24,0x54
     38F E090      LDI	R25,0
     390 0FE8      ADD	R30,R24
     391 1FF9      ADC	R31,R25
     392 9104      LPM	R16,0(Z)
     393 DEFE      RCALL	_WR_dat
(0261) 			WR_dat(Bitmap[y+x+1]);			
     394 01FB      MOVW	R30,R22
     395 0FE4      ADD	R30,R20
     396 1FF5      ADC	R31,R21
     397 9631      ADIW	R30,1
     398 E584      LDI	R24,0x54

⌨️ 快捷键说明

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