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

📄 tx.lst

📁 atmega128单片机上实现的nrf905无线收发程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
__text_start:
__start:
    004F EFCF      LDI	R28,0xFF
    0050 E1D0      LDI	R29,0x10
    0051 BFCD      OUT	0x3D,R28
    0052 BFDE      OUT	0x3E,R29
    0053 51C0      SUBI	R28,0x10
    0054 40D0      SBCI	R29,0
    0055 EA0A      LDI	R16,0xAA
    0056 8308      STD	Y+0,R16
    0057 2400      CLR	R0
    0058 E1E2      LDI	R30,0x12
    0059 E0F1      LDI	R31,1
    005A E015      LDI	R17,5
    005B 34E6      CPI	R30,0x46
    005C 07F1      CPC	R31,R17
    005D F011      BEQ	0x0060
    005E 9201      ST	R0,Z+
    005F CFFB      RJMP	0x005B
    0060 8300      STD	Z+0,R16
    0061 E8EC      LDI	R30,0x8C
    0062 E0F0      LDI	R31,0
    0063 E0A0      LDI	R26,0
    0064 E0B1      LDI	R27,1
    0065 E010      LDI	R17,0
    0066 39EE      CPI	R30,0x9E
    0067 07F1      CPC	R31,R17
    0068 F021      BEQ	0x006D
    0069 95C8      LPM
    006A 9631      ADIW	R30,1
    006B 920D      ST	R0,X+
    006C CFF9      RJMP	0x0066
    006D D076      RCALL	_main
    006E 0000      NOP
_exit:
    006F CFFF      RJMP	_exit
