📄 adc.lst
字号:
C4 940C 0151 JMP pop_xgsetF03C
(0063) }
(0064)
(0065) //LCD初始化
(0066) void LCD_init(void)
(0067) {
(0068) /**********LCD12232串口口线设置************/
(0069) lcd_port|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
_LCD_init:
C6 B38B IN R24,0x1B
C7 618C ORI R24,0x1C
C8 BB8B OUT 0x1B,R24
(0070) lcd_ddr|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
C9 B38A IN R24,0x1A
CA 618C ORI R24,0x1C
CB BB8A OUT 0x1A,R24
(0071)
(0072) lcd_write(command,0x30); //30---基本指令动作
CC E320 LDI R18,0x30
CD 2700 CLR R16
CE DFB8 RCALL _lcd_write
(0073) //lcd_write(command,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1
(0074) lcd_write(command,0x01); //清屏,地址指针指向00H
CF E021 LDI R18,1
D0 2700 CLR R16
D1 DFB5 RCALL _lcd_write
(0075) lcd_write(command,0x06); //光标的移动方向
D2 E026 LDI R18,6
D3 2700 CLR R16
D4 DFB2 RCALL _lcd_write
(0076) lcd_write(command,0x0c); //开显示,关游标
D5 E02C LDI R18,0xC
D6 2700 CLR R16
D7 DFAF RCALL _lcd_write
(0077) delay_ms(); //液晶初始化后延时
D8 DF95 RCALL _delay_ms
D9 9508 RET
_lcd_display:
i --> R20
chn --> R10
DA 940E 013E CALL push_xgset300C
DC 0158 MOVW R10,R16
(0078) }
(0079)
(0080) //LCD全屏显示字符
(0081) void lcd_display(unsigned char chn[30])
(0082) {
(0083) unsigned char i;
(0084) lcd_write(command,0x30);
DD E320 LDI R18,0x30
DE 2700 CLR R16
DF DFA7 RCALL _lcd_write
(0085) lcd_write(command,x1);
E0 E820 LDI R18,0x80
E1 2700 CLR R16
E2 DFA4 RCALL _lcd_write
(0086) for (i=0;i<15;i++)
E3 2744 CLR R20
E4 C008 RJMP 0x00ED
(0087) lcd_write(data,chn[i]);
E5 2FE4 MOV R30,R20
E6 27FF CLR R31
E7 0DEA ADD R30,R10
E8 1DFB ADC R31,R11
E9 8120 LDD R18,Z+0
EA E001 LDI R16,1
EB DF9B RCALL _lcd_write
EC 9543 INC R20
ED 304F CPI R20,0xF
EE F3B0 BCS 0x00E5
(0088) lcd_write(command,x2);
EF E920 LDI R18,0x90
F0 2700 CLR R16
F1 DF95 RCALL _lcd_write
(0089) for (i=0;i<15;i++)
F2 2744 CLR R20
F3 C008 RJMP 0x00FC
(0090) lcd_write(data,chn[15+i]);
F4 2FE4 MOV R30,R20
F5 27FF CLR R31
F6 0DEA ADD R30,R10
F7 1DFB ADC R31,R11
F8 8527 LDD R18,Z+15
F9 E001 LDI R16,1
FA DF8C RCALL _lcd_write
FB 9543 INC R20
FC 304F CPI R20,0xF
FD F3B0 BCS 0x00F4
FE 940C 0143 JMP pop_xgset300C
_line1_display:
i --> R20
chn --> R10
100 940E 013E CALL push_xgset300C
102 0158 MOVW R10,R16
(0091) }
(0092)
(0093) //LCD第一行显示字符
(0094) void line1_display(unsigned char chn[15])
(0095) {
(0096) unsigned char i;
(0097) lcd_write(command,0x30);
103 E320 LDI R18,0x30
104 2700 CLR R16
105 DF81 RCALL _lcd_write
(0098) lcd_write(command,x1);
106 E820 LDI R18,0x80
107 2700 CLR R16
108 DF7E RCALL _lcd_write
(0099) for (i=0;i<15;i++)
109 2744 CLR R20
10A C008 RJMP 0x0113
(0100) lcd_write(data,chn[i]);
10B 2FE4 MOV R30,R20
10C 27FF CLR R31
10D 0DEA ADD R30,R10
10E 1DFB ADC R31,R11
10F 8120 LDD R18,Z+0
110 E001 LDI R16,1
111 DF75 RCALL _lcd_write
112 9543 INC R20
113 304F CPI R20,0xF
114 F3B0 BCS 0x010B
115 940C 0143 JMP pop_xgset300C
_line2_display:
i --> R20
chn --> R10
117 940E 013E CALL push_xgset300C
119 0158 MOVW R10,R16
(0101) }
(0102)
(0103) //LCD第二行显示字符
(0104) void line2_display(unsigned char chn[15])
(0105) {
(0106) unsigned char i;
(0107) lcd_write(command,0x30);
11A E320 LDI R18,0x30
11B 2700 CLR R16
11C DF6A RCALL _lcd_write
(0108) lcd_write(command,x2);
11D E920 LDI R18,0x90
11E 2700 CLR R16
11F DF67 RCALL _lcd_write
(0109) for (i=0;i<15;i++)
120 2744 CLR R20
121 C008 RJMP 0x012A
(0110) lcd_write(data,chn[i]);
122 2FE4 MOV R30,R20
123 27FF CLR R31
124 0DEA ADD R30,R10
125 1DFB ADC R31,R11
126 8120 LDD R18,Z+0
127 E001 LDI R16,1
128 DF5E RCALL _lcd_write
129 9543 INC R20
12A 304F CPI R20,0xF
12B F3B0 BCS 0x0122
12C 940C 0143 JMP pop_xgset300C
FILE: D:\iccavr\mega16\11\10bit_adc\test.c
(0001) //ICC-AVR application builder : 2008-11-4 12:53:50
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004)
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007)
(0008) #include "delay.h"
(0009) #include "lcd12232.h"
(0010) //#include "adc.h"
(0011) //call this routine to initialize all peripherals
(0012) void init_devices(void)
(0013) {
(0014) //stop errant interrupts until set up
(0015) CLI(); //disable all interrupts
_init_devices:
12E 94F8 BCLR 7
(0016) LCD_init();
12F DF96 RCALL _LCD_init
(0017) PORTD|=BIT(PD7);
130 9A97 SBI 0x12,7
(0018) DDRD|=BIT(PD7);
131 9A8F SBI 0x11,7
(0019)
(0020) MCUCR = 0x00;
132 2422 CLR R2
133 BE25 OUT 0x35,R2
(0021) GICR = 0x00;
134 BE2B OUT 0x3B,R2
(0022) TIMSK = 0x00; //timer interrupt sources
135 BE29 OUT 0x39,R2
(0023) SEI(); //re-enable interrupts
136 9478 BSET 7
137 9508 RET
(0024) //all peripherals are now initialized
(0025) }
(0026)
(0027) //
(0028) void main(void)
(0029) {
(0030) unsigned int adc0,adc1;
(0031) init_devices();
_main:
adc1 --> Y,+1
adc0 --> Y,+1
138 DFF5 RCALL _init_devices
(0032) //insert your functional code here...
(0033) lcd_display("LCD12232-9液晶 "" 显示测试 ");
139 E600 LDI R16,0x60
13A E010 LDI R17,0
13B DF9E RCALL _lcd_display
(0034) //delay_nms(2000);
(0035)
(0036) while(1)
FILE: <library>
13C CFFF RJMP 0x013C
13D 9508 RET
push_xgset300C:
13E 935A ST R21,-Y
13F 934A ST R20,-Y
140 92BA ST R11,-Y
141 92AA ST R10,-Y
142 9508 RET
pop_xgset300C:
143 90A9 LD R10,Y+
144 90B9 LD R11,Y+
145 9149 LD R20,Y+
146 9159 LD R21,Y+
147 9508 RET
push_xgsetF03C:
148 937A ST R23,-Y
149 936A ST R22,-Y
14A 935A ST R21,-Y
14B 934A ST R20,-Y
14C 92DA ST R13,-Y
14D 92CA ST R12,-Y
14E 92BA ST R11,-Y
14F 92AA ST R10,-Y
150 9508 RET
pop_xgsetF03C:
151 90A9 LD R10,Y+
152 90B9 LD R11,Y+
153 90C9 LD R12,Y+
154 90D9 LD R13,Y+
155 9149 LD R20,Y+
156 9159 LD R21,Y+
157 9169 LD R22,Y+
158 9179 LD R23,Y+
159 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -