DSP综合实验

发布 2023-04-19 11:42:28 阅读 8447

实验四综合实验。

一、实验目的:

1、熟悉ccs编程的整体结构;

2、熟悉存储器的扩展;

3、熟悉串口通信。

二、实验内容:

对给出的测试程序进行修改,以达到预期的要求。

三、实验程序说明:

1、所有子程序的函数都在文件中测试程序的每一部分都做成了函数,只要调用子函数就能执行相应的程序,子程序包括:i/o口、步进电机、直流电机、蜂鸣器等。

2、文件为存储器测试程序的汇编文件,包括扩展的ram和rom,地址分别为0xxx28000,编写了完整的读写程序;

3、还有一部分就的串口通信程序,主要是完成和51单片机的通信,因51单片机控制着键盘、8个数码管和液晶显示,和其通信主要是为了控制输入输出。

四、实验内容:

1、修改蜂鸣器测试部分程序,当测试蜂鸣器时使其响5声,若不响查看jp14是否为弹起状态,在文件中的sp()中修改;

2、修改存储器测试程序,使其读写次数改为32,在中修改;

3、修改液晶显示程序,修改结果为:程序运行后按2进入第二屏,修改这一屏的显示,修改后为:1.

存储器,2. 步进电机,3.直流电机,4.

交通灯,5. 喇叭,按相应的键进入相应的程序中执行;

4、修改交通灯测试程序,使其符合生活中的十字路**通灯;在文件中的traffic_led()中修改,要巧妙运用led_traffic[18]、led_delay[18],两个数组,只要修改这两个数组的数据就能实现结果。

实验程序段:

#include <>

#include <>

#include <>

#include <>

#define imr_addr 0

int s;

char *b;

#define uart_counter 0x62

#define keyin_counter 0x61

#define lcd_size 23

#define key_size 6

#define led_size 14

ioport unsigned port8000for ctrl word */

ioport unsigned porte000for dc motor run */

ioport unsigned portc000for leds show */

ioport unsigned portf000for stepmotor */

unsigned int ctrlword=0;

char lcd_buffer[lcd_size]=

int led_traffic[24]=;

int led_delay[24]=;

unsigned int timernum=0,timerindex=0;

unsigned int chk_prog28000(void);

unsigned int chk_data8000(void);

void u_printf(char *buf,int size);

void key_input(char *buf,int size);

void pllx100();

void pllx10();

void speak(int length,int flag);

int test()

int i;

i=0;return(i);

void mydelay()

/*when clkout=10mhz, about 0.2s */

int i,j;

for(i=0;i<500;i++)

for(j=0;j<1000;j++)

void mydelay1()

/*when clkout=10mhz, about 0.2s */

int j,i;

for(i=0;i<200;i++)

for(j=0;j<1000;j++)

void error_sound(int error)

if(error==1)

elseint is_getkey(void)

int i;

if(( key_buffer[0] =e') key_buffer[5] =0x0d))

elseiskey=0;

return(iskeyreturn key code, low 8 bit is code

int get_key(int iswait)

volatile int *addr_counter;

int i;

iskey=0;

key_input(&key_buffer[0],6);

if(iswait ==0if iswait==1, then must wait for rev end,else return direct !

return(iskeyreturn key code

addr_counter = int *)keyin_counter;

while( *addr_counter); wait for a key input...

if(( key_buffer[0] =e') key_buffer[5] =0x0d))

else

return(iskeyreturn key code, low 8 bit is code

int lcd_printf(int ln, int col, char *buf, int iswait)

volatile int *addr_counter;

addr_counter = int *)uart_counter;

lcd_buffer[2]=lnwhich ln will show the string */

lcd_buffer[3]=col; /which col will show string */

DSP实验

实验4 离散系统的频率响应分析和零 极点分布。实验目的 加深对离散系统的频率响应分析和零 极点分布的概念理解。实验原理 离散系统的时域方程为。其变换域分析方法如下 时频域变换。系统的频率响应为。时域z域变换。系统的转移函数为。分解因式。上式中的和称为零 极点。在matlab中,可以用函数 z,p,k...

DSP实验安排

数字信号处理实验 安排。教材 数字信号处理实验 matlab版 刘舒帆等编,西安电子科技大学出版社,2008.5 20学时,每周4学时,共5周 即5次实验课 第1次实验 第8周 1 课前预习 实验1 实验6 2 完成下列实验任务,课前预先编写相应的实验程序,课堂上机操作 实验2 任务 3 实验3 任...

DSP实验报告

南京邮电大学。实验报告。实验名称 离散时间信号与系统的时 频域表示。离散傅立叶变换和z变换。数字滤波器的频域分析和实现。数字滤波器的设计。课程名称数字信号处理a 双语 班级学号。姓名。开课时间 2013 2014 学年,第一学期。实验名称 离散时间信号与系统的时 频域表示。实验目的和任务 熟悉mat...