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

📄 rx.lst

📁 atmega128单片机上实现的nrf905无线收发程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
__text_start:
__start:
    004E EFCF      LDI	R28,0xFF
    004F E1D0      LDI	R29,0x10
    0050 BFCD      OUT	0x3D,R28
    0051 BFDE      OUT	0x3E,R29
    0052 51C0      SUBI	R28,0x10
    0053 40D0      SBCI	R29,0
    0054 EA0A      LDI	R16,0xAA
    0055 8308      STD	Y+0,R16
    0056 2400      CLR	R0
    0057 E1E0      LDI	R30,0x10
    0058 E0F1      LDI	R31,1
    0059 E011      LDI	R17,1
    005A 34E4      CPI	R30,0x44
    005B 07F1      CPC	R31,R17
    005C F011      BEQ	0x005F
    005D 9201      ST	R0,Z+
    005E CFFB      RJMP	0x005A
    005F 8300      STD	Z+0,R16
    0060 E8EC      LDI	R30,0x8C
    0061 E0F0      LDI	R31,0
    0062 E0A0      LDI	R26,0
    0063 E0B1      LDI	R27,1
    0064 E010      LDI	R17,0
    0065 39EC      CPI	R30,0x9C
    0066 07F1      CPC	R31,R17
    0067 F021      BEQ	0x006C
    0068 95C8      LPM
    0069 9631      ADIW	R30,1
    006A 920D      ST	R0,X+
    006B CFF9      RJMP	0x0065
    006C D077      RCALL	_main
    006D 0000      NOP
_exit:
    006E CFFF      RJMP	_exit
