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

📄 main.s

📁 atmega128 adc LCD
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\main.c
	.dbfunc e io_init _io_init fV
	.even
_io_init::
	.dbline -1
	.dbline 19
; /*
; 实验十八:
; 	LCD12864液晶屏显示实验。
; 	1、LCD12864显示实验。显示AVR开发网及网址信息。
; 	2、内部1 M晶振,程序采用单任务方式,软件延时。
; 	3、进行此实验需要接上外置LCD12864液晶显示屏。
; 	4、RW1用于调节显示屏的对比度。
; 
; 	AVR  mega128学习板
; 	www.iccavr.com 阿发
; 	16:22 2007-10-18
; */
; 
; #include <iom128v.h>
; #include "font.h"
; #include "lcd12864.h"
; 
; /*IO口初始化函数*/
; void io_init(void) {
	.dbline 21
; 
; 	DDRA = 0xFF;										/*方向输出*/
	ldi R24,255
	out 0x1a,R24
	.dbline 22
; 	PORTA = 0xFF;										/*高电平*/
	out 0x1b,R24
	.dbline 23
; 	DDRB = 0x00;										/*方向输入*/
	clr R2
	out 0x17,R2
	.dbline 24
; 	PORTB = 0xFF;										/*打开上拉*/
	out 0x18,R24
	.dbline 25
; 	DDRC = 0xFF;										/*不用的IO口建议设置为输入带上拉*/
	out 0x14,R24
	.dbline 26
; 	PORTC = 0x00;
	out 0x15,R2
	.dbline 27
; 	DDRD = 0x00;
	out 0x11,R2
	.dbline 28
; 	PORTD = 0xFF;
	out 0x12,R24
	.dbline 29
; 	DDRE = 0x00;
	out 0x2,R2
	.dbline 30
; 	PORTE = 0xFF;
	out 0x3,R24
	.dbline 31
; 	DDRF = 0x00;
	ldi R30,97
	ldi R31,0
	std z+0,R2
	.dbline 32
; 	PORTF = 0xFF;
	ldi R30,98
	std z+0,R24
	.dbline 33
; 	DDRG = 0x00;
	ldi R30,100
	std z+0,R2
	.dbline 34
; 	PORTG = 0xFF;
	ldi R30,101
	std z+0,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e get_ad _get_ad fi
;              i -> R16,R17
	.even
_get_ad::
	.dbline -1
	.dbline 36
; }
; unsigned int get_ad(void) {
	.dbline 41
; 
; 	unsigned int i;
; 											
; 	
; 	ADMUX = (1 << REFS0);								/*基准AVCC、通道0*/
	ldi R24,64
	out 0x7,R24
	.dbline 42
; 	ADCSRA = (1 << ADEN) | (1 << ADSC)					/*使能、开启*/
	ldi R24,195
	out 0x6,R24
L3:
	.dbline 44
L4:
	.dbline 44
; 			| (1 << ADPS1) | (1 << ADPS0);				/*8分频*/
; 	while(!(ADCSRA & (1 << ADIF)));						/*等待采样结束*/
	sbis 0x6,4
	rjmp L3
	.dbline 46
; 	
; 	   i = ADC;	                                           /*读取AD结果*/
	in R16,0x4
	in R17,0x5
	.dbline 47
; 	ADCSRA &= ~(1 << ADIF);								/*清标志*/
	cbi 0x6,4
	.dbline 48
; 	ADCSRA &= ~(1 << ADEN);								/*关闭转换*/
	cbi 0x6,7
	.dbline 50
;    
; 	return i;										/*返回结果*/
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e main _main fV
;              t -> R20,R21
	.even
_main::
	sbiw R28,2
	.dbline -1
	.dbline 52
;      }
; void main(void) {
	.dbline 54
; int t;
; 	io_init();											/*IO口初始化*/
	xcall _io_init
	.dbline 55
; 	disp_init();										/*LCD初始化*/
	xcall _disp_init
	.dbline 56
; 	disp_clear(0, 128, 0);								/*清除四行显示*/
	clr R2
	std y+0,R2
	ldi R18,128
	clr R16
	xcall _disp_clear
	.dbline 57
; 	disp_clear(0, 128, 2);
	ldi R24,2
	std y+0,R24
	ldi R18,128
	clr R16
	xcall _disp_clear
	.dbline 58
; 	disp_clear(0, 128, 4);
	ldi R24,4
	std y+0,R24
	ldi R18,128
	clr R16
	xcall _disp_clear
	.dbline 59
; 	disp_clear(0, 128, 6);
	ldi R24,6
	std y+0,R24
	ldi R18,128
	clr R16
	xcall _disp_clear
	.dbline 62
; 	
; 	
; 	disp_myself(0,0,124);
	ldi R24,124
	std y+0,R24
	clr R18
	clr R16
	xcall _disp_myself
	.dbline 63
; 	disp_myself(0,1,124);
	ldi R24,124
	std y+0,R24
	ldi R18,1
	clr R16
	xcall _disp_myself
	.dbline 64
; 	disp_myself(0,2,124);
	ldi R24,124
	std y+0,R24
	ldi R18,2
	clr R16
	xcall _disp_myself
	.dbline 65
; 	disp_myself(0,3,124);
	ldi R24,124
	std y+0,R24
	ldi R18,3
	clr R16
	xcall _disp_myself
	.dbline 66
; 	disp_myself(0,4,124);
	ldi R24,124
	std y+0,R24
	ldi R18,4
	clr R16
	xcall _disp_myself
	.dbline 67
; 	disp_myself(0,5,124);
	ldi R24,124
	std y+0,R24
	ldi R18,5
	clr R16
	xcall _disp_myself
	.dbline 68
; 	disp_myself(0,6,124);
	ldi R24,124
	std y+0,R24
	ldi R18,6
	clr R16
	xcall _disp_myself
	.dbline 69
; 	disp_myself(0,7,124);
	ldi R24,124
	std y+0,R24
	ldi R18,7
	clr R16
	xcall _disp_myself
	.dbline 70
; 	disp_myself(8,0,124);
	ldi R24,124
	std y+0,R24
	clr R18
	ldi R16,8
	xcall _disp_myself
	.dbline 71
; 	disp_myself(8,1,124);
	ldi R24,124
	std y+0,R24
	ldi R18,1
	ldi R16,8
	xcall _disp_myself
	.dbline 72
; 	disp_myself(8,2,124);
	ldi R24,124
	std y+0,R24
	ldi R18,2
	ldi R16,8
	xcall _disp_myself
	.dbline 73
; 	disp_myself(8,3,124);
	ldi R24,124
	std y+0,R24
	ldi R18,3
	ldi R16,8
	xcall _disp_myself
	.dbline 74
; 	disp_myself(8,4,124);
	ldi R24,124
	std y+0,R24
	ldi R18,4
	ldi R16,8
	xcall _disp_myself
	.dbline 75
; 	disp_myself(8,5,124);
	ldi R24,124
	std y+0,R24
	ldi R18,5
	ldi R16,8
	xcall _disp_myself
	.dbline 76
; 	disp_myself(8,6,124);
	ldi R24,124
	std y+0,R24
	ldi R18,6
	ldi R16,8
	xcall _disp_myself
	.dbline 77
; 	disp_myself(8,7,124);
	ldi R24,124
	std y+0,R24
	ldi R18,7
	ldi R16,8
	xcall _disp_myself
	.dbline 78
; 	disp_myself(112,0,124);
	ldi R24,124
	std y+0,R24
	clr R18
	ldi R16,112
	xcall _disp_myself
	.dbline 79
; 	disp_myself(112,1,124);
	ldi R24,124
	std y+0,R24
	ldi R18,1
	ldi R16,112
	xcall _disp_myself
	.dbline 80
; 	disp_myself(112,2,124);
	ldi R24,124
	std y+0,R24
	ldi R18,2
	ldi R16,112
	xcall _disp_myself
	.dbline 81
; 	disp_myself(112,3,124);
	ldi R24,124
	std y+0,R24
	ldi R18,3
	ldi R16,112
	xcall _disp_myself
	.dbline 82
; 	disp_myself(112,4,124);
	ldi R24,124
	std y+0,R24
	ldi R18,4
	ldi R16,112
	xcall _disp_myself
	.dbline 83
; 	disp_myself(112,5,124);
	ldi R24,124
	std y+0,R24
	ldi R18,5
	ldi R16,112
	xcall _disp_myself
	.dbline 84
; 	disp_myself(112,6,124);
	ldi R24,124
	std y+0,R24
	ldi R18,6
	ldi R16,112
	xcall _disp_myself
	.dbline 85
; 	disp_myself(112,7,124);
	ldi R24,124
	std y+0,R24
	ldi R18,7
	ldi R16,112
	xcall _disp_myself
	.dbline 86
; 	disp_myself(120,0,124);
	ldi R24,124
	std y+0,R24
	clr R18
	ldi R16,120
	xcall _disp_myself
	.dbline 87
; 	disp_myself(120,1,124);
	ldi R24,124
	std y+0,R24
	ldi R18,1
	ldi R16,120
	xcall _disp_myself
	.dbline 88
; 	disp_myself(120,2,124);
	ldi R24,124
	std y+0,R24
	ldi R18,2
	ldi R16,120
	xcall _disp_myself
	.dbline 89
; 	disp_myself(120,3,124);
	ldi R24,124
	std y+0,R24
	ldi R18,3
	ldi R16,120
	xcall _disp_myself
	.dbline 90
; 	disp_myself(120,4,124);
	ldi R24,124
	std y+0,R24
	ldi R18,4
	ldi R16,120
	xcall _disp_myself
	.dbline 91
; 	disp_myself(120,5,124);
	ldi R24,124
	std y+0,R24
	ldi R18,5
	ldi R16,120
	xcall _disp_myself
	.dbline 92
; 	disp_myself(120,6,124);
	ldi R24,124
	std y+0,R24
	ldi R18,6
	ldi R16,120
	xcall _disp_myself
	.dbline 93
; 	disp_myself(120,7,124);
	ldi R24,124
	std y+0,R24
	ldi R18,7
	ldi R16,120
	xcall _disp_myself
	.dbline 94
; 	disp_myself(0,5,123);
	ldi R24,123
	std y+0,R24
	ldi R18,5
	clr R16
	xcall _disp_myself
	.dbline 96
; 	
; 	t=get_ad();
	xcall _get_ad
	movw R20,R16
	.dbline 97
;     disp_to_bcd(t);
	xcall _disp_to_bcd
	.dbline 101
; 	 
; 	
; 
;     disp_char_str(58, 0, "m");				/*显示网址信息*/
	ldi R24,<L7
	ldi R25,>L7
	std y+1,R25
	std y+0,R24
	clr R18
	ldi R16,58
	xcall _disp_char_str
L8:
	.dbline 102
L9:
	.dbline 102
	xjmp L8
X0:
	.dbline -2
L6:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r t 20 I
	.dbend
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\main.c
L7:
	.blkb 2
	.area idata
	.byte 'm,0
	.area data(ram, con, rel)
	.dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\main.c

⌨️ 快捷键说明

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