资源描述:
《DSP综合实验4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四综合实验一、实验目的:1、熟悉CCS编程的整体结构;2、熟悉存储器的扩展;3、熟悉串口通信。二、实验内容:对给出的测试程序进行修改,以达到预期的要求。三、实验程序说明:1、所有子程序的函数都在init.c文件中测试程序的每一部分都做成了函数,只要调用子函数就能执行相应的程序,子程序包括:I/O口、步进电机、直流电机、蜂鸣器等。2、chkmem.asm文件为存储器测试程序的汇编文件,包括扩展的RAM和ROM,地址分别为0x8000、0x18000、0x28000,编写了完整的读写程序;3、还有一部分就的串口通信程序,主要是完成和51单片机的通信,因51单片机控制着键盘、8个
2、数码管和液晶显示,和其通信主要是为了控制输入输出。四、实验内容:1、修改蜂鸣器测试部分程序,当测试蜂鸣器时使其响5声,若不响查看JP14是否为弹起状态,在init.c文件中的sp()中修改;2、修改存储器测试程序,使其读写次数改为32,在chkmem.asm中修改;3、修改液晶显示程序,修改结果为:程序运行后按2进入第二屏,修改这一屏的显示,修改后为:1.存储器,2.步进电机,3.直流电机,4.交通灯,5.喇叭,按相应的键进入相应的程序中执行;4、修改交通灯测试程序,使其符合生活中的十字路口交通灯;在init.c文件中的traffic_led()中修改,要巧妙运用Led_Tra
3、ffic[18]、Led_Delay[18],两个数组,只要修改这两个数组的数据就能实现结果。实验程序段:#include#include#include#include#defineIMR_ADDR0ints;char*b;#defineUART_COUNTER0x62#defineKEYIN_COUNTER0X61#defineLCD_SIZE23#defineKEY_SIZE6#defineLED_SIZE14ioportunsignedport8000;/*forCTRLword*/ioportu
4、nsignedporte000;/*forDCMOTORrun*/ioportunsignedportc000;/*forLEDsshow*/ioportunsignedportf000;/*forSTEPMOTOR*/unsignedintCtrlWord=0;charLCD_Buffer[LCD_SIZE]={0x55,0x66};/*LCDSHOW'sbuffer*/charKEY_Buffer[KEY_SIZE];/*KEYINPUT'sbuffer*/intIskey=0;/*ifIskey!=0,thenhaveKEYin*//*itshigh8bitsarekey
5、code!*/charLED_Buffer[LED_SIZE]={0x55,0x77};/*LEDSHOW'sbuffer*/intNowLine=1,NowCol=0;intIsQuitKey=0,First_input=1;/*if==1,quitkeyinput*/floatResult,Input_number;charIn_number[10],Now_in=0;/*incalculater,inputnumbersaveit*/charLast_Cal,Lastbuf[3]={""};intLed_Traffic[24]={0x030c,0x28a,0x208,0x
6、28a,0x208,0x28a,0x861,0x0451,0x041,0x0451,0x041,0x0451,0x030c,0x28a,0x208,0x28a,0x208,0x28a,0x861,0x0451,0x041,0x0451,0x041,0x0451};intLed_Delay[24]={60,5,5,5,5,5,60,5,5,5,5,5,60,5,5,5,5,5,60,5,5,5,5,5};unsignedintTimerNum=0,TimerIndex=0;unsignedintchk_prog28000(void);unsignedintchk_data8000
7、(void);voidu_printf(char*buf,intsize);voidkey_input(char*buf,intsize);voidpllx100();voidpllx10();voidspeak(intlength,intflag);inttest(){inti;i=0;return(i);}voidmydelay(){/*whenclkout=10MHz,about0.2s*/inti,j;for(i=0;i<500;i++)for(j=0;j<1000;j++);}vo