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

📄 shiyan.lst

📁 电机的不同转动轻快
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
      39 E5CF      LDI	R28,0x5F
      3A E0D4      LDI	R29,4
      3B BFCD      OUT	0x3D,R28
      3C BFDE      OUT	0x3E,R29
      3D 51CE      SUBI	R28,0x1E
      3E 40D0      SBCI	R29,0
      3F EA0A      LDI	R16,0xAA
      40 8308      STD	Y+0,R16
      41 2400      CLR	R0
      42 E7ED      LDI	R30,0x7D
      43 E0F0      LDI	R31,0
      44 E010      LDI	R17,0
      45 37ED      CPI	R30,0x7D
      46 07F1      CPC	R31,R17
      47 F011      BEQ	0x004A
      48 9201      ST	R0,Z+
      49 CFFB      RJMP	0x0045
      4A 8300      STD	Z+0,R16
      4B E5E4      LDI	R30,0x54
      4C E0F0      LDI	R31,0
      4D E6A0      LDI	R26,0x60
      4E E0B0      LDI	R27,0
      4F E010      LDI	R17,0
      50 E000      LDI	R16,0
      51 BF0B      OUT	0x3B,R16
      52 37E1      CPI	R30,0x71
      53 07F1      CPC	R31,R17
      54 F021      BEQ	0x0059
      55 95C8      LPM
      56 9631      ADIW	R30,1
      57 920D      ST	R0,X+
      58 CFF9      RJMP	0x0052
      59 940E 0172 CALL	_main
_exit:
      5B CFFF      RJMP	_exit
_delay1ms:
  j                    --> R20
  i                    --> R16
      5C 934A      ST	R20,-Y
      5D 935A      ST	R21,-Y
