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

📄 main.lis

📁 avr单片机atmage16驱动小灯的一些例程 并且包括一些收发数据的程序利用usb口
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICCAVR\project\AVRMEG~2\icc\030-DS18B20-LED4\main.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;              b -> R20
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_ms::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 18
 0004           ; /*
 0004           ; 实验四:
 0004           ;       SPI接口实险,LED数据管显示。
 0004           ;       1、程序通过SPI接口输出数据到HC595芯片驱动LED数据管简单显示。
 0004           ;       2、内部1 M晶振,程序采用单任务方式,软件延时。
 0004           ;       3、进行此实验请插上JP1的所有8个短路块,JP6(SPI_EN)短路块。
 0004           ; 
 0004           ;       AVR  mega16学习板
 0004           ;       www.iccavr.com
 0004           ;       2006-01-10
 0004           ; */
 0004           ; 
 0004           ; #include "iom16v.h"
 0004           ; #include "ds1820.h"
 0004           ; #include "led4.h"
 0004           ; 
 0004           ; /*延时函数*/
 0004           ; void delay_ms(unsigned int i) {
 0004 05C0              xjmp L3
 0006           L2:
 0006                   .dbline 21
 0006           ; 
 0006           ;       unsigned char b;
 0006           ;       while (i --) {
 0006                   .dbline 22
 0006 41E0              ldi R20,1
 0008 01C0              xjmp L8
 000A           L5:
 000A                   .dbline 22
 000A                   .dbline 23
 000A                   .dbline 24
 000A           L6:
 000A                   .dbline 22
 000A 4395              inc R20
 000C           L8:
 000C                   .dbline 22
 000C 4423              tst R20
 000E E9F7              brne L5
 0010                   .dbline 25
 0010           L3:
 0010                   .dbline 21
 0010 1801              movw R2,R16
 0012 0150              subi R16,1
 0014 1040              sbci R17,0
 0016 2220              tst R2
 0018 B1F7              brne L2
 001A 3320              tst R3
 001C A1F7              brne L2
 001E           X0:
 001E                   .dbline -2
 001E           L1:
 001E 0E940000          xcall pop_gset1
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbsym r b 20 c
 0024                   .dbsym r i 16 i
 0024                   .dbend
 0024                   .dbfunc e main _main fV
 0024           ;              i -> R20,R21
                        .even
 0024           _main::
 0024                   .dbline -1
 0024                   .dbline 28
 0024           ;               for (b = 1; b; b++) {
 0024           ;                       ;
 0024           ;                       }
 0024           ;               }
 0024           ; }
 0024           ; 
 0024           ; void main(void) {
 0024                   .dbline 32
 0024           ; 
 0024           ;       unsigned int i;
 0024           ; 
 0024           ;       DDRA = 0x00;                                            /*方向输入*/
 0024 2224              clr R2
 0026 2ABA              out 0x1a,R2
 0028                   .dbline 33
 0028           ;       PORTA = 0xFF;                                           /*打开上拉*/
 0028 8FEF              ldi R24,255
 002A 8BBB              out 0x1b,R24
 002C                   .dbline 34
 002C           ;       DDRB = 0xFF;                                            /*方向输出*/
 002C 87BB              out 0x17,R24
 002E                   .dbline 35
 002E           ;       PORTB = 0xF0;                                           /*电平设置*/
 002E 80EF              ldi R24,240
 0030 88BB              out 0x18,R24
 0032                   .dbline 36
 0032           ;       DDRC = 0x00;
 0032 24BA              out 0x14,R2
 0034                   .dbline 37
 0034           ;       PORTC = 0xFF;
 0034 8FEF              ldi R24,255
 0036 85BB              out 0x15,R24
 0038                   .dbline 38
 0038           ;       DDRD = 0x00;
 0038 21BA              out 0x11,R2
 003A                   .dbline 39
 003A           ;       PORTD = 0xFF;
 003A 82BB              out 0x12,R24
 003C                   .dbline 41
 003C           ; 
 003C           ;       delay_ms(200);
 003C 08EC              ldi R16,200
 003E 10E0              ldi R17,0
 0040 DFDF              xcall _delay_ms
 0042                   .dbline 42
 0042           ;       ds1820_reset();
 0042 0E940000          xcall _ds1820_reset
 0046                   .dbline 43
 0046           ;       led4_init();
 0046 0E940000          xcall _led4_init
 004A 3FC0              xjmp L11
 004C           L10:
 004C                   .dbline 44
 004C                   .dbline 45
 004C 0E940000          xcall _ds1820_start
 0050                   .dbline 46
 0050 00ED              ldi R16,2000
 0052 17E0              ldi R17,7
 0054 D5DF              xcall _delay_ms
 0056                   .dbline 47
 0056 0E940000          xcall _ds1820_read_temp
 005A A801              movw R20,R16
 005C                   .dbline 48
 005C 0AE0              ldi R16,10
 005E 10E0              ldi R17,0
 0060 9A01              movw R18,R20
 0062 0E940000          xcall empy16s
 0066 A801              movw R20,R16
 0068 5695              lsr R21
 006A 4795              ror R20
 006C 5695              lsr R21
 006E 4795              ror R20
 0070 5695              lsr R21
 0072 4795              ror R20
 0074 5695              lsr R21
 0076 4795              ror R20
 0078                   .dbline 49
 0078 28EE              ldi R18,1000
 007A 33E0              ldi R19,3
 007C 8A01              movw R16,R20
 007E 0E940000          xcall div16u
 0082 00930300          sts _led_buf+3,R16
 0086                   .dbline 50
 0086 28EE              ldi R18,1000
 0088 33E0              ldi R19,3
 008A 8A01              movw R16,R20
 008C 0E940000          xcall mod16u
 0090 A801              movw R20,R16
 0092                   .dbline 51
 0092 24E6              ldi R18,100
 0094 30E0              ldi R19,0
 0096 0E940000          xcall div16u
 009A 00930200          sts _led_buf+2,R16
 009E                   .dbline 52
 009E 24E6              ldi R18,100
 00A0 30E0              ldi R19,0
 00A2 8A01              movw R16,R20
 00A4 0E940000          xcall mod16u
 00A8 A801              movw R20,R16
 00AA                   .dbline 53
 00AA 2AE0              ldi R18,10
 00AC 30E0              ldi R19,0
 00AE 0E940000          xcall div16u
 00B2 00930100          sts _led_buf+1,R16
 00B6                   .dbline 54
 00B6 2AE0              ldi R18,10
 00B8 30E0              ldi R19,0
 00BA 8A01              movw R16,R20
 00BC 0E940000          xcall mod16u
 00C0 00930000          sts _led_buf,R16
 00C4                   .dbline 55
 00C4 81E0              ldi R24,1
 00C6 80930400          sts _led_buf+4,R24
 00CA                   .dbline 56
 00CA           L11:
 00CA                   .dbline 44
 00CA C0CF              xjmp L10
 00CC           X1:
 00CC                   .dbline -2
 00CC           L9:
 00CC                   .dbline 0 ; func end
 00CC 0895              ret
 00CE                   .dbsym r i 20 i
 00CE                   .dbend

⌨️ 快捷键说明

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