FILE: E:\心电监护系统\测试程序\第一阶段\无线测试\发送端\spi.c
(0001) /***************************************
(0002) *2008,浙江工业大学信息与控制研究所
(0003) *All rights reserved
(0004) *
(0005) *文件名称:spi.h
(0006) *摘    要:SPI口的相关函数实现
(0007) *
(0008) *当前版本:1.1
(0009) *作    者:王微
(0010) *完成日期:2008.4.22
(0011) ****************************************/
(0012) 
(0013) #include "spi.h"
(0014) 
(0015) /*************************************************
(0016) 函数功能:初始化SPI口
(0017) 输入参数:无
(0018) 输出参数:无
(0019) 返 回 值:无
(0020) **************************************************/
(0021) void init_spi(void)
(0022) { 
(0023)     unsigned char temp;
(0024) 	DDRB|=(1<<MOSI)|(1<<SCK)|(1<<TRX_CE);//设置MOSI、SCK和SS 为输出,其他为输入 
_init_spi:
  temp                 --> R16
    0070 B387      IN	R24,0x17
    0071 6087      ORI	R24,7
    0072 BB87      OUT	0x17,R24
(0025) 	DDRE|=(1<<CSN)|(1<<PWR_UP)|(1<<TX_EN);//设置端口E的1,2,3引脚为输出引脚
    0073 B182      IN	R24,0x02
    0074 608E      ORI	R24,0xE
    0075 B982      OUT	0x02,R24
(0026) 
(0027)     SPCR = (1<<SPE)|(1<<MSTR);// 使能SPI,主机模式,设置时钟速率为fck/4 
    0076 E580      LDI	R24,0x50
    0077 B98D      OUT	0x0D,R24
(0028) 	SPSR = BIT(SPI2X);
    0078 E081      LDI	R24,1
    0079 B98E      OUT	0x0E,R24
(0029) 
(0030)     temp = SPSR; //!!! 读一次SPSR为了清除SPIF位和WCOL位
    007A B10E      IN	R16,0x0E
(0031) 
(0032)     temp = SPDR; //清空SPI,和中断标志,使SPI空闲
    007B B10F      IN	R16,0x0F
    007C 9508      RET
_SpiWrite:
  temp                 --> R20
  data_spi             --> R16
    007D D16F      RCALL	push_gset1
    007E 0000      NOP
(0033) }
(0034) 
(0035) /**************************************************
(0036) 函数功能:写SPI一个字节
(0037) 输入参数:要写的数据
(0038) 输出参数:无
(0039) 返 回 值:对应指令的结果
(0040) **************************************************/
(0041) unsigned char SpiWrite(unsigned char data_spi)
(0042) { 
(0043)   unsigned temp;
(0044)   SPDR=data_spi;
    007F B90F      OUT	0x0F,R16
(0045)   while(!(SPSR & (1<<SPIF))){;}//等待传输结束
    0080 9B77      SBIS	0x0E,7
    0081 CFFE      RJMP	0x0080
(0046)   temp=SPDR;
    0082 B14F      IN	R20,0x0F
    0083 2755      CLR	R21
(0047)   return temp;
    0084 2F04      MOV	R16,R20
    0085 D16A      RCALL	pop_gset1
    0086 0000      NOP
    0087 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
    0088 2700      CLR	R16
    0089 C006      RJMP	0x0090
(0025)   {
(0026)     for (t=0;t<250;t++)
    008A 2722      CLR	R18
    008B C001      RJMP	0x008D
    008C 9523      INC	R18
    008D 3F2A      CPI	R18,0xFA
    008E F3E8      BCS	0x008C
    008F 9503      INC	R16
    0090 3005      CPI	R16,5
    0091 F3C0      BCS	0x008A
    0092 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
    0093 2700      CLR	R16
    0094 C006      RJMP	0x009B
(0044)   {
(0045)     for (t=0;t<150;t++)
    0095 2722      CLR	R18
    0096 C001      RJMP	0x0098
    0097 9523      INC	R18
    0098 3926      CPI	R18,0x96
    0099 F3E8      BCS	0x0097
    009A 9503      INC	R16
    009B 3001      CPI	R16,1
    009C F3C0      BCS	0x0095
    009D 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
    009E 2700      CLR	R16
    009F 2711      CLR	R17
    00A0 C002      RJMP	0x00A3
    00A1 5F0F      SUBI	R16,0xFF
    00A2 4F1F      SBCI	R17,0xFF
    00A3 3A0C      CPI	R16,0xAC
    00A4 E0ED      LDI	R30,0xD
    00A5 071E      CPC	R17,R30
    00A6 F3D0      BCS	0x00A1
    00A7 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
    00A8 2700      CLR	R16
    00A9 2711      CLR	R17
    00AA C00B      RJMP	0x00B6
(0077)   {
(0078)     for (i=0;i<3;i++)
    00AB 2722      CLR	R18
    00AC 2733      CLR	R19
    00AD C002      RJMP	0x00B0
    00AE 5F2F      SUBI	R18,0xFF
    00AF 4F3F      SBCI	R19,0xFF
    00B0 3023      CPI	R18,3
    00B1 E0E0      LDI	R30,0
    00B2 073E      CPC	R19,R30
    00B3 F3D0      BCS	0x00AE
    00B4 5F0F      SUBI	R16,0xFF
    00B5 4F1F      SBCI	R17,0xFF
    00B6 3A0C      CPI	R16,0xAC
    00B7 E0ED      LDI	R30,0xD
    00B8 071E      CPC	R17,R30
    00B9 F388      BCS	0x00AB
    00BA 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
    00BB 2700      CLR	R16
    00BC C001      RJMP	0x00BE
    00BD 9503      INC	R16
    00BE 3F0A      CPI	R16,0xFA
    00BF F3E8      BCS	0x00BD
    00C0 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
    00C1 2700      CLR	R16
    00C2 C001      RJMP	0x00C4
    00C3 9503      INC	R16
    00C4 3109      CPI	R16,0x19
    00C5 F3E8      BCS	0x00C3
    00C6 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:
    00C7 B38A      IN	R24,0x1A
    00C8 6083      ORI	R24,3
    00C9 BB8A      OUT	0x1A,R24
(0124)   LED_OFF;
    00CA 98D8      CBI	0x1B,0
    00CB 98D9      CBI	0x1B,1
    00CC 9508      RET
(0125) }
(0126) 
(0127) /*
(0128) *函数功能:蜂鸣器初始化程序
(0129) *输入参数:无
(0130) *输出参数:无
(0131) *返 回 值:无
(0132) */
(0133) void initbuzzer(void)
(0134) {
(0135) 
(0136)  DDRA|=(1<<DDA6);// 设置A6口为输出口(蜂鸣器的连接口)
_initbuzzer:
    00CD 9AD6      SBI	0x1A,6
(0137)  BUZZER_OFF;//关蜂鸣器
    00CE 98DE      CBI	0x1B,6
    00CF 9508      RET
FILE: E:\心电监护系统\测试程序\第一阶段\无线测试\发送端\INT.c
(0001) /***************************************
(0002) *2008,浙江工业大学信息与控制研究所
(0003) *All rights reserved
(0004) *
(0005) *文件名称:INT.c
(0006) *摘    要:外部中断的初始化实现
(0007) *

⌨️ 快捷键说明

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