FILE: C:\DOCUME~1\徐胜辉\桌面\新建文件夹\shiyan.c
(0001) #include<iom16v.h>
(0002) #define uchar unsigned char
(0003) #define uint unsigned int
(0004) #define RS_1 PORTA|=(1<<3)
(0005) #define RS_0 PORTA&=~(1<<3)
(0006) #define RW_1 PORTA|=(1<<4)
(0007) #define RW_0 PORTA&=~(1<<4)
(0008) #define EN_1 PORTA|=(1<<5)
(0009) #define EN_0 PORTA&=~(1<<5)
(0010) unsigned char  dispcode[]="0123456789ABCDEF";
(0011)  unsigned char  str1[]={"number is: "};
(0012) 
(0013) /*************************lcd1602程序**************************/
(0014) void delay1ms(uint i)//延时1毫秒(不够精确的)
(0015) {
(0016)   unsigned int j;
(0017)   for(;i>0;i--)
      5E C00B      RJMP	0x006A
(0018)   for(j=0;j<1142;j++);
      5F 2744      CLR	R20
      60 2755      CLR	R21
      61 C002      RJMP	0x0064
      62 5F4F      SUBI	R20,0xFF
      63 4F5F      SBCI	R21,0xFF
      64 3746      CPI	R20,0x76
      65 E0E4      LDI	R30,4
      66 075E      CPC	R21,R30
      67 F3D0      BCS	0x0062
      68 5001      SUBI	R16,1
      69 4010      SBCI	R17,0
      6A 3000      CPI	R16,0
      6B 0701      CPC	R16,R17
      6C F791      BNE	0x005F
      6D 9159      LD	R21,Y+
      6E 9149      LD	R20,Y+
      6F 9508      RET
_wr_com:
  com                  --> R10
      70 92AA      ST	R10,-Y
      71 2EA0      MOV	R10,R16
(0019) }
(0020) void wr_com(unsigned char com)//写指令//
(0021) {
(0022)    delay1ms(1);
      72 E001      LDI	R16,1
      73 E010      LDI	R17,0
      74 DFE7      RCALL	_delay1ms
(0023)    RS_0;
      75 98DB      CBI	0x1B,3
(0024)    RW_0;
      76 98DC      CBI	0x1B,4
(0025)    EN_0;
      77 98DD      CBI	0x1B,5
(0026)    PORTB=com;
      78 BAA8      OUT	0x18,R10
(0027)    delay1ms(1);
      79 E001      LDI	R16,1
      7A E010      LDI	R17,0
      7B DFE0      RCALL	_delay1ms
(0028)    EN_1;
      7C 9ADD      SBI	0x1B,5
(0029)    delay1ms(1);
      7D E001      LDI	R16,1
      7E E010      LDI	R17,0
      7F DFDC      RCALL	_delay1ms
(0030)    EN_0;
      80 98DD      CBI	0x1B,5
      81 90A9      LD	R10,Y+
      82 9508      RET
_wr_dat:
  dat                  --> R10
      83 92AA      ST	R10,-Y
      84 2EA0      MOV	R10,R16
(0031) }
(0032) void wr_dat(unsigned char dat)//写数据//
(0033) {
(0034)   delay1ms(1);
      85 E001      LDI	R16,1
      86 E010      LDI	R17,0
      87 DFD4      RCALL	_delay1ms
(0035)    RS_1;
      88 9ADB      SBI	0x1B,3
(0036)    RW_0;
      89 98DC      CBI	0x1B,4
(0037)    EN_0;
      8A 98DD      CBI	0x1B,5
(0038)    PORTB=dat;
      8B BAA8      OUT	0x18,R10
(0039)    delay1ms(1);
      8C E001      LDI	R16,1
      8D E010      LDI	R17,0
      8E DFCD      RCALL	_delay1ms
(0040)    EN_1;
      8F 9ADD      SBI	0x1B,5
(0041)    delay1ms(1);
      90 E001      LDI	R16,1
      91 E010      LDI	R17,0
      92 DFC9      RCALL	_delay1ms
(0042)    EN_0;
      93 98DD      CBI	0x1B,5
      94 90A9      LD	R10,Y+
      95 9508      RET
(0043) }
(0044) void lcd_init()//初始化设置//
(0045) {
(0046)    DDRB|=0xFF;      /*I/O口方向设置*/
_lcd_init:
      96 B387      IN	R24,0x17
      97 6F8F      ORI	R24,0xFF
      98 BB87      OUT	0x17,R24
(0047)  DDRA|=(1<<3)|(1<<4)|(1<<5);
      99 B38A      IN	R24,0x1A
      9A 6388      ORI	R24,0x38
      9B BB8A      OUT	0x1A,R24
(0048)  delay1ms(15);
      9C E00F      LDI	R16,0xF
      9D E010      LDI	R17,0
      9E DFBD      RCALL	_delay1ms
(0049)   wr_com(0x38);delay1ms(5);
      9F E308      LDI	R16,0x38
      A0 DFCF      RCALL	_wr_com
      A1 E005      LDI	R16,5
      A2 E010      LDI	R17,0
      A3 DFB8      RCALL	_delay1ms
(0050)    wr_com(0x08);delay1ms(5);
      A4 E008      LDI	R16,0x8
      A5 DFCA      RCALL	_wr_com
      A6 E005      LDI	R16,5
      A7 E010      LDI	R17,0
      A8 DFB3      RCALL	_delay1ms
(0051)     wr_com(0x01);delay1ms(5);
      A9 E001      LDI	R16,1
      AA DFC5      RCALL	_wr_com
      AB E005      LDI	R16,5
      AC E010      LDI	R17,0
      AD DFAE      RCALL	_delay1ms
(0052)      wr_com(0x06);delay1ms(5);
      AE E006      LDI	R16,6
      AF DFC0      RCALL	_wr_com
      B0 E005      LDI	R16,5
      B1 E010      LDI	R17,0
      B2 DFA9      RCALL	_delay1ms
(0053)       wr_com(0x0c);delay1ms(5);
      B3 E00C      LDI	R16,0xC
      B4 DFBB      RCALL	_wr_com
      B5 E005      LDI	R16,5
      B6 E010      LDI	R17,0
      B7 DFA4      RCALL	_delay1ms
      B8 9508      RET
_display:
  p                    --> R20
      B9 934A      ST	R20,-Y
      BA 935A      ST	R21,-Y
      BB 01A8      MOVW	R20,R16
(0054) }
(0055) 
(0056) void display(unsigned char *p)//显示//
(0057) {
      BC C008      RJMP	0x00C5
(0058) while(*p!='\0')
(0059) {
(0060) wr_dat(*p);
      BD 01FA      MOVW	R30,R20
      BE 8100      LDD	R16,Z+0
      BF DFC3      RCALL	_wr_dat
(0061) p++;
      C0 5F4F      SUBI	R20,0xFF
      C1 4F5F      SBCI	R21,0xFF
(0062) delay1ms(1);
      C2 E001      LDI	R16,1
      C3 E010      LDI	R17,0
      C4 DF97      RCALL	_delay1ms
      C5 01FA      MOVW	R30,R20
      C6 8020      LDD	R2,Z+0
      C7 2022      TST	R2
      C8 F7A1      BNE	0x00BD
      C9 9159      LD	R21,Y+
      CA 9149      LD	R20,Y+
      CB 9508      RET
(0063) }
(0064) }
(0065) 
(0066) /******************************ds1820程序***************************************/
(0067) void delay_18B20(int time)
(0068) {
(0069) do
(0070) time--;
_delay_18B20:
  time                 --> R16
      CC 5001      SUBI	R16,1
      CD 4010      SBCI	R17,0
(0071) while(time>1);
      CE E081      LDI	R24,1
      CF E090      LDI	R25,0
      D0 1780      CP	R24,R16
      D1 0791      CPC	R25,R17
      D2 F3CC      BLT	0x00CC
      D3 9508      RET
_ds1820rst:
  ack                  --> R20
      D4 934A      ST	R20,-Y
(0072) }
(0073) unsigned char ds1820rst()/*ds1820复位*/
(0074) {
(0075) unsigned char ack;
(0076) DDRA|=0x01;
      D5 9AD0      SBI	0x1A,0
(0077) PORTA&=0xfe;
      D6 B38B      IN	R24,0x1B
      D7 7F8E      ANDI	R24,0xFE
      D8 BB8B      OUT	0x1B,R24
(0078) delay_18B20(500);
      D9 EF04      LDI	R16,0xF4
      DA E011      LDI	R17,1
      DB DFF0      RCALL	_delay_18B20
(0079) PORTA|=0x01;
      DC 9AD8      SBI	0x1B,0
(0080) DDRA&=0xfe;
      DD B38A      IN	R24,0x1A
      DE 7F8E      ANDI	R24,0xFE
      DF BB8A      OUT	0x1A,R24
(0081) delay_18B20(75);
      E0 E40B      LDI	R16,0x4B
      E1 E010      LDI	R17,0
      E2 DFE9      RCALL	_delay_18B20
(0082) ack=PINA;
      E3 B349      IN	R20,0x19
(0083) ack&=0x01;
      E4 7041      ANDI	R20,1
(0084) delay_18B20(500);
      E5 EF04      LDI	R16,0xF4
      E6 E011      LDI	R17,1
      E7 DFE4      RCALL	_delay_18B20
(0085) return ack;
      E8 2F04      MOV	R16,R20
      E9 9149      LD	R20,Y+
      EA 9508      RET
_ds1820rd:
  byte                 --> R20
  temp                 --> R10
  i                    --> R22
      EB 940E 01A3 CALL	push_xgsetF00C
(0086)  } 
(0087) 
(0088) unsigned char ds1820rd()/*读数据*/

⌨️ 快捷键说明

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