📄 system.lis
字号:
.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 + -