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

📄 跑马灯.lst

📁 ICC mega8例子
💻 LST
字号:
__text_start:
__start:
      13 E5CF      LDI	R28,0x5F
      14 E0D4      LDI	R29,4
      15 BFCD      OUT	0x3D,R28
      16 BFDE      OUT	0x3E,R29
      17 51CE      SUBI	R28,0x1E
      18 40D0      SBCI	R29,0
      19 EA0A      LDI	R16,0xAA
      1A 8308      STD	Y+0,R16
      1B 2400      CLR	R0
      1C E6E0      LDI	R30,0x60
      1D E0F0      LDI	R31,0
      1E E010      LDI	R17,0
      1F 36E0      CPI	R30,0x60
      20 07F1      CPC	R31,R17
      21 F011      BEQ	0x0024
      22 9201      ST	R0,Z+
      23 CFFB      RJMP	0x001F
      24 8300      STD	Z+0,R16
      25 E2E6      LDI	R30,0x26
      26 E0F0      LDI	R31,0
      27 E6A0      LDI	R26,0x60
      28 E0B0      LDI	R27,0
      29 E010      LDI	R17,0
      2A E000      LDI	R16,0
      2B BF0B      OUT	0x3B,R16
      2C 32E6      CPI	R30,0x26
      2D 07F1      CPC	R31,R17
      2E F021      BEQ	0x0033
      2F 95C8      LPM
      30 9631      ADIW	R30,1
      31 920D      ST	R0,X+
      32 CFF9      RJMP	0x002C
      33 D032      RCALL	_main
_exit:
      34 CFFF      RJMP	_exit
FILE: E:\xiaozhiyong2009\设计资料\项目设计\mega8_C语言常用程序\ICCAVR_mega8_跑马灯\跑马灯.c
(0001) //ICC-AVR application builder : 2009-3-10 13:53:36
(0002) // Target : M8
(0003) // Crystal: 8.0000Mhz
(0004) 
(0005) #include <iom8v.h>
(0006) #include <macros.h>
(0007) 
(0008) void port_init(void)
(0009) {
(0010)  PORTB = 0x00;
_port_init:
      35 2422      CLR	R2
      36 BA28      OUT	0x18,R2
(0011)  DDRB  = 0x00;
      37 BA27      OUT	0x17,R2
(0012)  PORTC = 0x00; //m103 output only
      38 BA25      OUT	0x15,R2
(0013)  DDRC  = 0x00;
      39 BA24      OUT	0x14,R2
(0014)  PORTD = 0x00;
      3A BA22      OUT	0x12,R2
(0015)  DDRD  = 0x00;
      3B BA21      OUT	0x11,R2
      3C 9508      RET
(0016) }
(0017) 
(0018) //call this routine to initialize all peripherals
(0019) void init_devices(void)
(0020) {
(0021)  //stop errant interrupts until set up
(0022)  CLI(); //disable all interrupts
_init_devices:
      3D 94F8      BCLR	7
(0023)  port_init();
      3E DFF6      RCALL	_port_init
(0024) 
(0025)  MCUCR = 0x00;
      3F 2422      CLR	R2
      40 BE25      OUT	0x35,R2
(0026)  GICR  = 0x00;
      41 BE2B      OUT	0x3B,R2
(0027)  TIMSK = 0x00; //timer interrupt sources
      42 BE29      OUT	0x39,R2
(0028)  SEI(); //re-enable interrupts
      43 9478      BSET	7
      44 9508      RET
(0029)  //all peripherals are now initialized
(0030) }
(0031) 
(0032) /************************************
(0033) Name         :小延时程序
(0034) Target       :atmega8
(0035) Crystal(晶振):8M
(0036) ************************************/
(0037) void delay()
(0038) {
(0039)  unsigned int i;//最大值65536
(0040)  for (i=0;i<40000;i++)
_delay:
  i                    --> R16
      45 2700      CLR	R16
      46 2711      CLR	R17
      47 C002      RJMP	0x004A
      48 5F0F      SUBI	R16,0xFF
      49 4F1F      SBCI	R17,0xFF
      4A E480      LDI	R24,0x40
      4B E99C      LDI	R25,0x9C
      4C E0A0      LDI	R26,0
      4D E0B0      LDI	R27,0
      4E 0118      MOVW	R2,R16
      4F 2444      CLR	R4
      50 2455      CLR	R5
      51 1628      CP	R2,R24
      52 0639      CPC	R3,R25
      53 064A      CPC	R4,R26
      54 065B      CPC	R5,R27
      55 F394      BLT	0x0048
      56 9508      RET
_show_LED:
  i                    --> R20
      57 934A      ST	R20,-Y
(0041)  {;}
(0042) }
(0043) 
(0044) /************************************
(0045) Name         :跑马灯
(0046) Target       :atmega8
(0047) Crystal(晶振):8M
(0048) **************************************/
(0049) void show_LED()
(0050) {
(0051)  unsigned char i;
(0052)  DDRB=0xff;//设为输出
      58 EF8F      LDI	R24,0xFF
      59 BB87      OUT	0x17,R24
(0053)  for (i=0;i<8;i++)
      5A 2744      CLR	R20
      5B C006      RJMP	0x0062
(0054)  {
(0055)   PORTB=(1<<i);
      5C E001      LDI	R16,1
      5D 2F14      MOV	R17,R20
      5E D00D      RCALL	lsl8
      5F BB08      OUT	0x18,R16
(0056)   delay();
      60 DFE4      RCALL	_delay
      61 9543      INC	R20
      62 3048      CPI	R20,0x8
      63 F3C0      BCS	0x005C
      64 9149      LD	R20,Y+
      65 9508      RET
(0057)  }
(0058) }
(0059) 
(0060) void main()
(0061) {
(0062)  port_init();
_main:
      66 DFCE      RCALL	_port_init
(0063)  init_devices();
      67 DFD5      RCALL	_init_devices
      68 C001      RJMP	0x006A
(0064)  while(1)
(0065)  {
(0066)   show_LED();
FILE: <library>
      69 DFED      RCALL	_show_LED
      6A CFFE      RJMP	0x0069
      6B 9508      RET
lsl8:
      6C 2311      TST	R17
      6D F019      BEQ	0x0071
      6E 0F00      LSL	R16
      6F 951A      DEC	R17
      70 CFFB      RJMP	lsl8
      71 9508      RET

⌨️ 快捷键说明

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