FILE: E:\心电监护系统\测试程序\第一阶段\无线测试\接收端\SPI.c
(0001) /***************************************
(0002) *2008,浙江工业大学信息与控制研究所
(0003) *All rights reserved
(0004) *
(0005) *文件名称:SPI.c
(0006) *摘    要:SPI的子程序实现
(0007) *
(0008) *当前版本:1.1
(0009) *作    者:王微
(0010) *完成日期:2008.4.22
(0011) ****************************************/
(0012) #include<iom128v.h>
(0013) #include<macros.h>
(0014) #include"nrf.h"
(0015) #include"spi.h"
(0016) 
(0017) /*************************************************
(0018) 函数功能:初始化SPI口
(0019) 输入参数:无
(0020) 返回值:无
(0021) **************************************************/
(0022) void init_spi()
(0023) { 
(0024)     unsigned char temp;
(0025) 	DDRB|=(1<<MOSI)|(1<<SCK)|(1<<TRX_CE);//设置MOSI、SCK和SS 为输出,其他为输入 
_init_spi:
  temp                 --> R16
    006F B387      IN	R24,0x17
    0070 6087      ORI	R24,7
    0071 BB87      OUT	0x17,R24
(0026) 	DDRE|=(1<<CSN)|(1<<PWR_UP)|(1<<TX_EN);//设置端口E的1,2,3引脚为输出引脚
    0072 B182      IN	R24,0x02
    0073 608E      ORI	R24,0xE
    0074 B982      OUT	0x02,R24
(0027) 
(0028)     SPCR = (1<<SPE)|(1<<MSTR);//|(1<<SPR0);// 使能SPI,主机模式,设置时钟速率为fck/4
    0075 E580      LDI	R24,0x50
    0076 B98D      OUT	0x0D,R24
(0029) 	SPSR = BIT(SPI2X);     //SPI时钟加倍
    0077 E081      LDI	R24,1
    0078 B98E      OUT	0x0E,R24
(0030) 
(0031)     temp = SPSR; //!!! 读一次SPSR为了清除SPIF位和WCOL位
    0079 B10E      IN	R16,0x0E
(0032) 
(0033)     temp = SPDR; //清空SPI,和中断标志,使SPI空闲
    007A B10F      IN	R16,0x0F
    007B 9508      RET
_SpiWrite:
  temp                 --> R20
  data_spi             --> R16
    007C D179      RCALL	push_gset1
    007D 0000      NOP
(0034) }
(0035) 
(0036) /**************************************************
(0037) 函数功能:写SPI一个字节
(0038) 输入参数:SPI指令
(0039) 返回值:对应指令的结果
(0040) **************************************************/
(0041) unsigned char SpiWrite(unsigned char data_spi)
(0042) { 
(0043)   unsigned temp;
(0044)   SPDR=data_spi;
    007E B90F      OUT	0x0F,R16
(0045)   while(!(SPSR & (1<<SPIF))){;}//等待传输结束
    007F 9B77      SBIS	0x0E,7
    0080 CFFE      RJMP	0x007F
(0046)   temp=SPDR;
    0081 B14F      IN	R20,0x0F
    0082 2755      CLR	R21
(0047)   return temp;
    0083 2F04      MOV	R16,R20
    0084 D174      RCALL	pop_gset1
    0085 0000      NOP
    0086 9508      RET
FILE: E:\心电监护系统\测试程序\第一阶段\无线测试\接收端\common.c
(0001) /***************************************
(0002) *2008,浙江工业大学信息与控制研究所
(0003) *All rights reserved
(0004) *
(0005) *文件名称:common.c
(0006) *摘    要:公共函数和变量的定义 
(0007) *
(0008) *当前版本:1.1
(0009) *作    者:董齐芬
(0010) *完成日期:2008.5.17
(0011) ****************************************/
(0012) 
(0013) #include "common.h"
(0014) 
(0015) /**************************************************
(0016) 函数功能:延时650us
(0017) 输入参数:无
(0018) 输出参数:无
(0019) 返 回 值:无
(0020) **************************************************/
(0021) void Delay650us(void)
(0022) {
(0023)   unsigned char i,t;
(0024)   for (i=0;i<5;i++)
_Delay650us:
  i                    --> R16
  t                    --> R18
    0087 2700      CLR	R16
    0088 C006      RJMP	0x008F
(0025)   {
(0026)     for (t=0;t<250;t++)
    0089 2722      CLR	R18
    008A C001      RJMP	0x008C
    008B 9523      INC	R18
    008C 3F2A      CPI	R18,0xFA
    008D F3E8      BCS	0x008B
    008E 9503      INC	R16
    008F 3005      CPI	R16,5
    0090 F3C0      BCS	0x0089
    0091 9508      RET
(0027)     {
(0028)       ;
(0029)     }
(0030)   }
(0031) }
(0032) 
(0033) 
(0034) /**************************************************
(0035) 函数功能:延时300us
(0036) 输入参数:无
(0037) 输出参数:无
(0038) 返 回 值:无
(0039) **************************************************/
(0040) void Delay300us(void)
(0041) {
(0042)   unsigned char i,t;
(0043)   for (i=0;i<1;i++)
_Delay300us:
  i                    --> R16
  t                    --> R18
    0092 2700      CLR	R16
    0093 C006      RJMP	0x009A
(0044)   {
(0045)     for (t=0;t<150;t++)
    0094 2722      CLR	R18
    0095 C001      RJMP	0x0097
    0096 9523      INC	R18
    0097 3926      CPI	R18,0x96
    0098 F3E8      BCS	0x0096
    0099 9503      INC	R16
    009A 3001      CPI	R16,1
    009B F3C0      BCS	0x0094
    009C 9508      RET
(0046)     {
(0047)       ;
(0048)     }
(0049)   }
(0050) }
(0051) 
(0052) /**************************************************
(0053) 函数功能:延时3ms
(0054) 输入参数:无
(0055) 输出参数:无
(0056) 返 回 值: 无
(0057) **************************************************/
(0058) void Delay3ms(void)
(0059) {
(0060)   unsigned int t;
(0061)   for (t=0;t<3500;t++)
_Delay3ms:
  t                    --> R16
    009D 2700      CLR	R16
    009E 2711      CLR	R17
    009F C002      RJMP	0x00A2
    00A0 5F0F      SUBI	R16,0xFF
    00A1 4F1F      SBCI	R17,0xFF
    00A2 3A0C      CPI	R16,0xAC
    00A3 E0ED      LDI	R30,0xD
    00A4 071E      CPC	R17,R30
    00A5 F3D0      BCS	0x00A0
    00A6 9508      RET
(0062)   {
(0063)     ;
(0064)   }
(0065) }
(0066) 
(0067) /**************************************************
(0068) 函数功能:延时一段时间,该延时主要用于测试
(0069) 输入参数:无
(0070) 输出参数:无
(0071) 返 回 值: 无
(0072) **************************************************/
(0073) void Delays(void)
(0074) {
(0075)   unsigned int t,i;
(0076)   for (t=0;t<3500;t++)
_Delays:
  t                    --> R16
  i                    --> R18
    00A7 2700      CLR	R16
    00A8 2711      CLR	R17
    00A9 C00B      RJMP	0x00B5
(0077)   {
(0078)     for (i=0;i<3;i++)
    00AA 2722      CLR	R18
    00AB 2733      CLR	R19
    00AC C002      RJMP	0x00AF
    00AD 5F2F      SUBI	R18,0xFF
    00AE 4F3F      SBCI	R19,0xFF
    00AF 3023      CPI	R18,3
    00B0 E0E0      LDI	R30,0
    00B1 073E      CPC	R19,R30
    00B2 F3D0      BCS	0x00AD
    00B3 5F0F      SUBI	R16,0xFF
    00B4 4F1F      SBCI	R17,0xFF
    00B5 3A0C      CPI	R16,0xAC
    00B6 E0ED      LDI	R30,0xD
    00B7 071E      CPC	R17,R30
    00B8 F388      BCS	0x00AA
    00B9 9508      RET
(0079) 	{;}
(0080)   }
(0081) }
(0082) 
(0083) /**************************************************
(0084) 函数功能:延时100us
(0085) 输入参数:无
(0086) 输出参数:无
(0087) 返 回 值:无
(0088) **************************************************/
(0089) void Delay100us(void)
(0090) {
(0091)   unsigned char t;
(0092)   for (t=0;t<250;t++)
_Delay100us:
  t                    --> R16
    00BA 2700      CLR	R16
    00BB C001      RJMP	0x00BD
    00BC 9503      INC	R16
    00BD 3F0A      CPI	R16,0xFA
    00BE F3E8      BCS	0x00BC
    00BF 9508      RET
(0093)   {
(0094)       ;
(0095)   }
(0096)   
(0097) }
(0098) 
(0099) /*
(0100) *函数功能:延时40ns,用于数字电位器的模拟SPI口
(0101) *输入参数:无
(0102) *输出参数:无
(0103) *返 回 值:无
(0104) */
(0105) void Delay40ns(void)
(0106) {
(0107)   unsigned char t;
(0108)   
(0109)   for (t=0;t<25;t++)
_Delay40ns:
  t                    --> R16
    00C0 2700      CLR	R16
    00C1 C001      RJMP	0x00C3
    00C2 9503      INC	R16
    00C3 3109      CPI	R16,0x19
    00C4 F3E8      BCS	0x00C2
    00C5 9508      RET
(0110)   {
(0111)     ;
(0112)   }
(0113) }
(0114) 
(0115) /*
(0116) *函数功能:led端口初始化程序
(0117) *输入参数:无
(0118) *输出参数:无
(0119) *返 回 值:无
(0120) */
(0121) void initled(void)
(0122) {
(0123)   DDRA|=((1<<DDA1)|(1<<DDA0));//设置A口的输出引脚
_initled:
    00C6 B38A      IN	R24,0x1A
    00C7 6083      ORI	R24,3
    00C8 BB8A      OUT	0x1A,R24
(0124)   LED_OFF;
    00C9 98D8      CBI	0x1B,0
    00CA 98D9      CBI	0x1B,1
    00CB 9508      RET
(0125) }
(0126) 
(0127) /*
(0128) *函数功能:蜂鸣器初始化程序
(0129) *输入参数:无
(0130) *输出参数:无
(0131) *返 回 值:无
(0132) */
(0133) void initbuzzer(void)
(0134) {
(0135) 
(0136)  DDRA|=(1<<DDA6);// 设置A6口为输出口(蜂鸣器的连接口)
_initbuzzer:
    00CC 9AD6      SBI	0x1A,6
(0137)  BUZZER_OFF;//关蜂鸣器
    00CD 98DE      CBI	0x1B,6
    00CE 9508      RET
FILE: E:\心电监护系统\测试程序\第一阶段\无线测试\接收端\INT.c
(0001) /***************************************
(0002) *2008,浙江工业大学信息与控制研究所
(0003) *All rights reserved
(0004) *
(0005) *文件名称:INT.c

⌨️ 快捷键说明

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