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

📄 system.s

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 S
字号:
	.module System.c
	.area text(rom, con, rel)
	.dbfile D:\实例17_I2C抢答器_从机程序\System.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 64
; /*********************************************************/
; /*                                                       */
; /*             实例17 I2C抢答器 从机程序                 */
; /*                                                       */
; /*                 程序设计 江海波                       */
; /*                                                       */
; /*        编写时间 : 2007-8      版本 : V1.0             */
; /*                                                       */
; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
; /*                                                       */
; /*           E-mail : soundman@sohu.com                  */
; /*-------------------------------------------------------*/
; /* 硬件环境:                                             */
; /*                                                       */
; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
; /* ------------------------------------------------------*/
; /* 软件环境:                                             */
; /*                                                       */
; /*     ICCAVR 6.31A                                      */
; /* ------------------------------------------------------*/
; /* 最后修改时间:                                         */
; /*                                                       */
; /*-------------------------------------------------------*/
; /* 历史版本纪录:                                         */
; /*                                                       */
; /*********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; # include "PF_Config.h"
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   模块函数声明区  *
; ********************/
; 
; /********************
; *   模块变量声明区  *
; ********************/
; 
; /***********************************************************
; *   函数说明:主函数                                       *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:System_INIT()                                *
; ***********************************************************/
; void main(void)
; {
	.dbline 65
;     System_INIT();                                          //代码初始化
	rcall _System_INIT
	.dbline 67
;     
;     Time[0] = 0xB0;
	ldi R24,176
	sts _Time,R24
	rjmp L3
L2:
	.dbline 70
; 
;     while(1)
;     {
	.dbline 71
;         if(TCCR1B != 0)
	lds R2,129
	tst R2
	breq L5
	.dbline 72
;         {
	.dbline 73
;             if((PINB&0x01) == 0x00)
	sbic 0x3,0
	rjmp L7
	.dbline 74
;             {
	.dbline 75
;                 TIMERSTOP;
	clr R2
	sts 129,R2
	.dbline 76
;                 Time[0] = TCNT1H;
	lds R2,133
	sts _Time,R2
	.dbline 77
;                 Time[1] = TCNT1L;
	lds R2,132
	sts _Time+1,R2
	.dbline 78
;                 TWCR |= (1<<TWSTA);                 //启动总线
	lds R24,188
	ori R24,32
	sts 188,R24
	.dbline 79
;                 TWIProcess = TWIInProcess;
	clr R2
	sts _TWIProcess,R2
	rjmp L11
L10:
	.dbline 81
;                 while(TWIProcess != TWIProcessOver)
;                 {
	.dbline 82
;                     if (TWIProcess == TWIPrecessHan)
	lds R24,_TWIProcess
	cpi R24,49
	brne L13
	.dbline 83
;                         TWCR |= (1<<TWSTA);         //再次尝试竞争总线
	lds R24,188
	ori R24,32
	sts 188,R24
L13:
	.dbline 84
;                     if (TWIProcess == TWIProcessERR)
	lds R24,_TWIProcess
	cpi R24,33
	brne L15
	.dbline 85
;                         continue;
L15:
	.dbline 86
L11:
	.dbline 80
	lds R24,_TWIProcess
	cpi R24,1
	brne L10
	.dbline 87
;                 }
;             }
L7:
	.dbline 88
;         }
L5:
	.dbline 89
L3:
	.dbline 69
	rjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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