交通灯实验.docx
《交通灯实验.docx》由会员分享,可在线阅读,更多相关《交通灯实验.docx(15页珍藏版)》请在冰豆网上搜索。
交通灯实验
内蒙古工业大学信息工程学院
实验报告
课程名称:
DSP技术及应用
实验名称:
交通灯实验
实验类型:
验证性■综合性□设计性□
实验室名称:
电子系实验室
班级:
电子09-2班学号:
200920203057
姓名:
郭兴荣组别:
同组人:
成绩:
实验日期:
2012年6月26日
实验报告撰写要求
一、实验前用预习报告纸撰写预习报告,预习报告包括以下内容
1、实验目的
2、实验用仪器设备、器材或软件环境
3、实验原理、方案设计、程序框图、预编程序等
4、实验过程中需要记录的实验数据表格
二、实验过程中,要认真观察,仔细记录
三、完成实验后用实验报告纸撰写实验报告,包括以下内容
1、仪器设备型号及编号
2、实验器材或软件环境
3、实验步骤、程序调试方法
4、实验数据处理及结果分析
5、实验中存在的问题
6、体会及思考题
四、报告撰写时,要求格式规范、书写整齐
预习报告成绩:
指导教师审核(签名):
年月日
预习报告
1、实验目的
(1)学习DSP控制外设的原理
(2)掌握DSP编程的基本方法;
(3)学习C54xx系列芯片的中断、I/O空间操作。
2、实验用仪器设备、器材或软件环境
(1)微机一台;
(2)CCS软件;
(3)DES5402PP-U实验箱。
3.预习要求
(1)参照教材学习DSP软件工程项目的基本构成和程序的编译、汇编、链接过程;
(2)参照教材学习cmd文件的编制及其作用;
(3)参照教材学习C语言编程的方法;
(4)C语言编程所需要添加的库文件和头文件
4.实验内容
(1)CCS驱动程序的安装
(2)在CCS下的仿真器驱动程序
(3)程序的调试运行
5.实验报告要求
(1)绘制程序流程图(要求与代码相对应);
(2)实验要求记录的数据以及其他关键信息;
(3)程序调试中遇到的问题以及解决过程;
(4)实验代码清单。
实验报告成绩:
指导教师审核(签名):
年月日
实验报告
1、实验目的
(1)学习DSP控制外设的原理
(2)掌握DSP编程的基本方法;
(3)学习C54xx系列芯片的中断、I/O空间操作。
2、实验用仪器设备、器材或软件环境
(1)微机一台;
(2)CCS软件;
(3)DES5402PP-U实验箱。
3.实验步骤
(1)CCS驱动程序的安装
(2)在CCS下的仿真器驱动程序
(3)程序的调试运行
交通灯分为红黄绿三色,东、南、西、北各一组,用灯光信号实现对交通的控制:
绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。
正常的交通控制信号顺序如下:
按照常规我们假设一个十字路口为东西南北走向。
初始状态为状态1,南北方向绿灯通车,东西方向红灯。
经过过一段时间(20S)转换状态2,南北方向绿灯闪三次转亮黄灯,共延时5S,东西方向仍然红灯。
再转换到状态3,东西方向绿灯通车,南北方向红灯。
过一段时间(20S)转换到状态4,东西方向绿灯闪三次转亮黄等,共延时5S,南北方向仍然红灯。
最后循环至南北绿灯,东西红灯。
这些状态,都有软件来设计,前提是在实验箱上已经把交通灯的位置按一定规律设置好。
具体来说,把东西南北方向的红绿黄灯编号,然后在软件当中把灯亮时的状态设为“1”,灯灭时的状态设为“0”。
第几个灯亮,就在第几位用二进制的1表示,所以以上提的状态都以这个思路来表示。
之后把每一个状态的二进制转换为十六进制。
因此用十六进制来表示每一个状态。
流程图如下:
具体步骤如下:
4.实验代码清单:
1.主程序
#include
#include
#include
#include
#defineIMR_ADDR0
#defineLED_SIZE12
ioportunsignedportc000;/*forLEDsshow*/
voidmydelay1()
{inti,j;/*whenclkout=10MHz,about0.2s*/
for(i=0;i<1000;i++)
for(j=0;j<1000;j++);}
voidmydelay2()
{inti,j;/*whenclkout=10MHz,about0.2s*/
for(i=0;i<1000;i++)
for(j=0;j<20000;j++);}
voidmydelay3()
{inti,j;/*whenclkout=10MHz,about0.2s*/
for(i=0;i<1000;i++)
for(j=0;j<3000;j++);}
voidmain()
{inti=0,j=0;
portc000=0x4444;/*全部红灯亮*/
mydelay1();
for(j=20;j>0;j--)/*整个过程循环20次*/
{portc000=0x2424;/*南北绿灯亮、东西红灯亮*/
mydelay2();
for(i=0;i<3;i++)/*南北绿灯闪三次、东西红灯亮*/
{portc000=0x2424;/*南北绿灯亮、东西红灯亮*/
mydelay1();
portc000=0x0404;/*东西红灯亮*/
mydelay1();}
portc000=0x1414;/*南北黄灯亮、东西红灯亮*/
mydelay3();
portc000=0x4242;/*南北红灯亮、东西绿灯亮*/
mydelay2();
for(i=0;i<3;i++)/*南北红灯亮、东西绿灯闪三次*/
{portc000=0x4242;/*南北红灯亮、东西绿灯亮*/
mydelay1();
portc000=0x4040;/*南北红灯亮*/
mydelay1();}
portc000=0x4141;/*南北黄灯亮、东西黄灯亮*/
mydelay3();
}
}
2.中断向量文件
.sect".vectors"
.align0x80;mustbealignedonpageboundary
RESET:
nop
nop;branchtoCentrypoint
;stacksizeof200
nmi:
RETENOP
NOP
NOP
sint17.space4*16
sint18.space4*16
sint19.space4*16
sint20.space4*16
sint21.space4*16
sint22.space4*16
sint23.space4*16
sint24.space4*16
sint25.space4*16
sint26.space4*16
sint27.space4*16
sint28.space4*16
sint29.space4*16
sint30.space4*16
NOP
NOP
rint0:
RETENOP
NOP
NOP
NOP
NOP
rint1:
RETENOP
NOP
NOP
xint1:
RETENOP
NOP
NOP
int3:
RETENOP
NOP
NOP
.end
3.连接命令文件
MEMORY
{
PAGE0:
EPROG:
origin=0x1500,len=0x2a80
VECT:
origin=0x3f80,len=0x80
PAGE1:
USERREGS:
origin=0x60,len=0x1c
BIOSREGS:
origin=0x7c,len=0x4
IDATA:
origin=0x80,len=0x1480
EDATA:
origin=0x8000,len=0x8000
}
SECTIONS
{
.vectors:
{}>VECTPAGE0
.sysregs:
{}>BIOSREGSPAGE1
.trcinit:
{}>EPROGPAGE0
.gblinit:
{}>EPROGPAGE0
frt:
{}>EPROGPAGE0
.text:
{}>EPROGPAGE0
.cinit:
{}>EPROGPAGE0
.pinit:
{}>EPROGPAGE0
.sysinit:
{}>EPROGPAGE0
.bss:
{}>IDATAPAGE1
.far:
{}>IDATAPAGE1
.const:
{}>IDATAPAGE1
.switch:
{}>IDATAPAGE1
.sysmem:
{}>IDATAPAGE1
.cio:
{}>IDATAPAGE1
.MEM$obj:
{}>IDATAPAGE1
.sysheap:
{}>IDATAPAGE1
.stack:
{}>IDATAPAGE1
}
5.实验心得体会
通过学习我了解到了如何用MATLAB进行DSP设计模拟,其他一些DSP芯片的大致结构和性能,以及具体的DSP应用开发方面的知识。
在老师的悉心教导下,经过认真学习,对DSP应用方面的知识有了一个整体的了解,虽然还没有利用DSP芯片做过实际的东西,但我通过对该课的学习,为以后可能的设计应用打下了一定基础。