当前位置:文档之家› 答案 单片机 作业

答案 单片机 作业

作业一答案
1、简述CC2530的存储空间是如何映射的?
答:
CC2530物理存储器的两种主要存储介质:SRAM、FLASH
虚拟存储空间的种类及地址范围如下:
①CODE:0X0----0XFFFF;64KB
②DATA:0X00----0XFF;256字节
③XDATA:0X0----0XFFFF; 64KB
④SFR:0X80---0XFF;128字节
2、到目前为止,请谈谈CC2530上的c语言程序设计和PC机windows上的c语言程序设计有何异同?
答:(可以自由发挥)
相同点:基本语法相同
不同点:CC2530上需要调用特有的头文件、需要对相应寄存器进行设置等等,两种开发环境不同。

作业二
一、请使用位运算完善下面的代码(下面描述的第几位均从第0位开始计算)
答案不是唯一的
1、2、
3、4、
//让x的第9、8、7、6位变成(1010)2 ,第15、14、13位变成(110)2 ,而其位不变。

int x;
X&=~((1<<6)|(1<<8)|(1<<13));
X|=((1<<7)|(1<<9)|(1<<14)|(1<<15));
或者写成x=x&(~E3C0)|(0XC280);
//让x的第12位为0时则跳出循环。

int x;

while( x&(1<<12) );
//让x的第12、11、10位全变成1 ,
而其余位不变。

int x;
x|=0x7<<10;
或X|=0X1C00;
作业三
一、编程题:在cc2530上实现下面三支发光二极管暗点流动。

答案不是唯一
#include <ioCC2530.h>
#define LED1 P1_0
#define LED2 P1_1
#define LED3 P1_4
void Delay(unsigned int count)
{
unsigned int i;
unsigned int j;
for(i=0;i<count;i++)
{
for(j=0;j<10000;j++)
;
}
//请编程程序把整型变量x以二进制的形式输出来int i,x,a=0x8000;
unsigned char b[16];
for(i=0,i<16,i++)
{
if(x&(a>>i))
printf(“1”);
else
printf(“0”);
}
}
void main()
{
P1DIR|=0X13;
P1SEL&=~0X13;
while(1)
{
LED1=0;
LED2=1;
LED3=1;
Delay(100);
LED1=1;
LED2=0;
LED3=1;
Delay(100);
LED1=1;
LED2=1;
LED3=0;
}
}
作业四
2530 看门狗定时器的时钟源为32K Hz CC2530的射频电路可以工作在32MHz下。

2. CC2530的串行通信接口可以分别运行于UART 模式和SPI 模式。

3.与传统8051单片机相比,cc2530最主要的共同点是他们都有一个80C51内核,cc2530最主
要特点是增加了无线射频电路。

2530片内具有一个中断控制器,能够同时对18 路中断源进行管理;其中EA寄存器的作用是:中断总开关。

2530的工作模式可以分为主动模式、空闲模式、PM1、PM2、PM3,全速运行的模式是主动模式,最省电的模式是PM3。

2530的定时器1除了产生定时中断外,还可以在输出pwm波,共有
5 路pwm输出通道。

7.采用RS232C实现最简单的双机互联,至少需要如下信号线: TXD、
RXD和GND。

8.RS-232C的帧格式由四部分组成,包括:起始位、数据位、奇偶校验位和停止位。

9.计数器有三种操作模式:自由运行模式、模模式或正计数/倒计数运行计数器。

2530的ADC最多支持8路转换通道,转换精度最多可达 12位数字位。

2530F256内部具有8K RAM 。

2530有21 个I/O口,除P1_0 和 P1_1 有20mA的驱动能力,其余引脚只有4mA的驱动能力。

13.若有C51语句unsignedchartemp,那么temp占用1 个字节;若有C51语句unsignedint tmp,那么tmp占用 2 个字节。

14.RS232-C串口通讯中,表示逻辑0的电平是+3V---+15V ,表示逻辑1的电平是-15V----3V 。

15.在IAR环境下进行CC2530编程,语句“_sfrint x;”中“_sfr”的作用是让变量x存放在sfr区。

16.如果将CC2530的P1端口设置为外设I/O功能,需要设置P1SEL 寄存器,P1端口设置为输入端口,需要设置 P1DIR 寄存器。

作业五
1.请简要说明IAR环境下cc2530中断处理程序的通用编写模板。

答:
#pragma vector=向量地址
__interrupt void 中断函数名(void)
{
中断处理;
中断清除;
}
2.在处理按键时,为什么要“去抖”?怎样“去抖”?
答:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

可以采用“延时”一段时间(通常为3-10ms)在去检测按键是否按下。

3.简述CC2530看门狗控制器的编程步骤。

a)看门狗定时器T0的设置。

b)计算主控程序循环一次的耗时。

c) 设计T0溢出所对应的中断服务程序。

此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序看门狗也有对计算机危害之处。

2530有多少路中断源,请至少说出5种中断源名称。

CC2530的CPU能够同时对18路中断源进行管理。

串口0发送完成;串口0接收完成;串口1发送完成;串口1接收完成;定时器1;定时器2;定时器3;定时器4;端口0外部中断;端口1外部中断;端口2外部中断;ADC转换结束;看门狗计时溢出;睡眠定时器比较;RF通用中断。

相关主题