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

📄 adc.lst

📁 液晶屏源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
      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 + -