实验四综合实验。
一、实验目的:
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...