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

📄 cac.lst

📁 我写的L297步进电机的驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
(0128) 0x02,0x00,0x03,0x00,0x01,0x88,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0129) 
(0130) char    const    font_bfh[]= //%
(0131) {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x4C,0x02,0x58,0x01,0xB0,0x00,0x60,
(0132) 0x00,0xD8,0x01,0xA4,0x03,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0133) 
(0134) 
(0135) //-----------显示汉字串-----------------//
(0136) void DisHZ(unsigned int LCD_COMMAND,unsigned int x, unsigned char *HZS)
(0137) {
(0138) unsigned char i;
(0139) Send_CMD(LCD_COMMAND);
    0120 2F04      MOV	R16,R20
    0121 DF8C      RCALL	_Send_CMD
(0140) for (i=0;i<x;i++)
    0122 2744      CLR	R20
    0123 C007      RJMP	0x012B
(0141) Send_DATA(HZS[i]);
    0124 2FE4      MOV	R30,R20
    0125 27FF      CLR	R31
    0126 0FE6      ADD	R30,R22
    0127 1FF7      ADC	R31,R23
    0128 8100      LDD	R16,Z+0
    0129 DFAE      RCALL	_Send_DATA
    012A 9543      INC	R20
    012B 2E24      MOV	R2,R20
    012C 2433      CLR	R3
    012D 142A      CP	R2,R10
    012E 043B      CPC	R3,R11
    012F F3A0      BCS	0x0124
    0130 940E02C3  CALL	pop_gset3
    0132 9508      RET
_DisHZXY:
  i                    --> R20
  HZS                  --> R22
  z                    --> R10
  y                    --> R12
  x                    --> R20
    0133 940E02CE  CALL	push_gset4
    0135 0169      MOVW	R12,R18
    0136 01A8      MOVW	R20,R16
    0137 84A8      LDD	R10,Y+8
    0138 84B9      LDD	R11,Y+9
    0139 856A      LDD	R22,Y+10
    013A 857B      LDD	R23,Y+11
(0142) }
(0143) 
(0144) //-----------显示汉字串XY-----------------//
(0145) void DisHZXY(unsigned int x,unsigned int y,unsigned int z, unsigned char *HZS)
(0146) {
(0147) unsigned char i;
(0148) LCD_set_xy(x,y);
    013B 2D2C      MOV	R18,R12
    013C 2F04      MOV	R16,R20
    013D DFB3      RCALL	_LCD_set_xy
(0149) for (i=0;i<z;i++)
    013E 2744      CLR	R20
    013F C007      RJMP	0x0147
(0150) Send_DATA(HZS[i]);
    0140 2FE4      MOV	R30,R20
    0141 27FF      CLR	R31
    0142 0FE6      ADD	R30,R22
    0143 1FF7      ADC	R31,R23
    0144 8100      LDD	R16,Z+0
    0145 DF92      RCALL	_Send_DATA
    0146 9543      INC	R20
    0147 2E24      MOV	R2,R20
    0148 2433      CLR	R3
    0149 142A      CP	R2,R10
    014A 043B      CPC	R3,R11
    014B F3A0      BCS	0x0140
    014C 940E02C6  CALL	pop_gset4
    014E 9508      RET
_DisOneHZ:
  Data                 --> R20
  LCD_COMMAND          --> R22
    014F 940E02D2  CALL	push_gset2
    0151 2F42      MOV	R20,R18
    0152 01B8      MOVW	R22,R16
(0151) }
(0152) 
(0153) //-----------显示一个汉字--------------//
(0154) void DisOneHZ(unsigned int LCD_COMMAND, unsigned char Data)
(0155) {
(0156) Send_CMD(LCD_COMMAND);
    0153 2F06      MOV	R16,R22
    0154 DF59      RCALL	_Send_CMD
(0157) Send_DATA(Data);
    0155 2F04      MOV	R16,R20
    0156 DF81      RCALL	_Send_DATA
    0157 940E02C0  CALL	pop_gset2
    0159 9508      RET
_DisBMP:
  i                    --> R20
  y                    --> R12
  j                    --> R10
  x                    --> R14
  img                  --> R22
    015A 940E02CC  CALL	push_gset5
    015C 01B8      MOVW	R22,R16
(0158) }
(0159) 
(0160) /*-------------显示图片---------------*/
(0161) void DisBMP(const unsigned char *img)
(0162) {  
(0163)     unsigned int j=0;
    015D 24AA      CLR	R10
    015E 24BB      CLR	R11
(0164)     unsigned char x,y,i;
(0165)     for(i=0;i<9;i+=8)
    015F 2744      CLR	R20
    0160 C02B      RJMP	0x018C
(0166)     for(y=0;y<32;y++)
    0161 24CC      CLR	R12
    0162 C024      RJMP	0x0187
(0167)     for(x=0;x<8;x++)
    0163 24EE      CLR	R14
    0164 C01E      RJMP	0x0183
(0168)          {  Send_CMD(0x36);
    0165 E306      LDI	R16,0x36
    0166 DF47      RCALL	_Send_CMD
(0169)             Send_CMD(y+0x80);   
    0167 2D0C      MOV	R16,R12
    0168 5800      SUBI	R16,0x80
    0169 DF44      RCALL	_Send_CMD
(0170)             Send_CMD(x+0x80+i);
    016A 2D0E      MOV	R16,R14
    016B 5800      SUBI	R16,0x80
    016C 0F04      ADD	R16,R20
    016D DF40      RCALL	_Send_CMD
(0171)             Send_CMD(0x30);
    016E E300      LDI	R16,0x30
    016F DF3E      RCALL	_Send_CMD
(0172)             Send_DATA(img[j++]);
    0170 0115      MOVW	R2,R10
    0171 01C1      MOVW	R24,R2
    0172 9601      ADIW	R24,1
    0173 015C      MOVW	R10,R24
    0174 01F1      MOVW	R30,R2
    0175 0FE6      ADD	R30,R22
    0176 1FF7      ADC	R31,R23
    0177 9104      LPM	R16,0(Z)
    0178 DF5F      RCALL	_Send_DATA
(0173)             Send_DATA(img[j++]);
    0179 0115      MOVW	R2,R10
    017A 01C1      MOVW	R24,R2
    017B 9601      ADIW	R24,1
    017C 015C      MOVW	R10,R24
    017D 01F1      MOVW	R30,R2
    017E 0FE6      ADD	R30,R22
    017F 1FF7      ADC	R31,R23
    0180 9104      LPM	R16,0(Z)
    0181 DF56      RCALL	_Send_DATA
    0182 94E3      INC	R14
    0183 2D8E      MOV	R24,R14
    0184 3088      CPI	R24,0x8
    0185 F2F8      BCS	0x0165
    0186 94C3      INC	R12
    0187 2D8C      MOV	R24,R12
    0188 3280      CPI	R24,0x20
    0189 F408      BCC	0x018B
    018A CFD8      RJMP	0x0163
    018B 5F48      SUBI	R20,0xF8
    018C 3049      CPI	R20,0x9
    018D F408      BCC	0x018F
    018E CFD2      RJMP	0x0161
    018F 940E02C9  CALL	pop_gset5
    0191 9508      RET
FILE: E:\单片机\PROJECT\高精度三维太阳自动跟踪器\程序\传感器控制\delay.h
(0001) /*-----------------------------------------------------------------------
(0002) 延时函数
(0003) 编译器:ICC-AVR v6.31A 
(0004) 目标芯片 : M16
(0005) 时钟: 1.0000Mhz
(0006) -----------------------------------------------------------------------*/
(0007) #ifndef __delay_h
(0008) #define __delay_h
(0009) void delay_nus(unsigned int n);
(0010) void delay_nms(unsigned int n);
(0011) void delay_1us(void);
(0012) void delay_1ms(void) ; 
(0013) 
(0014) void delay_1us(void)                 //1us延时函数
(0015)   {
(0016)    asm("nop");
_delay_1us:
    0192 0000      NOP
    0193 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    0194 940E02D2  CALL	push_gset2
    0196 01B8      MOVW	R22,R16
(0017)   }
(0018) 
(0019) void delay_nus(unsigned int n)       //N us延时函数
(0020)   {
(0021)    unsigned int i=0;
    0197 2744      CLR	R20
    0198 2755      CLR	R21
(0022)    for (i=0;i<n;i++)
    0199 C003      RJMP	0x019D
(0023)    delay_1us();
    019A DFF7      RCALL	_delay_1us
    019B 5F4F      SUBI	R20,0xFF
    019C 4F5F      SBCI	R21,0xFF
    019D 1746      CP	R20,R22
    019E 0757      CPC	R21,R23
    019F F3D0      BCS	0x019A
    01A0 940E02C0  CALL	pop_gset2
    01A2 9508      RET
(0024)   }
(0025)   
(0026) void delay_1ms(void)                 //1ms延时函数
(0027)   {
(0028)    unsigned int i;
(0029)    for (i=0;i<1140;i++);
_delay_1ms:
  i                    --> R16
    01A3 2700      CLR	R16
    01A4 2711      CLR	R17
    01A5 C002      RJMP	0x01A8
    01A6 5F0F      SUBI	R16,0xFF
    01A7 4F1F      SBCI	R17,0xFF
    01A8 3704      CPI	R16,0x74
    01A9 E0E4      LDI	R30,4
    01AA 071E      CPC	R17,R30
    01AB F3D0      BCS	0x01A6
    01AC 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    01AD 940E02D2  CALL	push_gset2
    01AF 01B8      MOVW	R22,R16
(0030)   }
(0031)   
(0032) void delay_nms(unsigned int n)       //N ms延时函数
(0033)   {
(0034)    unsigned int i=0;
    01B0 2744      CLR	R20
    01B1 2755      CLR	R21
(0035)    for (i=0;i<n;i++)
    01B2 C003      RJMP	0x01B6
(0036)    delay_1ms();
    01B3 DFEF      RCALL	_delay_1ms
    01B4 5F4F      SUBI	R20,0xFF
    01B5 4F5F      SBCI	R21,0xFF
    01B6 1746      CP	R20,R22
    01B7 0757      CPC	R21,R23
    01B8 F3D0      BCS	0x01B3
    01B9 940E02C0  CALL	pop_gset2
    01BB 9508      RET
_change:
  p                    --> R20
  i                    --> R22
    01BC 940E02D2  CALL	push_gset2
    01BE 01A9      MOVW	R20,R18
    01BF 01B8      MOVW	R22,R16
FILE: E:\单片机\PROJECT\高精度三维太阳自动跟踪器\程序\传感器控制\main.c
(0001) /*****************************************
(0002) *      基于AD转化程序设计 		   	     *
(0003) * 功    能:AD转化          			 *
(0004) * 时钟频率:内部8M 						 *
(0005) * 设    计:莫锦攀						 *
(0006) * 修改日期:2007年07月04日				 *
(0007) * 编译环境:ICC-AVR6.31					 *
(0008) * 实验环境:M16学习板					 *
(0009) * 使用端口:PC6,PC7,PA4~PA7,PA0 		 *
(0010) *****************************************/
(0011) 
(0012) #include <iom128v.h>
(0013) #include <macros.h>
(0014) #include "lcm12864.h"
(0015) #include "delay.h"
(0016) #define uchar unsigned char
(0017) #define uint unsigned int
(0018) uchar Data[5]={0,0,0,0,0};//初始值为0000,最后一个0是结束符
(0019) void change(uint i,uchar *p)		 //显示处理
(0020) {p[3]=i%10+48;//个
    01C0 E02A      LDI	R18,0xA
    01C1 E030      LDI	R19,0
    01C2 018B      MOVW	R16,R22
    01C3 940E02A4  CALL	mod16u
    01C5 01C8      MOVW	R24,R16
    01C6 96C0      ADIW	R24,0x30
    01C7 01FA      MOVW	R30,R20
    01C8 8383      STD	Z+3,R24
(0021)  p[2]=i/10%10+48;//十
    01C9 E02A      LDI	R18,0xA
    01CA E030      LDI	R19,0
    01CB 018B      MOVW	R16,R22
    01CC 940E02A6  CALL	div16u
    01CE E02A      LDI	R18,0xA
    01CF E030      LDI	R19,0
    01D0 940E02A4  CALL	mod16u
    01D2 01C8      MOVW	R24,R16
    01D3 96C0      ADIW	R24,0x30
    01D4 01FA      MOVW	R30,R20
    01D5 8382      STD	Z+2,R24
(0022)  p[1]=i/100%10+48;//百
    01D6 E624      LDI	R18,0x64
    01D7 E030      LDI	R19,0
    01D8 018B      MOVW	R16,R22
    01D9 940E02A6  CALL	div16u
    01DB E02A      LDI	R18,0xA
    01DC E030      LDI	R19,0
    01DD 940E02A4  CALL	mod16u
    01DF 01C8      MOVW	R24,R16
    01E0 96C0      ADIW	R24,0x30
    01E1 01FA      MOVW	R30,R20
    01E2 8381      STD	Z+1,R24
(0023)  p[0]=i/1000%10+48;//千
    01E3 EE28      LDI	R18,0xE8
    01E4 E033      LDI	R19,3
    01E5 018B      MOVW	R16,R22
    01E6 940E02A6  CALL	div16u
    01E8 E02A      LDI	R18,0xA
    01E9 E030      LDI	R19,0
    01EA 940E02A4  CALL	mod16u
    01EC 01C8      MOVW	R24,R16
    01ED 96C0      ADIW	R24,0x30
    01EE 01FA      MOVW	R30,R20
    01EF 8380      STD	Z+0,R24
    01F0 940E02C0  CALL	pop_gset2
    01F2 9508      RET
(0024) }
(0025) 
(0026) uint ADC_convert(void)//AD转换函数,读取采样获得的10位数据
(0027) {
(0028) uint temp1,temp2;
(0029) temp1=(uint)ADCL;
_ADC_convert:
  temp1                --> R18
  temp2                --> R16
    01F3 B124      IN	R18,0x04
    01F4 2733      CLR	R19
(0030) temp2=(uint)ADCH;

⌨️ 快捷键说明

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