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

📄 avrstudy.lis

📁 AVR学习开发 板
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module AVRSTUDY.C
                        .area data(ram, con, rel)
 0000           _AC_TABLE::
 0000                   .blkb 2
                        .area idata
 0000 8081              .byte 128,129
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 8283              .byte 130,131
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 8485              .byte 132,133
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 8687              .byte 134,135
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 9091              .byte 144,145
                        .area data(ram, con, rel)
 000A                   .blkb 2
                        .area idata
 000A 9293              .byte 146,147
                        .area data(ram, con, rel)
 000C                   .blkb 2
                        .area idata
 000C 9495              .byte 148,149
                        .area data(ram, con, rel)
 000E                   .blkb 2
                        .area idata
 000E 9697              .byte 150,151
                        .area data(ram, con, rel)
 0010                   .blkb 2
                        .area idata
 0010 8889              .byte 136,137
                        .area data(ram, con, rel)
 0012                   .blkb 2
                        .area idata
 0012 8A8B              .byte 138,139
                        .area data(ram, con, rel)
 0014                   .blkb 2
                        .area idata
 0014 8C8D              .byte 140,141
                        .area data(ram, con, rel)
 0016                   .blkb 2
                        .area idata
 0016 8E8F              .byte 142,143
                        .area data(ram, con, rel)
 0018                   .blkb 2
                        .area idata
 0018 9899              .byte 152,153
                        .area data(ram, con, rel)
 001A                   .blkb 2
                        .area idata
 001A 9A9B              .byte 154,155
                        .area data(ram, con, rel)
 001C                   .blkb 2
                        .area idata
 001C 9C9D              .byte 156,157
                        .area data(ram, con, rel)
 001E                   .blkb 2
                        .area idata
 001E 9E9F              .byte 158,159
                        .area data(ram, con, rel)
 0020                   .dbfile E:\AVR学习专区\AVR学习板/st7920iccavrmega8.c
 0020                   .dbsym e AC_TABLE _AC_TABLE A[32:32]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\AVR学习专区\AVR学习板/st7920iccavrmega8.c
 0000                   .dbfunc e SendByte _SendByte fV
 0000           ;              i -> R20
 0000           ;          Dbyte -> R16
                        .even
 0000           _SendByte::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 34
 0002           ; #include <iom8v.h>
 0002           ; #include <macros.h>
 0002           ; #include <stdio.h>
 0002           ; #include "st7920iccavrmega8.c"
 0002           ; #include "ds1302.c"
 0002           ; #include "delay.h"
 0002           ; #include "mega8_spi.c"
 0002           ; #include "24cxx12864.c"
 0002           ; #include "ad.c"
 0002           ; #include "stepmotor.c"
 0002           ; #include "串口测试.c"
 0002           ; 
 0002           ; #pragma interrupt_handler Int0:2      //外部中断0中断函数声明                   
 0002           ; #pragma interrupt_handler Int1:3      //外部中断1中断函数声明                   
 0002           ; unsigned char  str1[]="AVR 单片机开发板";
 0002           ; unsigned char  str2[]="设计制作:张国旗";
 0002           ; unsigned char  str3[]="→SPI 功能测试  2.I2C 功能测试  3.AD功能测试    4.步进电机测试  ";
 0002           ; unsigned char  str4[]="1.SPI 功能测试  →I2C 功能测试  3.AD功能测试    4.步进电机测试  ";
 0002           ; unsigned char  str5[]="1.SPI 功能测试  2.I2C 功能测试  →AD功能测试    4.步进电机测试  ";
 0002           ; unsigned char  str6[]="1.SPI 功能测试  2.I2C 功能测试  3.AD功能测试    →步进电机测试  ";
 0002           ; unsigned char  str7[]="2.I2C 功能测试  3.AD功能测试    4.步进电机测试  →串口通讯测试  ";
 0002           ; unsigned char  str8[]="3.AD功能测试    4.步进电机测试  5.串口通讯测试  →44键盘功能测试";
 0002           ; unsigned char  str9[]="4.步进电机测试  5.串口通讯测试  6.44键盘功能测试→返回          ";
 0002           ; unsigned char  str10[]="SPI 功能实验中…";
 0002           ; unsigned char  str11[]="步进电机实验中…";
 0002           ; unsigned char  str12[]="  串口实验中…  ";
 0002           ; unsigned char  str13[]="  44键盘使用中…";
 0002           ; 
 0002           ; 
 0002           ; uchar exit1=0,exit2=0,number1=1,enter1=0;
 0002           ; //unsigned char  bmp1[];//先声明一下就可以把表放在函数后面啦,呵呵
 0002           ; //=========================
 0002           ; //    毫秒延时函数8M晶振
 0002           ; //=========================
 0002                   .dbline 36
 0002           ; void delay(uint ms)
 0002           ; {
 0002 4427              clr R20
 0004 09C0              rjmp L5
 0006           L2:
 0006                   .dbline 37
 0006           ;     uint i,j;
 0006                   .dbline 38
 0006           ;       for(i=0;i<ms;i++)
 0006 07FF              sbrs R16,7
 0008 02C0              rjmp L6
 000A                   .dbline 38
 000A C69A              sbi 0x18,6
 000C 01C0              rjmp L7
 000E           L6:
 000E                   .dbline 39
 000E           ;       {
 000E C698              cbi 0x18,6
 0010           L7:
 0010                   .dbline 40
 0010 C79A              sbi 0x18,7
 0012                   .dbline 41
 0012 C798              cbi 0x18,7
 0014                   .dbline 42
 0014 000F              lsl R16
 0016                   .dbline 43
 0016           L3:
 0016                   .dbline 36
 0016 4395              inc R20
 0018           L5:
 0018                   .dbline 36
 0018 4830              cpi R20,8
 001A A8F3              brlo L2
 001C                   .dbline -2
 001C           L1:
 001C 00D0              rcall pop_gset1
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbsym r i 20 c
 0020                   .dbsym r Dbyte 16 c
 0020                   .dbend
 0020                   .dbfunc e ReceiveByte _ReceiveByte fc
 0020           ;          temp2 -> R16
 0020           ;          temp1 -> R18
 0020           ;              i -> R20
                        .even
 0020           _ReceiveByte::
 0020 00D0              rcall push_gset1
 0022                   .dbline -1
 0022                   .dbline 47
 0022           ;           for(j=0;j<1141;j++)
 0022           ;               {if(exit1==1){j=1141;i=ms;}}
 0022           ;     }
 0022           ; }
 0022           ; 
 0022           ; void Int0(void)
 0022           ; {
 0022           ;     SREG&=0x7F;//打开全局中断
 0022                   .dbline 49
 0022           ;       delay(100);     
 0022           ;       exit1=1;
 0022 0027              clr R16
 0024 2227              clr R18
 0026                   .dbline 50
 0026           ;       enter1=1;
 0026 4427              clr R20
 0028 0BC0              rjmp L12
 002A           L9:
 002A                   .dbline 51
 002A           ;       SREG|=0x80;//打开全局中断
 002A                   .dbline 52
 002A           ;       
 002A BE98              cbi 0x17,6
 002C                   .dbline 52
 002C                   .dbline 53
 002C           ; }
 002C 220F              lsl R18
 002E                   .dbline 54
 002E           ; void Int1(void)
 002E B69B              sbis 0x16,6
 0030 01C0              rjmp L13
 0032                   .dbline 54
 0032 2395              inc R18
 0034           L13:
 0034                   .dbline 55
 0034 87B3              in R24,0x17
 0036 826C              ori R24,194
 0038 87BB              out 0x17,R24
 003A                   .dbline 55
 003A                   .dbline 56
 003A C79A              sbi 0x18,7
 003C                   .dbline 57
 003C C798              cbi 0x18,7
 003E                   .dbline 58
 003E           L10:
 003E                   .dbline 50
 003E 4395              inc R20
 0040           L12:
 0040                   .dbline 50
 0040 4830              cpi R20,8
 0042 98F3              brlo L9
 0044                   .dbline 59
 0044           ; {
 0044           ;     SREG&=0x7F;//打开全局中断
 0044           ;       delay(100); 
 0044           ;       
 0044           ;           if(number1<7){number1++;}
 0044 4427              clr R20
 0046 0BC0              rjmp L18
 0048           L15:
 0048                   .dbline 60
 0048           ;               else{number1=1;}
 0048                   .dbline 61
 0048           ;       
 0048 BE98              cbi 0x17,6
 004A                   .dbline 61
 004A                   .dbline 62
 004A           ;       SREG|=0x80;//打开全局中断
 004A 000F              lsl R16
 004C                   .dbline 63
 004C           ;       
 004C B69B              sbis 0x16,6
 004E 01C0              rjmp L19
 0050                   .dbline 63
 0050 0395              inc R16
 0052           L19:
 0052                   .dbline 64
 0052 87B3              in R24,0x17
 0054 826C              ori R24,194
 0056 87BB              out 0x17,R24
 0058                   .dbline 64
 0058                   .dbline 65
 0058 C79A              sbi 0x18,7
 005A                   .dbline 66
 005A C798              cbi 0x18,7
 005C                   .dbline 67
 005C           L16:
 005C                   .dbline 59
 005C 4395              inc R20
 005E           L18:
 005E                   .dbline 59
 005E 4830              cpi R20,8
 0060 98F3              brlo L15
 0062                   .dbline 68
 0062           ; }
 0062           ; void Init_int()
 0062           ; {       
 0062           ; 
 0062           ;     MCUCR =0x00;       //设置INT0、INT1为下降沿触发中断
 0062 802F              mov R24,R16
 0064 8F70              andi R24,15
 0066 022F              mov R16,R18
 0068 007F              andi R16,240
 006A 080F              add R16,R24
 006C                   .dbline -2
 006C           L8:
 006C 00D0              rcall pop_gset1
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbsym r temp2 16 c
 0070                   .dbsym r temp1 18 c
 0070                   .dbsym r i 20 c
 0070                   .dbend
 0070                   .dbfunc e CheckBusy _CheckBusy fV
                        .even
 0070           _CheckBusy::
 0070                   .dbline -1
 0070                   .dbline 72
 0070           ;       DDRD&=~BIT(PD2); //配置中断管脚为输入
 0070           ;       PORTD|=BIT(PD2); //使能中断管脚的上拉
 0070           ;       DDRD&=~BIT(PD2); //配置键盘数据输入口为输入
 0070           ;       DDRD&=~BIT(PD3); //配置键盘数据输入口为输入
 0070           L22:
 0070                   .dbline 73
 0070           ;       PORTD|=BIT(PD2)|BIT(PD3); //使能数据输入管脚的上拉
 0070 0CEF              ldi R16,252
 0072 C6DF              rcall _SendByte
 0074           L23:
 0074                   .dbline 74
 0074           ;       SREG|=0x80;//打开全局中断
 0074 D5DF              rcall _ReceiveByte
 0076 07FD              sbrc R16,7
 0078 FBCF              rjmp L22
 007A                   .dbline -2
 007A           L21:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e WriteCommand _WriteCommand fV
 007C           ;          Cbyte -> R20
                        .even
 007C           _WriteCommand::
 007C 00D0              rcall push_gset1
 007E 402F              mov R20,R16
 0080                   .dbline -1
 0080                   .dbline 78
 0080           ;       GICR|=BIT(INT0)|BIT(INT1);//中断使能
 0080           ; 
 0080           ; }
 0080           ; void main( void )
 0080                   .dbline 79
 0080           ; {
 0080 F7DF              rcall _CheckBusy
 0082                   .dbline 80
 0082           ;       uchar settime[7]={0x50,0x08,0x17,0x12,0x02,0x04,0x09};//设置的秒,分,时,日,月,星期,年
 0082 08EF              ldi R16,248
 0084 BDDF              rcall _SendByte
 0086                   .dbline 81
 0086           ;     uchar gettime[7]={0x01,0x01,0x01,0x01,0x01,0x01,0x01};//保存当前时间的数组
 0086 042F              mov R16,R20
 0088 007F              andi R16,240
 008A BADF              rcall _SendByte
 008C                   .dbline 82
 008C           ;       uint i,data=0;
 008C 042F              mov R16,R20
 008E 0F70              andi R16,#0x0F
 0090 0295              swap R16
 0092 007F              andi R16,240
 0094 B5DF              rcall _SendByte
 0096                   .dbline -2
 0096           L25:
 0096 00D0              rcall pop_gset1
 0098                   .dbline 0 ; func end
 0098 0895              ret

⌨️ 快捷键说明

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