版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CC2530可编程输入输出口(I/O)应用本实验通过控制CC2530端口输出,并利用图1.36所示的基础实验板上的4所示的8个LED灯观察现象。基础实验板是为了帮助学习和认识CC2530资源和特性而设计的。2、 电路原理图CC2530单片机端口驱动能力有限,所以用ULN2003芯片做驱动,其电路原理图如图1.4.3所示。ULN2003内部含有7个不能输出高电平的反相器。当输入高电平时,输出为低电平,此时它可以吸收500mA,一般用于LED驱动。(详细资料参考ULN2003数据手册)。为了节省端口,采用串行输入、并行输出的移位锁存器74HC595。这样便可利用3个IO口控制8个LED灯以及数码管的状态。74HC595的电路原理图如图1.4所示。74HC595是8位输出锁存移位寄存器,数据输入由三个引脚组合控制,分别是数据输入引脚SER、数据输入控制引脚SRCK和数据输出锁存引脚RCK.SER引脚上的数据在SRCK引脚的上升沿信号保存到QA引脚,同时QA位上的数据移位到QB位,QB位的数据移位到QC位、、、、、、。依次类推,所有数据向后串行移动一位,QH位上的数据移位到QH’位,所有位的数据在RCK引脚的上升沿信号被所存到输出端。设计11.编程要求:编写一段C语言程序;2.实现功能:通过P1口输出的数据控制8个发光二极管的亮灭;3.实训现象:利用基础实验板上的8个LED灯实现循环依次点亮D2,D4,D6,D8的效果。CC2530定时器概述标准51芯片voiddelay(){u8j,k;for(j=0;j<1000;j++)for(k=0;k<110;k++);}(1/12M)*12(标准的51,相当于12个系统时钟)=1us110*1000*9*1us=1sC语言到汇编,1条相当于9条汇编。延时代码:voiddelay(unsignedintcount){unsignedinti,j;for(i=0;i<count;i++)for(j=0;j<1174;j++);}
问题二:延时时间上述代码经过反汇编之后就是16句汇编代码,一句代码需要一个指令周期来完成,时钟频率是32M,上述delay(1)的时间是: 1*1174*16/(32*106)=587usdelay(10);//延时时间就是5870us,就是5.87msdelay(800)//延时时间就是469600us,就是0.4696s
使用delay的时间很不准确,只能是大概的时间,需要精确的时间可以采用定时器功能!
一、定时器概述CC2530有5个定时器:定时器1;定时器2;定时器3;定时器4;睡眠定时器。其中睡眠定时器,和定时器2配合使用,可以使CC2530进入低功耗模式。CC2530含有四个定时器即Timer1、Timer2、Timer3和Timer4。其中Timer1为16位的定时器,Timer2为ZigBee协议MAC层专用定时器,Timer3、Timer4为8位寄存器,它们的工作原理与Timer1相同。一、定时器1当时钟脉冲设置为32M,不分频不分频自由运行模式每次溢出时间间隔为:系统时钟源(32M或16M)CLKCONCMD.OSC全局定时器分频CLKCONCMD.TICKSPDT1再分频T1CTL.DIV16位计数器T1CNTH、1CNTL定时器溢出不分频定时器溢出500次,就让灯状态取反:灯每隔1.024S亮一次,隔1.024S灭一次每次溢出时间间隔为:定时器12.计数器T1的中断溢出标志位:IRCON.T1IF和T1STAT.OVFIF1.计数器的16位初值寄存器:高8位T1CNTH、低8位T1CNTL+65535定时器100000000T1CNTH00000000T1CNTL11111111T1CNTH11111111T1CNTL经历了65535个时钟脉冲后变成16个1,如下:每经历一个时钟脉冲,数值加100000000T1CNTH00000000T1CNTL同时产生中断溢出标志位:IRCON.T1IF和T1STAT.OVFIF+1初始值:为0配置寄存器T1CTL定时器的计时原理可用公式:T=c*t来描述。其中“T”为计时时间,“c”为计数器的数值,“t”为单位时间(由DIV所设置的时间)。假如本实训配置定时器工作在无阀值计数模式,单位时间为“系统时钟频率/128”。请问寄存器T1CTL的值为。0x0DT1STAT--定时器1状态寄存器重要知识点:系统在不配置工作频率时默认为2分频,即32M/2=16M,所以定时器每次溢出时T=1/(32M/128)*65536=0.25s,所以总时间Ta=T*COUTN=0.25*4=1S。1、初始化io端口voidinit_io()和定时器init_timer_1()2、设置计数时间if(IRCON>0)3、主函数main(),完成两位数据的计数。intkey(){T1CTL=0X0D;T1STAT=0X21;}if(IRCON>0){IRCON=0;if(++m>=3){n++;m=0;}}1、初始化io端口voidinit_io()和定时器init_timer_1()2、初始化按键端口P0_3、P0_4、P0_5、P0_63、主函数main(),完成四个按键分别控制1、2、4、8灯的亮灭。外部中断intkey(){P0IEN|=0X08;PICTL&=0X01;IEN1|=0X20;P0IFG=0X00;EA=1;}大课(1)CC2530中断原理(难点)(2)CC2530外部中断编程(重点)小课(1)串口通过标志位发送接收串口初始化:时钟、位置、方式、波特率、优先级等;串口发送:等待、清0、发送;串口接收:等待、接收(2)CC2530外部中断外部中断初始化:输入方式、清除中断标志位、合上开关;中断响应程序:教学回顾#pragmavector=中断向量地址__interruptvoid中断函数名(void) {
中断处理;
中断清除; }#pragmavector=P0INT_VECTOR__interruptvoidIS(void){HC595(0X04);P0IF=0;}P1SEL=0X00;P1DIR=0XFF;P0DIR|=~0X08;使用按键P0_3实现外部中断。1、初始化init_io()2、初始化输出函数hc595();3、初始中断init_inter();4、初始化P0输入输出口io;P0DIR=~0X085、写中断函数#pragmavector=中断向量地址。6、主函数main(),实现按键进入中断函数,点亮灯。实现基础芯片中灯D8亮,当按下基础芯片中的最后一个按键,D8灯灭,基础芯片中的LED灯D1和D2点亮。睡眠唤醒-中断方式LED1闪烁3次后进入睡眠状态,通过按下按键S2产生外部中断进行唤醒IO口初始化函数外部中断初始化函数设置系统电源工作模式函数中断处理函数HC595处理函数延时函数主函数PICTL&=0x01;
P0IFG=0x00;
P0IEN|=0x10;IEN1|=0x20;//此项设置非常重要,不然进不了中断函数允许P0口中断;EA=1;zhongduanchushi(){P0DIR|=~0X08;P0IEN|=0X08;PICTL&=0X01;IEN1|=0XFF;P0IFG=0X00;EA=1;}电源管理寄存器PowerMode(ucharmode){if(mode<4){SLEEPCMD|=mode;PCON=0x01;}elsePCON=0x00;}#pragmavector=P0INT_VECTOR__interruptvoidP0_ISR(void){if(P0IFG>0){P0IFG=0;}
P0IF=0;PowerMode(4);}voidmain(void){uchari=0;uintled=HC595(0X01);iochushi(); zhongduanchushi();
while(1){for(i=0;i<6;i++){LED1=~LED1;delay(500);}PowerMode(3);}}睡眠唤醒-定时器设置定时器让系统在设定的时间被唤醒,每次唤醒LED1闪烁3下提示用户延时函数ioc初始化函数HC595处理函数设置系统电源工作模式函数睡眠定时器中断函数睡眠定时器初始化zhongduanchushi(){ST2=0X00;ST1=0X0F;ST0=0X0F;EA=1;STIE=1;STIF=0;}voidSet(uintsec){ulongsleepTimer=0;
sleepTimer|=ST0;sleepTimer|=(ulong)ST1<<8;sleepTimer|=(ulong)ST2<<16;sleepTimer+=((ulong)sec*(ulong)32768);ST2=(uchar)(sleepTimer>>16);ST1=(uchar)(sleepTimer>>8);ST0=(uchar)sleepTimer;}PowerMode(ucharmode){if(mode<4){SLEEPCMD|=mode;PCON=0x01;}elsePCON=0x00;}#pragmavector=ST_VECTOR__interruptvoidST_ISR(void){STIF=0;PowerMode(4);}voidmain(void){uchari=0;
iochushi(); zhongduanchushi();HC595(0X00);while(1){for(i=0;i<6;i++){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版离婚合同:两个孩子抚养与财产分配版B版
- 2025年度文化产业园物业委托管理服务合同4篇
- 2025年度商用厨房设备安全检测及认证合同3篇
- 2025年度土地承包经营权流转纠纷调解合同模板4篇
- 2025年度珠宝首饰代工定制合同范本(高品质)4篇
- 2024美甲店美甲技师劳务外包合同参考3篇
- 2025年度智能化工厂承包合同范本8篇
- 2025年度水资源综合利用项目承包合作协议样本4篇
- 2024版画室合伙协议合同范本
- 2025年LED照明产品智能照明系统集成设计与施工合同3篇
- GB/T 33629-2024风能发电系统雷电防护
- 剑桥国际少儿英语“第三级”单词默写表
- (精心整理)高中生物必修二非选择题专题训练
- 小学二年级100以内进退位加减法混合运算
- 福建省流动人口信息登记表
- 市委组织部副部长任职表态发言
- HXD1D客运电力机车转向架培训教材
- 超星尔雅学习通【西方文论原典导读(吉林大学)】章节测试附答案
- 【培训教材】外贸会计PPT
- 《门店运营管理手册》
- 应征公民体格检查表(征兵)
评论
0/150
提交评论