基于DSP的键控流水灯.doc

上传人:啊飒飒 文档编号:10174825 上传时间:2021-04-25 格式:DOC 页数:8 大小:100.50KB
返回 下载 相关 举报
基于DSP的键控流水灯.doc_第1页
第1页 / 共8页
基于DSP的键控流水灯.doc_第2页
第2页 / 共8页
基于DSP的键控流水灯.doc_第3页
第3页 / 共8页
基于DSP的键控流水灯.doc_第4页
第4页 / 共8页
基于DSP的键控流水灯.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于DSP的键控流水灯.doc》由会员分享,可在线阅读,更多相关《基于DSP的键控流水灯.doc(8页珍藏版)》请在三一文库上搜索。

1、电子电气工程学院学生实验报告一、实验预习实验序号5实验题目按键控制LED灯预习日期要求:1.实验目的;2.实验原理:3.画出实验原理图;4.实验设备;5.预习内容(该实验项目应完成内容);6.记录表格设计。一、 实验目的1、 了解DSP开发系统里关于按键控制LED灯的原理。2、 学会运用软件驱动按键控制LED。3、 熟悉CCS3.1studio的使用。二、实验原理实验电路如下:通过按键3来控制四个LED。三、 实验内容将KEY文件COPY到CCS开发环境中MYPROJECT目录下,CCS中用PROJECT命令加载KEY目录下的KEY。PJT;在CCS中用FILE PROGRAM 命令,加载KE

2、Y目录中DEBUG目录下;在CCS中用Debug Go Main 执行程序到main()函数处;当程序全速运行时,按下KEY键盘,则LED1不断闪烁,按第二下时,LED2不断闪烁,按第三下时,LED4不断闪烁,按第五下时,LED1LED4循环依次闪烁,若再按按键,则如此反复循环。二、实验报告要求:1.实验步骤;2.实验数据、波形、现象的记录;3.数据分析、处理(分析、讨论实验结果,说明实验结果与理论值的比较误差;讨论实验中存在的问题与解决方法。);4.实验操作注意事项;5.实验习题;6.心得体会。一、 实验步骤1、 打开CCS3.1软件将程序KEY加载到Project目录下。2、 打开main

3、()函数,进行保存和编译。3、 点击Debug下的connect连接DSP开发系统.4、 点击FILE下的load program选择KEY.out文件并运行.5、 按下按键KEY,观察按下按键的次数与LED的亮灭规律.6、 修改程序得到不一样的结果.二实验程序/*Main.c*/ /*按键与走马灯程序*/#include global.c void SystemInit();void Timer1Init(); void KickDog(); void KeyLed();void ScanKey(void);void delay(unsigned int num);unsigned int

4、numled=0,numkey=0;main() SystemInit(); /系统初始化 MCRC=MCRC & 0xFF00; /IOPE0-7设为IO口模式 PEDATDIR=0xFF00; /所有LED=0, (1代表输出,0代表输入) MCRA=MCRA & 0x00FF; /IOPB0-7设为IO口模式 PBDATDIR = PBDATDIR & 0x00FF; asm( CLRC INTM ); Timer1Init(); /定时器初始化 while(1) ScanKey();numkey+;if (numkey 5)numkey = 1; void SystemInit() a

5、sm( SETCINTM );/* 关闭总中断 */asm( CLRC SXM );/* 禁止符号位扩展 */ asm( CLRC CNF ); /* B0块映射为 on-chip DARAM*/asm( CLRC OVM ); /* 累加器结果正常溢出*/SCSR1=0x02FC; /* 系统时钟CLKOUT=20*2=40M */WDCR=0x006F;/* 禁止看门狗,看门狗时钟64分频 */ KickDog(); /* 初始化看门狗 */ IFR=0xFFFF;/* 清除中断标志 */ IMR=0x0002;/* 打开中断2*/ void Timer1Init() EVAIMRA=0x

6、0080;/ 定时器1周期中断使能通用定时器功能: 具有计数定时功能,可以为各种应用提供时基,并可以产生比较输出/PWM信号。742ChEVAIMRAEVA的中断屏蔽寄存器A742FhEVAIFRAEVA的中断标志寄存器AEVAIFRA=0xFFFF;11111 111 1111 1111/ 清除中断标志 742Fh,各位描述如下:位15-11 保留位。读返回0,写无效。位10 T1OFINT FLAG。通用定时器1的上溢中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位标志位位9 T1UFINT FLAG。通用定时器1的下溢中断标志 读 0:标志被复位;1:标志被置位 写

