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

📄 system.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module System.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\实例17_I2C抢答器_主机程序\System.c
 0000                   .dbfunc e winner _winner fV
 0000           ;              b -> R16,R17
 0000           ;              a -> R18,R19
                        .even
 0000           _winner::
 0000                   .dbline -1
 0000                   .dbline 64
 0000           ; /*********************************************************/
 0000           ; /*                                                       */
 0000           ; /*             实例17 I2C抢答器 主机程序                 */
 0000           ; /*                                                       */
 0000           ; /*                 程序设计 江海波                       */
 0000           ; /*                                                       */
 0000           ; /*        编写时间 : 2007-8      版本 : V1.0             */
 0000           ; /*                                                       */
 0000           ; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
 0000           ; /*                                                       */
 0000           ; /*           E-mail : soundman@sohu.com                  */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 硬件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 软件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     ICCAVR 6.31A                                      */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 最后修改时间:                                         */
 0000           ; /*                                                       */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 历史版本纪录:                                         */
 0000           ; /*                                                       */
 0000           ; /*********************************************************/
 0000           ; 
 0000           ; /********************
 0000           ; * 头 文 件 配 置 区 *
 0000           ; ********************/
 0000           ; # include "PF_Config.h"
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:胜出者判决函数                               *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:无                                           *
 0000           ; ***********************************************************/
 0000           ; void winner (void)
 0000           ; {
 0000                   .dbline 66
 0000           ;     unsigned int a,b;
 0000           ;     a = ((((unsigned int)RecArr[1])<<4)|((unsigned int)RecArr[2]));
 0000 20900200          lds R2,_RecArr+2
 0004 3324              clr R3
 0006 20910100          lds R18,_RecArr+1
 000A 3327              clr R19
 000C 220F              lsl R18
 000E 331F              rol R19
 0010 220F              lsl R18
 0012 331F              rol R19
 0014 220F              lsl R18
 0016 331F              rol R19
 0018 220F              lsl R18
 001A 331F              rol R19
 001C 2229              or R18,R2
 001E 3329              or R19,R3
 0020                   .dbline 67
 0020           ;     b = ((((unsigned int)RecArr[4])<<4)|((unsigned int)RecArr[5]));
 0020 20900500          lds R2,_RecArr+5
 0024 3324              clr R3
 0026 00910400          lds R16,_RecArr+4
 002A 1127              clr R17
 002C 000F              lsl R16
 002E 111F              rol R17
 0030 000F              lsl R16
 0032 111F              rol R17
 0034 000F              lsl R16
 0036 111F              rol R17
 0038 000F              lsl R16
 003A 111F              rol R17
 003C 0229              or R16,R2
 003E 1329              or R17,R3
 0040                   .dbline 68
 0040           ;     if (a<b)
 0040 2017              cp R18,R16
 0042 3107              cpc R19,R17
 0044 20F5              brsh L6
 0046                   .dbline 69
 0046           ;     {
 0046                   .dbline 70
 0046           ;         LEDDisBuffer[7] = (RecArr[0]>>4);
 0046 80910000          lds R24,_RecArr
 004A 8295              swap R24
 004C 8F70              andi R24,#0x0F
 004E 80930700          sts _LEDDisBuffer+7,R24
 0052                   .dbline 71
 0052           ;         LEDDisBuffer[6] = SPACE;
 0052 87E1              ldi R24,23
 0054 80930600          sts _LEDDisBuffer+6,R24
 0058                   .dbline 72
 0058           ;         LEDDisBuffer[5] = SPACE;
 0058 80930500          sts _LEDDisBuffer+5,R24
 005C                   .dbline 73
 005C           ;         LEDDisBuffer[4] = SPACE;
 005C 80930400          sts _LEDDisBuffer+4,R24
 0060                   .dbline 74
 0060           ;         LEDDisBuffer[3] = (RecArr[1]>>4);
 0060 80910100          lds R24,_RecArr+1
 0064 8295              swap R24
 0066 8F70              andi R24,#0x0F
 0068 80930300          sts _LEDDisBuffer+3,R24
 006C                   .dbline 75
 006C           ;         LEDDisBuffer[2] = (RecArr[1]&0x0F);
 006C 80910100          lds R24,_RecArr+1
 0070 8F70              andi R24,15
 0072 80930200          sts _LEDDisBuffer+2,R24
 0076                   .dbline 76
 0076           ;         LEDDisBuffer[1] = (RecArr[2]>>4);
 0076 80910200          lds R24,_RecArr+2
 007A 8295              swap R24
 007C 8F70              andi R24,#0x0F
 007E 80930100          sts _LEDDisBuffer+1,R24
 0082                   .dbline 77
 0082           ;         LEDDisBuffer[0] = (RecArr[2]&0x0F);
 0082 80910200          lds R24,_RecArr+2
 0086 8F70              andi R24,15
 0088 80930000          sts _LEDDisBuffer,R24
 008C                   .dbline 78
 008C           ;     }
 008C 23C0              rjmp L7
 008E           L6:
 008E                   .dbline 80
 008E                   .dbline 81
 008E 80910300          lds R24,_RecArr+3
 0092 8295              swap R24
 0094 8F70              andi R24,#0x0F
 0096 80930700          sts _LEDDisBuffer+7,R24
 009A                   .dbline 82
 009A 87E1              ldi R24,23
 009C 80930600          sts _LEDDisBuffer+6,R24
 00A0                   .dbline 83
 00A0 80930500          sts _LEDDisBuffer+5,R24
 00A4                   .dbline 84
 00A4 80930400          sts _LEDDisBuffer+4,R24
 00A8                   .dbline 85
 00A8 80910400          lds R24,_RecArr+4
 00AC 8295              swap R24
 00AE 8F70              andi R24,#0x0F
 00B0 80930300          sts _LEDDisBuffer+3,R24
 00B4                   .dbline 86
 00B4 80910400          lds R24,_RecArr+4
 00B8 8F70              andi R24,15
 00BA 80930200          sts _LEDDisBuffer+2,R24
 00BE                   .dbline 87
 00BE 80910500          lds R24,_RecArr+5
 00C2 8295              swap R24
 00C4 8F70              andi R24,#0x0F
 00C6 80930100          sts _LEDDisBuffer+1,R24
 00CA                   .dbline 88
 00CA 80910500          lds R24,_RecArr+5
 00CE 8F70              andi R24,15
 00D0 80930000          sts _LEDDisBuffer,R24

⌨️ 快捷键说明

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