7、0:无效 1:复位标志位位8 T1CINT FLAG。通用定时器1的比较中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位标志位位7 T1PINT FLAG。通用定时器1的周期中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位标志位位6-4 保留位。读返回0,写无效。位3 CMP3INT FLAG。比较单元3中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位位2 CMP2INT FLAG。比较单元2中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位标志位位1 CMP1INT FLAG。比较单元1中断标志 读 0:标志被复位

8、;1:标志被置位 写 0:无效 1:复位标志位位0 PDPINTA FLAG。功率驱动保护中断标志 读 0:标志被复位;1:标志被置位 写 0:无效 1:复位标志位 GPTCONA=0x0000;0 0 0 00 00 00 0 00 00 00 7400hGPTCONA定时器控制寄存器AEVA位15 保留位位14 通用定时器2的状态,只读。 0 递减计数位13 通用定时器1的状态,只读。 1 递增计数位12-11 保留位。位10-9 使用通用定时器2启动ADC事件。 00 无事件启动ADC(模数转换)位8-7 使用通用定时器1启动ADC事件。 00 无事件启动ADC(模数转换)位6 比较输出

9、使能,如果PDPINTx*有效则该 位设置为0。 0 禁止所有通用定时器比较输出(所有比较输出 都置于高阻态)位5-4 保留位。位3-2 通用定时器2比较输出极性 00 强制低位1-0 通用定时器1比较输出极性 00 强制低T1PR=2500;/ 定时器1初值,定时0.4us*2500=1ms 7403hT1PR定时器1的周期寄存器T1CNT=0;7401hT1CNT定时器1的计数寄存器T1CON=0x144E; 00 0 10 100 0 1 00 01 00 /增模式, TPS系数40M/16=2.5M,T1使能 位15-14 仿真控制位 00 仿真挂起时立即停止 位12-11 4种计数模

10、式选择 10 连续增计数模式 位10-8 输入时钟定标器 100 x16 位7 使能位的来源 0:使用自身的使能位(TENABLE)位6 定时器使能与禁止 1 允许定时器操作位5-4 时钟源选择 00 内部时钟位3-2 定时器比较寄存器重载条件。 01 计数器的值为0或等于周期寄存器的值 时重载 位1 定时器比较使能与禁止。0 禁止定时器比较操作位0 周期寄存器选择 0 使用自己的周期寄存器void ScanKey(void)unsigned inttemp,temp1;unsigned int flag = 0;while(flag=0)temp = PBDATDIR ; 按键消抖程序,检测

11、按键是否按下,只有当按按下又拿起时才视为按键完成了一次按键.temp = temp & 0x0080;(取高位)while(temp =0x0080) temp = PBDATDIR ;temp = temp & 0x0080; delay(5000);temp = PBDATDIR ; temp = temp & 0x0080;(按键位按下为0,不按为1,且第七位为按键位) temp1 = temp;if (temp = 0x0080) flag = 0;else flag = 1; temp = PBDATDIR ; temp = temp & 0x0080; while( temp !=

12、 0x0080)temp = PBDATDIR ;temp = temp & 0x0080;voiddelay(unsigned int num)volatile unsigned int i;for (i=0;i=1200) numled=1;void interruptc_int2() /*定时器1中断服务程序*/ if(PIVR!=0x27) asm( CLRC INTM );return; T1CNT=0; (重新赋值) numled+;if ( numled % 200 =0) KeyLed(); EVAIFRA=0x80; asm( CLRCINTM ); void KickDog()/*踢除看门狗 */WDKEY=0x5555;WDKEY=0xAAAA;3、 实验现象当第一次按下按键时四个LED中第一个LED闪烁,第二次按下按键时第二个LED闪烁,第三次按下按键时第三个LED闪烁,第四次按下按键时第四个LED闪烁,第五次按下按键时四个LED一起亮起,第六次时又进入了循环。4、 实验注意现象正确安装驱动及正确装载程序,仔细修改程序得到LED的亮灭时间。5、 实验心得了解了按键控制LED的原理,掌握了运用软件驱动LED的基本方法,对实验程序有了基本了解。电子电气工程学院实验报告附页第 页 共 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1