ARM 课程设计 南邮

ARM 课程设计 南邮
ARM 课程设计 南邮

通信与信息工程学院2012 /2013 学年第一学期课程设计实验报告

模块名称嵌入式开发专业电子信息工程学生班级B090110

学生学号B09011027 学生姓名颜泽鑫

指导教师余雪勇

一、实验目的

1、熟悉基于ARM体系结构的TQ2440实验开发板。通读实验教程,了解开发板包含的软硬件资源。

2、安装ADS1.2开发环境及串口工具,要求熟练掌握ARM的指令系统及相关资料,熟练掌握并使用ADS集成开发环境。

3、熟悉嵌入式开发的流程,学会嵌入式交叉开发环境的建立。

4、掌握基于Linux的应用程序开发步骤,学习使用Linux操作系统的常用命令。

二、实验设备及工具(包括软件调试工具)

硬件:TQ2440 嵌入式实验平台开发板、Windows系统PC 机、串口线、网线、电源、USB 线。

软件:PC 机操作系统、ADS1.2开发环境。Oracle VM VirtualBox虚拟机环境。

三、实验任务

1、基本要求:

根据开发板及内容选做TQ2440测试程序中的8个实验。

包括:

1 : Test PWM

2 : RTC time display

3 : Test ADC

4 : Test interrupt and key scan

5 : Test Touchpanel

6 : Test TFT LCD

7 : Test IIC EEPROM

8 : UDA1341 play music

2、提高要求:

根据学生自己掌握知识,设计一个小应用程序,内容每个学生自己出题。

3、发挥要求:

在完成(1)、(2)项要求的基础上,完成具有创新内容的功能。或做其他相关内容。

四、实验内容(包括原理、方法、步骤以及关键代码)

1、基本要求

在基本要求中,需要从11个测试程序中选做8个,以下是对8个程序的实验过程的叙述,包括实验前的硬件连接准备、软件环境配置(串口工具、dnw、ADS、交叉编译环境等)、每个实验的关键代码以及简单分析。

1.1、硬件连接

用USB线、串口线把开发板连到电脑相应的端口,再将电源线插好。

1.2、软件环境配置

设置串口工具SecureCRT

解压在“windows 平台开发工具包\”目录下的“SecureCRT.rar”后,即可使用SeureCRT,双击图标,打开SecureCRT,如下图所示:

点击图中红色方框图标,出现下图的设置窗口:

在 Ptotocol 里面选择Serial,出现如下图所示的对话框,详细设置参考下图,超级终端设置部分,不再重复。

注意:Port 选项部分根据您实际使用的端口进行配置,其他选项请一定配置如下图所示:

配置完毕后,点击上图的“Connect”选项即可连通串口。

DNW 设置

DNW 在这里是我们的.bin 文件下载软件,可实现我们向flash 或者内存当中烧写程序的功能。

直接双击“Windows 平台工具\DNW”目录下的DNW 软件,出现下图:

1.3、实验前准备操作

1、串口工具和开发板连接成功后,将选择开关打到norflash,并按一下重启键,开发板则自动按照选择从norflash 启动。此时,如果 SecureCRT 界面显示如下,则表示串口工具已经工作正常:

在 SecureCRT 界面之中输入:a,然后回车。(此时即将开发板选择进入到这一种下载模式,然后用DNW 配合来实现下载即可。)选择[a] Download User Program (eg: uCOS-II or TQ2440_Test),就是选择了我们烧写裸奔程序所需要的下载模式。

2、打开ADS1.2(ARM Developer Suite v1.2,一款针对ARM 的开发套件,电脑中以自带,不需要再安装),并使用ADS打开天嵌科技的出厂自带的测试程序:测试程序在出厂附

带光盘的文件夹当中,文件格式是TQ2440_Test.mcp。点击compile 键进行编译,点击make 键生成我们此处所需要的“*.bin”文件生成自己的 bin 文件之后,就可以使用SecureCRT 配合dnw 来实现对bin 文件的下载了。

3、打开串口工具,使开发板从norflash 启动,再串口工具中出现的信息中,选择a,进入等待下载状态;双击打开dnw,然后选择USB Port >>Transmit>>找到相应的需要烧写的bin 文件,双击即可完成烧写。

4、按照以上步骤进行操作,则我们此时基本已经完成了一次完整的程序的从编译到烧写的过程了。同时,至此天嵌的出厂测试程序已经被我们烧写到了nandflash 中。此时,我们再将选择开关打到nandflash 中并重启开发板,使开发板进入我们刚刚烧写的出厂程序中,我们会看到在SecureCRT 界面会出现以下信息:

<***************************************>

TQ2440 Test Program

https://www.360docs.net/doc/ef17345664.html,

<***************************************>

Please select function :

0 : Please input 1-11 to select test

1 : Test PWM

2 : RTC time display

3 : Test ADC

4 : Test interrupt and key scan

5 : Test Touchpanel

6 : Test TFT LCD

7 : Test IIC EEPROM

8 : UDA1341 play music

9 : UDA1341 record voice

10 : Test SD Card

11 : Test CMOS Camera

截图如下:

1.4、选做的8个实验分析

1.4.1、Test PWM ,调试pwm 控制蜂鸣器。

按“—”号,蜂鸣器声音频率逐渐减小,最小 Freq = 10;按“+”号,蜂鸣器声音频率逐渐增大,最大Freq = 2000。(加号需要按住“shift”不然是等号)。使用ADS 打开出厂程序如下:

双击,打开 Main.c 文件,找到while(1)循环,在其中的CmdTip函数上面右键,Go to 一下,就转到了:

struct {

void (*fun)(void);

char *tip;

}CmdTip[] = {

{ Temp_function, "Please input 1-11 to select test" } ,

{ BUZZER_PWM_Test, "Test PWM" } ,

{ RTC_Display, "RTC time display" } ,

{ Test_Adc, "Test ADC" } ,

{ KeyScan_Test, "Test interrupt and key scan" } ,

{ Test_Touchpanel, "Test Touchpanel" } ,

{ Lcd_TFT_Test, "Test TFT LCD" } ,

{ Test_Iic, "Test IIC EEPROM" } ,

{ PlayMusicTest, "UDA1341 play music" } ,

{ RecordTest, "UDA1341 record voice" } ,

{ Test_SDI, "Test SD Card" } ,

{ Camera_Test, "Test CMOS Camera"},

{ 0, 0}};

从下面struct 结构当中去寻找到BUZZER_PWM_Test ,并右键go to ,跳转到:void BUZZER_PWM_Test( void )这个函数。

void BUZZER_PWM_Test( void )

{

U16 freq =800;// lci 1000 ;

Uart_Printf( "\nBUZZER TEST ( PWM Control )\n" );

Uart_Printf( "Press +/- to increase/reduce the frequency of BUZZER !\n" ) ;

Uart_Printf( "Press 'ESC' key to Exit this program !\n\n" );

Buzzer_Freq_Set( freq ) ;

while( 1 )

{

U8 key = Uart_Getch();

if( key == '+' )

{

if( freq < 2000 ) //lci 20000

freq += 10 ;

Buzzer_Freq_Set( freq ) ;

}

if( key == '-' )

{

if( freq > 11 )

freq -= 10 ;

Buzzer_Freq_Set( freq ) ;

}

Uart_Printf( "\tFreq = %d\n", freq ) ;

if( key == ESC_KEY )

{

Buzzer_Stop() ;

return ;

}

}

}

我们仔细地分析过这个函数之后不难发现,在我们if( key == '-' )的时候没有

问题,是因为此处的减号就是我们键盘上的减号,但是,在我们很多键盘上面是

没有if( key == '+' )中的这个加号的,我们要想解决这个漏洞有两个办法:一是,

在我们调试出厂程序的时候,使用shfit 加“+”号键来组合实现对于频率控制时

候的增加功能;二是,在这里直接把if( key == '=' ),这样就可以是我们在调试程

序的时候更加直观了。

其实仅仅是改变按键,包括频率的变化范围、变化步长都可以在这个函数中改变。

1.4.2、RTC time display调试RTC 实时时钟(即Real Time Clock)。

在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等;而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz 晶体和电阻电容等。

实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。RTC 可以通过STRB/LDRB 指令将8 位BCD 码数据送至CPU。这些BCD 数据包括秒,分,时,日期,星期,月和年。RTC 单元通过一个外部的32.768KHz晶振提供时钟。RTC具有定时报警的功能。RTC 控制器功能说明:时钟数据采用BCD 编码能够对闰年的年月日进行自动处理具有告警功能,当系统处于关机状态时,能产生告警中断;具有独立的电源输入,提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟。

RTC模块由以下几部分构成构成:

闰年产生器

这个模块可以根据BCDDATA,BCDMON,以及BCDYEAR的数据决定每个月的最后日期是28,29,30 还是31。一个8位的计数器只能显示两个BCD码,因此它不能判断00 年究竟是不是闰年。例如它不能够判断1900 年和2000 的差别。。为了解决这个问题,S3C2410内的RTC 模块中有一个固定的逻辑,用来支持2000 年为闰年。请注意虽然2000 年是闰年,但1900 年不是闰年。因此,S3C2410 中00 代表2000 年,而不是1900 年。

●读/写寄存器

要求置高RTCON 寄存器的0 位来表示读和写RTC 模块中的寄存器。。为了显示秒,分,小时,日期,月和年,CPU 会从BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR 寄存器读取数据。但是由于多个寄存器的读取,可能产生1 秒钟的偏离。例如,如果用户读取寄存器BCDYEAR 到BCDMIN,假设结果为1959 年,12 月,31 日,23 点,59 分。在用户读取BCDSEC 寄存器时,但如果结果是0,那么很有可能年,月,日,时,分已经变成了1960 年1 月1 日0 时0 分了。解决的方法是,当读取到的BCDSEC 等于0 时,用户应该在读取一次BCDYEAR到BCDSEC 的值。

●备用电池

RTC可被备用电池驱动,备用电池通过RTCVDD引脚向RTC提供电压。当系统掉电时,RTC 与CPU之间的接口被阻塞,备用电池仅仅驱动振荡电路以及BCD计数器,这样可减少能量损耗。

●报警功能

RTC工作在掉电模式或正常工作模式时会在一个特定的时间产生报警信号。在正常工作模式下,报警中断(ALMINT)是激活状态的。在掉电模式下,电源管理唤醒信号(PMWKUP)与报警中断(ALMINT)都是激活状态。RTC的报警寄存器(RTCALM)决定了报警的使能与不使能以及报警时间设定的条件。

●节拍中断

RTC 节拍时间用于中断请求。TICNT 寄存器具有一个中断使能位,同时其中的计数值用于中断。当计数值到达0 时,节拍时间中断就会触发。中断的间隔时间计算如下:

Period=(n+1)/128 秒

备注n : 节拍时间计数值(1~127)

这个RTC 时间节拍中断功能可以作为RTOS(实时操作系统)内核的时间节拍。如果节拍从RTC 时间节拍产生,则RTOS 内部与时间相关的功能将一直与实时时钟同步。

RTC相关寄存器如下:

●RTC控制寄存器

寄存器地址读/写描述重置值

RTCCON 0x57000040(L)

0x57000043(B)

读/写

(用字节)

RTC控制寄存器0x0

RTCCON位描述初始状态

CLKRST [3] RTC时钟计数重置。

0 = 没重置,1 = 重置

CNTSEL [2] BCD计数重置。

0 = 合并BCD计数器

1 = 保留(单独的BCD计数器)

CLKSEL [1] BCD时钟选择。

0 = XTAL 1/(2的15次方) 分开的时钟

1 = 保留(XTAL时钟只用于测试)

RTCEN [0] RTC控制使能。

0 = 失能,1 = 使能

注意:只有BCD时间计数和读取操作可以被执行。

●实时时钟计数器(TICNT )

寄存器地址读/写描述重置值

TICNT 0x57000044(L)

0x57000047(B)

读/写

(用字节)

实时时钟计数器0x0

TICNT位描述初始状态

TICK INT ENABLE [7] 实时时间中断使能。

0 = 失能,1 = 使能

TICK TIME COUNT [6:0] 实时时间计数值(1~127)。

这个计数器的值在内部减少,用户不能在工作时读取这

个计数器的值。

000000

●RTC报警控制寄存器(RTCALM )

RTC报警控制寄存器决定了报警使能以及报警时间。注意,RTCALM寄存器在掉电模式下会通过ALMINT以及PMWKUP产生报警信号,但在正常模式下只在ALMINT产生报警信号。

寄存器地址读/写描述重置值

RTCALM 0x57000050(L)

0x57000053(B)

读/写

(用字节)

RTC报警控制寄存器0x0

RTCALM位描述初始状态保留[7] 0 ALMEN [6] 警报全球使能。

0 = 失能,1 = 使能

YEAREN [5] 年报警使能。

0 = 失能,1 = 使能

MONREN [4] 月报警使能。

0 = 失能,1 = 使能

DATEEN [3] 数据报警使能。

0 = 失能,1 = 使能

HOUREN [2] 小时报警使能。

0 = 失能,1 = 使能

MINEN [1] 分钟报警使能。

0 = 失能,1 = 使能

SECEN [0] 秒钟报警使能。

0 = 失能,1 = 使能

0 ●报警时间秒数寄存器(ALMSEC)

寄存器地址读/写描述重置值

ALMSEC 0x57000054(L)

0x57000057(B)

读/写

(用字节)

报警时间秒数寄存器0x0

ALMSEC位描述初始状态保留[7] 0 SECDATA [6:4] BCD值对于报警时间秒数。

0 ~ 5

000 [3:0] 0 ~ 9 0000 ●报警时间分钟数寄存器(ALMMIN)

寄存器地址读/写描述重置值

ALMMIN 0x57000058(L)

0x5700005B(B)

读/写

(用字节)

报警时间分钟数寄存器0x00

ALMMIN位描述初始状态保留[7] 0 MINDATA [6:4] BCD值对于报警时间分钟数。

0 ~ 5

000 [3:0] 0 ~ 9 0000 ●报警时间小时数寄存器(ALMHOUR)

寄存器地址读/写描述重置值

ALMHOUR 0x5700005C(L)

0x5700005F(B)

读/写

(用字节)

报警时间小时数寄存器0x0

ALMHOUR位描述初始状态保留[7:6] 00

HOURDATA [5:4] BCD值对于报警时间小时数。

0 ~ 2

00

[3:0] 0 ~ 9 0000 ●报警时间天数寄存器(ALMDATE)

寄存器地址读/写描述重置值

ALMDATE 0x57000060(L)

0x57000063(B)

读/写

(用字节)

报警时间天数寄存器0x01

ALMDAY位描述初始状态保留[7:6] 00 DATEDATA [5:4] BCD值对于报警时间天数,从0到28,29,30,31。

0 ~ 3

00

[3:0] 0 ~ 9 0001 ●报警时间月数寄存器(ALMMON)

寄存器地址读/写描述重置值

ALMMON 0x57000064(L)

0x57000067(B)

读/写

(用字节)

报警时间月数寄存器0x01

ALMMON位描述初始状态保留[7:5] 00 MONDATA [4] BCD值对于报警时间月数。

0 ~ 1

0 [3:0] 0 ~ 9 0001 ●报警时间年数寄存器(ALMYEAR)

寄存器地址读/写描述重置值

ALMYEAR 0x57000068(L)

0x5700006B(B)

读/写

(用字节)

报警时间年数寄存器0x0

ALMYEAR位描述初始状态

YEARDATA [7:0] BCD值对于报警时间年数。

00 ~ 99

0x0

●秒,分,时,天,月,年寄存器(BCD 码格式)

双击“main.c”,在Main.c 代码的第38-49 行(行数显示在Main.c 编辑窗口的左下角)有以下代码:

extern void Lcd_TFT_Init(void);

extern void Lcd_TFT_Test( void ) ;

extern void Test_Touchpanel(void) ;

extern void Test_Adc(void) ;

extern void KeyScan_Test(void) ;

extern void RTC_Display(void) ;

extern void Test_IrDA_Tx(void) ;

extern void PlayMusicTest(void) ;

extern void RecordTest( void ) ;

extern void Test_Iic(void) ;

extern void Test_SDI(void) ;

extern void Camera_Test( void ) ;

函数外部声明的作用是:使不同文件之间,可以调用同一工程中的其他文件里面的函数。在extern void RTC_Display(void) 上右击“go to”显示“RTC.c”代码如下:

void RTC_Display(void)

{

U16 year ;

U8 month, day ; // week

U8 hour, minute, second ;

RTC_Time_Set() ;

Uart_Printf( "\nRTC TIME Display, press ESC key to exit !\n" ) ;

while( Uart_GetKey() != ESC_KEY )

{

rRTCCON = 1 ; //RTC read and write enable

year = 0x2000+rBCDYEAR ; //年

month = rBCDMON ; //月

day = rBCDDATE ; //日

// week = rBCDDAY ; //星期

hour = rBCDHOUR ; //小时

minute = rBCDMIN ; //分

second = rBCDSEC ; //秒

rRTCCON &= ~1 ; //RTC read and write disable

Uart_Printf( "RTC time : %04x-%02x-%02x %02x:%02x:%02x\n", year, month, day, hour, minute, second );

Delay( 900 ) ;

}

}

根据RTC实现原理,不难分析实时时间获取就是获取BCD 码数据。

在SecureCRT窗口选择2,调试RTC 实时时钟(即Real Time Clock):

RTC TIME Display, press ESC key to exit !

RTC time : 2008-11-07 12:00:00

RTC time : 2008-11-07 12:00:01

RTC time : 2008-11-07 12:00:02

RTC time : 2008-11-07 12:00:03

……

时钟会按照每一秒钟为周期,准时的+1。

1.4.3、Test ADC调试ADC 实验。

2440内部ADC结构图如下:

我们从上面的结构图和数据手册可以知道,该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、 YM、YP、XM、XP。那么ADC是怎么实现模拟信号到数字信号的转换呢?首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器2中(ADCDAT2),然后ADCDAT0中的数据可以通过中断或查询的方式来访问。

开发板通过一个10K的电位器(可变电阻)来产生电压模拟信号,然后通过第一个通道(即:AIN2)将模拟信号输入ADC。

找到ADC的相关函数如下(方法同上):

//================================================================= ===

// File Name : Adc.c

// Function : TQ2440 ADC Test

// Version : 1.0

//================================================================= ===

#include "def.h"

#include "option.h"

#include "2440addr.h"

#include "2440lib.h"

#include "2440slib.h"

#define REQCNT 100

#define ADC_FREQ 2500000

#define LOOP 10000

volatile U32 preScaler;

//================================================================= =================

int ReadAdc(int ch)

{

int i;

static int prevCh=-1;

rADCCON = (1<<14)|(preScaler<<6)|(ch<<3); //setup channel

if(prevCh!=ch)

{

rADCCON = (1<<14)|(preScaler<<6)|(ch<<3); //setup channel

for(i=0;i

prevCh=ch;

}

rADCCON|=0x1; //start ADC

while(rADCCON & 0x1); //check if Enable_start is low

while(!(rADCCON & 0x8000)); //check if EC(End of Conversion) flag is high

return ( (int)rADCDAT0 & 0x3ff );

}

//================================================================= =================

void Test_Adc(void)

{

int a2=0; //Initialize variables

U32 rADCCON_save = rADCCON;

Uart_Printf( "\nADC INPUT Test, press ESC key to exit !\n" ) ;

preScaler = ADC_FREQ;

Uart_Printf("ADC conv. freq. = %dHz\n",preScaler);

preScaler = 50000000/ADC_FREQ -1;

Uart_Printf("PCLK/ADC_FREQ - 1 = %d\n",preScaler);

while( Uart_GetKey() != ESC_KEY )

{

a2=ReadAdc(2);

Uart_Printf( "AIN2: %04d\n", a2);

Delay( 200 ) ;

Delay( 700 ) ;

}

rADCCON = rADCCON_save;

Uart_Printf("\nrADCCON = 0x%x\n", rADCCON);

}

int ReadAdc(int ch)函数的功能是AD预分频器使能,并设置模拟输入通道设为AIN2。函数void Test_Adc(void) 的功能是设定寄存器中预分频器的值来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器中(ADCCON),然后ADCCON中的数据可以通过中断或查询的方式来访问。

实验操作如下:

调节开发板左下角的变阻器(开发板正放时,power 键在右下角)。串口工具返回的AIN2,会随着变阻器顺时针转动而减小,逆时针而增大。

ADC INPUT Test, press ESC key to exit !

ADC conv. freq. = 2500000Hz

PCLK/ADC_FREQ - 1 = 19

AIN2: 0545

AIN2: 0549

1.4.4、Test interrupt and key scan测试4 个按键的功能。

按键的硬件原理:

在嵌入式系统中,按键的硬件原理比较简单,通过一个上拉电阻将处理器的外部中断(或GPIO)引脚拉高,电阻的另一端连接按键并接地即可实现。如图所示:

2440的中断寄存器有6个中断裁决器,分为2级:第一级为5个,第二级为1个。详见Datasheet的P380的interrupt sources和P381的interrupt sub sources。第一级的32个中断源包含26个内部中断,6个外部中断。

这6个中断分别为:EINT0,EINT1.EINT2,EINT3,EINT4_7,EINT8_23。其中EINT4_7,EINT8_23都是共享一个中断。在外部中断有中断请求时,因为EINT4_7和EINT8_23是分别共享中断的,而SRCPND和INTPND的BIT4或BIT5也是共享使用的,那么怎么区别是EINT4还是EINT5或EINT6发生中断呢,这就需要另一个寄存器EINTPEND来判断,由于EINT0~EINT3都独享一个中断,所以EINTPEND只有EINT4~23,读取该寄存器就知道哪个中断触发了。

一、三个中断未决寄存器:源未决寄存器SRCPND和中断未决寄存器INTPND以及外部中断未决寄存器EINTPEND。

SRCPND寄存器有效位为32位,每一位对应一个中断源。某个位被置一表示相应的中断被触发,单我们知道系统在同一时间内可以触发多个中断,只要中断触发了,相应的位就被置一,直到该位被清除为止。也就是说在同一时刻SRCPND寄存器可以有多个位被同时置1。该位写1后被清0。

INTPND 寄存器有效位为32位,看似跟SRCPND一样,其实有很大的不同,在某一时刻INTPND寄存器只能有一个位被置一。INTPND某位被置一说明,该位所对应的中断在所有已触发的中断里中断优先级最高且没有被屏蔽,表示CPU即将或已经在处理在对该位对应的中断进行处理。该位写1后被清0。

两者的区别:SRCPND表明当前有什么中断被触发了;INTPND表明CPU即将或正在处理某个中断。

EINTPEND:寄存器有效位为24位,低4位保留。EINTPENG只有EINT4~E23,跟SRCPND 一样,可以在同一时刻多个位同时为1.用来区分共享中断EINT4_7和EINT8_23具体为哪个触发。该位写1后被清0.

Eg:在外部中断例程的中断处理程序里是如下写法:

if(rINTPND==0x10)

{

rSRCPND = 0x10;

rINTPND = 0x10;

if(EINTPEND & 0X10) //EINT

{

EINTPENG |= 0X10;

Uart_Printf("K4发生中断\n");

}

if(rEINTPEND&0x20) //EINT5

{

rEINTPEND |= 0x20;

Uart_Printf("K5发生中断\n");

}

}

判断条件为INTPND,如果INTPND该位置1说明当前CPU正在处理EINT4_7,将SRCPND 和INTPND的位1都写1,清0标志。if(EINTPEND & 0X10)为第二判定条件,确认为EINT4_7中的EINT4发生中断。

二、INTMOD 中断模式寄存器,每一位与SRCPND中各位对应。0--IRQ模式,1--FIQ模式,默认初始化全0. 每次只能对一个中断源置成FIQ,所以每次只能对INTMOD中的一位置

1. FIQ中断优先级比IRQ高。

三、INTMSK 中断屏蔽寄存器,每一位与SRCPND中各位对应。0--未屏蔽,1--屏蔽中断请求,默认初始化全1.

四、INTSUBMSK、SUBSRCPND是副中断源引脚寄存器,使用情况与主中断源类似。

TQ2440板上将4个按键K1~K4分别接在4个外部中断口上:

K1 ---- EINT1(GPF1)

K2 ---- EINT4(GPF4)

K3 ---- EINT2(GPF2)

K4 ---- EINT0(GPF0)

K5 ---- EINT5(GPF5)外接单片机的I/O口

主程序里初始化:void KeyScan_Test(void); 之后while(1) ;

void KeyScan_Test(void)

{

Uart_Printf("\nKey Scan Test, press ESC key to exit !\n");

rGPBUP = rGPBUP & ~0x03f0|0x03f0; // LED [8:5] => PU En

rGPBCON = rGPBCON & ~0x3d57fc|0x3d57fc; //LED[8:5] => OUTPUT;

rGPFCON=rGPFCON & (~((3<<4)|(3<<0)|(3<<8)|(3<<2))) | ((2<<4)|(2<<0)|(2<<8)|(2<<2)) ;

//将GPF的5个口设置为ENT0 ENT1 ENT2 ENT4 EINT5(10为外部中断)

rEXTINT0 &= ~(7|(7<<4)|(7<<8)|(7<<16));

rEXTINT0 |= (0|(0<<4)|(0<<8)|(0<<16)); //设置ENT0 ENT1 ENT2 ENT4 ENT5触发条件为上升沿和下降沿触发:

//000 -- 低电平触发001 -- 高电平触发01x -- 下降沿触发

//10x -- 上升沿触发11x -- 上升沿和下降沿都触发

rEINTPEND |= (1<<4); //写1清rEINTPEND 的EINT4位无0-3位

rEINTMASK &= ~(1<<4); //enable eint 4

ClearPending(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);

pISR_EINT0 = pISR_EINT1 = pISR_EINT2 = pISR_EINT4_7 = (U32)Key_ISR;

EnableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);

while( Uart_GetKey() != ESC_KEY ) ;

DisableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7); }

U8 Key_Scan( void )

{

Delay( 80 ) ;

if( (rGPFDA T&(1<< 0)) == 0 )

{

rGPBDAT = rGPBDAT & ~(LED4); //亮LED4

return 4 ;

}

else if( (rGPFDA T&(1<< 2)) == 0 )

{

rGPBDAT = rGPBDAT & ~(LED3); //亮LED3

return 3;

}

else if( (rGPFDA T&(1<<4)) == 0 )

{

rGPBDAT = rGPBDAT & ~(LED2); //亮LED2

return 2 ;

}

else if( (rGPFDA T&(1<< 1)) == 0 )

{

rGPBDAT = rGPBDAT & ~(LED1); //亮LED1

return 1 ;

}

else

{

rGPBDAT = rGPBDAT & ~0x1e0|0x1e0; //LED[8:5] => 1;

return 0xff;

}

}

static void __irq Key_ISR(void)

{

U8 key;

U32 r;

EnterCritical(&r);

if(rINTPND==BIT_EINT1)//判断为何用rINTPND具体见上文分析

{

//Uart_Printf("eint1\n");

ClearPending(BIT_EINT1);//清除按键影响

}

if(rINTPND==BIT_EINT4_7)

{

ClearPending(BIT_EINT4_7);

if(rEINTPEND&(1<<4))

{

//Uart_Printf("eint4\n");

rEINTPEND |= 1<< 4;

}

}

if(rINTPND==BIT_EINT0)

{

//Uart_Printf("eint0\n");

ClearPending(BIT_EINT0);

}

if(rINTPND==BIT_EINT2)

{

//Uart_Printf("eint2\n");

ClearPending(BIT_EINT2);

}

key=Key_Scan();

if( key == 0xff )

Uart_Printf( "Interrupt occur... Key is released!\n") ;

else

Uart_Printf( "Interrupt occur... K%d is pressed!\n", key) ;

ExitCritical(&r);

}

实验结果:

选择4,测试4 个按键的功能

Key Scan Test, press ESC key to exit !

Interrupt occur... K1 is pressed!

Interrupt occur... K1 is pressed!

Interrupt occur... Key is released!

Interrupt occur... Key is released!

Interrupt occur... K3 is pressed!

Interrupt occur... Key is released!

Interrupt occur... Key is released!

南邮广播电视工程数字视频非线性编辑制作课程设计实验报告定稿版

南邮广播电视工程数字视频非线性编辑制作课 程设计实验报告精编 W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

通信与信息工程学院 2016 / 2017 学年第一学期 课程设计实验报告 模块名称数字视频非线性编辑制作 专业广播电视工程 学生班级 B130114 学生学号 学生姓名陈超 指导教师姚锡林 日期: 2016 年 11 月 21 日 摘要 本次课程设计利用软件premiere进行数字视频非线性编辑制作。本文首先就本次实验主题归纳总结电视节目制作一般流程方法,接着对此次课程设计主要软件工具进行系统介绍,主要涉及实验相关借本操作的详细阐述;接下来两大章节部分先从取材、构思角度详细分析此次课程设计所做的主题内容与规划,并以此为指导再从具体操作上分步骤、多角度实现视频序列的制作;最后对本次课程设计的体味与收获进行思考。 此次作品《再次出发》电影鉴赏是将导演约翰卡尼的一部经典音乐影视作品利用premiere软件,在制作的过程中添加了转场特效,关键帧,字幕,音频等功能,并运用多种素材,重新删减编辑,形成一部情节连贯,内容完整、主题明确的电影鉴赏短片。短片的片长时间为9分40秒,大小为720*576,AVI格式,PAL制式(48Khz)。

关键词:数字视频非线性编辑制作;premiere;视频制作;

目录 第一章电视节目制作的一般流程与方法 (1) 1.1 电视节目制作一般流程 (1) 1.1.1 前期制作流程 (1) 1.1.2 后期制作工作流程 (2) 1.2 电视节目制作的一般方法 (2) 1.2.1 ENG方式 (2) 1.2.2 EFP方式 (2) 1.2.3 ESP方式 (3) 第二章 Premiere的功能介绍及操作方法 (4) 2.1 Premiere概述 (4) 2.1.1 概述 (4) 2.1.2 基本操作界面 (4) 2.2 Premiere的基本操作 (5) 2.2.1 新建项目 (5) 2.2.2 新建序列 (6)

【原创】南京邮电大学 课程设计 Wilkinson(威尔金森)功分器的设计

南京邮电大学电子科学与工程学院电磁场与无线技术Wilkinson功分器 课题报告 课题名称 Wilkinson功分器 学院电子科学与工程学院 专业电磁场与无线技术 班级 组长 组员 开课时间 2012/2013学年第一学期

一、课题名称 Wilkinson(威尔金森)功分器的设计 二、课题任务 运用功分器设计原理,利用HFSS软件设计一个Wilkinson功分器,中心工作频率3.0GHz。 ?基本要求 实现一个单阶Wilkinson等功分设计,带内匹配≤-10dB,输出端口隔离≤-10dB,任选一种微波传输线结构实现。 ?进阶要求 多阶(N≥2),匹配良好(S11≤-15dB),不等分,带阻抗变换器(输出端口阻抗 不为50Ω),多种传输线实现。 三、实现方式 自选一种或者多种传输线实现,如微带线,同轴线,带状线等,要求输入输出端口阻抗为50Ω,要求有隔离电阻(通过添加额外的端口实现) 四、具体过程 1.计算基本参数 通过ADS Tool中的Linecalc这个软件来进行初步的计算。 在HFSS中选定版型为Rogers RT/duroid 5880 (tm),如具体参数下图

50Ω微带线计算 得到选取微带线宽度约为0.67mm。 70.7Ω微带线计算 得到选取微带线宽度约为0.34mm,由于微带线电长度与其宽度没有必然联系,所以两个分支微带线的长度根据具体情况进行更改。

2.绘制仿真模型 微带单阶功分器

◆微带参数:w50:阻抗为50Ω的微带线宽度;w2:两分支线宽度; l1,l2,l3,l4:各部分微带线长度; rad1,rad2:各部分分支线长度(即半环半径) ◆在本例中,需要调整的调整关键参数为w2,rad1,空气腔参数随关键参数相应调 整即可。 ◆根据计算,此处的吸收电阻值应该为100Ω,但是在实际情况中,选取97Ω。 微带多阶功分器

南邮课程设计实验报告

课程设计I报告 题目:课程设计 班级:44 姓名:范海霞 指导教师:黄双颖 职称: 成绩: 通达学院 2015 年 1 月 4 日

一:SPSS的安装和使用 在PC机上安装SPSS软件,打开软件: 基本统计分析功能包括描述统计和行列计算,还包括在基本分析中最受欢迎的常见统计功能,如汇总、计数、交叉分析、分类比较、描述性统计、因子分析、回归分析及聚类分析等等。具体如下: 1.数据访问、数据准备、数据管理与输出管理; 2.描述统计和探索分析:频数、描述、集中趋势和离散趋势分析、分布分析与查看、正态性检验与正态转换、均值的置信区间估计; 3.交叉表:计数;行、列和总计百分比;独立性检验;定类变量和定序变量的相关性测度; 4.二元统计:均值比较、T检验、单因素方差分析; 5.相关分析:双变量相关分析、偏相关分析、距离分析; 6.线性回归分析:自动线性建模、线性回归、Ordinal回归—PLUM、曲线估计; 7.非参数检验:单一样本检验、双重相关样本检验、K重相关样本检验、双重独立样本检验、K重独立样本检验; 8.多重响应分析:交叉表、频数表; 9.预测数值结果和区分群体:K-means聚类分析、分级聚类分析、两步聚类分析、快速聚类分析、因子分析、主成分分析、最近邻元素分析; 10. 判别分析; 11.尺度分析; 12. 报告:各种报告、记录摘要、图表功能(分类图表、条型图、线型图、面积图、高低图、箱线图、散点图、质量控制图、诊断和探测图等); 13.数据管理、数据转换与文件管理; 二.数据文件的处理 SPSS数据文件是一种结构性数据文件,由数据的结构和数据的内容两部分构成,也可以说由变量和观测两部分构成。定义一个变量至少要定义它的两个属性,即变量名和变量类型其他属性可以暂时采用系统默认值,待以后分析过程中如果有需要再对其进行设置。在spss数据编辑窗口中单击“变量视窗”标签,进入变量视窗界面,即可对变量的各个属性进行设置。 1.创建一个数据文件数据 (1)选择菜单【文件】→【新建】→【数据】新建一个数据文件,进入数据编辑窗口。窗口顶部标题为“PASW Statistics数据编辑器”。 (2)单击左下角【变量视窗】标签进入变量视图界面,根据试验的设计定义每个变量类型。

南邮通达数字信号管理A实验报告

南京邮电大学 实验报告 实验名称熟悉MATLAB环境 快速傅里叶变换(FFT)及其应用 IIR数字滤波器的设计 FIR数字滤波器的设计 课程名称数字信号处理A 班级学号___ 14110 _ __ 姓名_______ ___ ___ 开课时间 2015/2016学年,第二学期

实验一熟悉MATLAB环境 一、实验目的 (1)熟悉MA TLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 (1) 数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3,4,5,6],求 C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B 。并用stem语句画出A、B、C、D、

xlabel('n') ylabel('F') subplot(4,1,4) G=A.^B stem(n,G) xlabel('n') ylabel('G') 图像:

(2) 用MATLAB 实现下列序列: a) 08(). 0n 15n x n =≤≤ 实验程序: n=0:1:15; x1=0.8.^n; stem(n,x1) xlabel('n') ylabel('x(n)') title('2(a)') 图像:

b) 023(.)() 0n 15j n x n e +=≤≤ 实验程序: n=0:1:15; i=sqrt(-1); a = 0.2+3*i; x2=exp(a*n); figure subplot(1,2,1) stem(n,real(x2)) xlabel('n') ylabel('x(n)实部') subplot(1,2,2) stem(n,imag(x2)) xlabel('n') ylabel('x(n)虚部') 图像:

南邮单片机实验报告

南邮单片机实验报告 篇一:南邮数据库实验报告 数据库实验报告 ( XX / XX 学年第二学期)? ? 学号 姓名 指导教师 成绩 一、数据库原理第一次实验 【一】实验内容: 数据库表的建立与管理【二】、实验目的: 学习数据库及表的建立、删除、更新等操作。 注:本次实验题目,除了特殊要求,以T-SQL为主,并将所有语句标注好题号,留存在查询界面上,方便检查。【三】、实验题目及其解答: 1、创建一名为‘test’的数据库; CREATE DATABASE test 2、在“test”数据库中新建一张部门表“部门”,输入列:name(char,10位),ID(char,7位),manager (char,10位)各列均不能为空值。

Solution: use test CREATE TABLE 部门 (ID CHAR(7) NOT NULL,name CHAR(10) NOT NULL,manager CHAR(10) NOT NULL) 结果: 3、在“test”数据库中新建一张员工表,命名为 “员工”。在表中输入以下各列: name(char,10位),personID(char,7位),Sex(char,7位),birthday(datetime),deptID(char,7位),各列均不能为空值。 CREATE TABLE 员工 (name CHAR(10) NOT NULL, personID CHAR(7) NOT NULL, sex CHAR(7) NOT NULL, birthday datetime NOT NULL, deptID CHAR(7) NOT NULL) 结果: 4、修改表的操作练习: 1)将‘部门’表中的列ID设为主键; 2)将‘员工’表中personID设为主键,并将deptID设置为外键,关联到‘部门’表上的‘ID’列; 3)在‘部门’表中,添加列quantity(char, 5); 4) 删除‘员工’表中的列‘sex’; 5)修改‘员工’表中列name为(varchar,8) ALTER TABLE 部门 ADD CONSTRAINT C1 PRIMARY KEY(ID) ALTER TABLE 员工ADD CONSTRAINT C2 PRIMARY

南邮课程设计电子钟CCS VC5509

通信与信息工程学院 2016 /2017 学年第 1 学期 课程设计报告 模块名称DSP技术及应用 专业电子信息工程 学生班级 学生学号 学生姓名 指导教师王奇王明伟吴庆国卢敏

目录 一、设计任务及要求 (4) 1.1 设计电子时钟,要求有报时功能。 (4) 1.2 显示器用液晶显示屏,报时可用蜂鸣器完成。 (4) 二、相关原理简介 (4) 2.1 液晶显示器显示原理 (4) 2.1.1 EMIF 接口 (4) 2.1.2 液晶显示模块的访问 (4) 2.1.3 显示控制方法 (4) 2.1.4 数据信号的传送 (5) 2.1.5 程序流程图 (5) 2.2 音频信号发生原理 (6) 2.2.1 EMIF 接口 (6) 2.2.2 蜂鸣器 (6) 2.2.3 蜂鸣器的连接 (6) 2.2.4 程序流程图 (6) 三、设计方案与实现 (6) 3.1 设计方案 (6) 3.1.1 数字时钟选择方案 (6) 3.1.2 液晶显示屏显示方案 (8) 3.1.3 蜂鸣器整时报时 (8) 3.2 设计结果 (8) 四、调试过程及问题解决 (8) 五、体会与建议 (9) 参考文献 (9) 附录 (10)

DSP技术及应用课程设计报告 一、设计任务及要求 1.1 设计电子时钟,要求有报时功能。 1.2 显示器用液晶显示屏,报时可用蜂鸣器完成。 二、相关原理简介 2.1 液晶显示器显示原理 2.1.1 EMIF 接口 TMS320C5509DSP 的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。ICETEK-VC5509-A 将这些扩展线引到了板上的扩展插座上供扩展使用。 2.1.2 液晶显示模块的访问 液晶显示模块的访问、控制是由 5509ADSP 对扩展接口的操作完成。控制口的寻址:命令控制接口的地址为 0x602800,数据控制接口的地址为 0x602801 和0x600802,辅助控制接口的地址为 0x600801。 2.1.3 显示控制方法 液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的象素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与象素的对应方式如表1: 发送控制命令:向液晶显示模块发送控制命令的方法是通过向命令控制接口写入命令控制字,然后再向辅助控制接口写入0。下面是基本命令字、解释和 C

电工电子实验报告-南邮课程设计

目录 第一章技术指标 (2) 1.1 系统功能要求 (2) 1.2 系统结构要求 (2) 1.3 电气指标 (2) 1.4 设计条件 (2) 第二章整体方案设计 (2) 2.1 整体方案 (2) 2.2 整体原理及方框图 (2) 第三章单元电路设计 (4) 3.1 频率控制电路设计 (4) 3.2 计数器设计(256) (5) 3.3 存储器及正弦函数表 (6) 3.4 D/A(II)正弦波产生电路 (7) 3.5幅度控制 (8) 3.6 阻抗控制 (9) 3.7整体电路图 (9) 3.7 整体元件清单(理论值) (9) 第四章测设与调整(数据) (11) 4.1 频率控制电路调测 (11) 4.2 地址计数器电路调测如下: (11) 4.3 存贮器电路调测(R=1千欧) (11) 4.4 数字幅度电路调测 (11) 4.5 波形扩展 (11) 4.6 整体指标测试 (12) 第五章设计小结 (13) 5.1电子电路课程设计的意义 (13) 5.2 设计任务完成情况 (13) 5.3 问题及改进 (13) 5.4 心得体会 (14) 附录 (15) 参考文献 (15) 主要芯片介绍: (15)

第一章技术指标 1.1 系统功能要求 数控正弦函数信号发生器的功能是,用数字电路技术产生正弦波信号。正弦波输出信号的频率和电压幅度均由数字式开关控制。 1.2 系统结构要求 数控正弦波信号发生器的结构要求如图(1)所示,其中正弦波发生器采用数字电路产生正弦信号,频率选择开关用于选择输出信号的频率,幅度选择开关用于选择输出信号电压幅度。频率选择开关和幅度选择开关均应采用数字电路。 1.3 电气指标 输出信号波形:正弦波 输出信号频率范围:1kHz~5kHz 输出信号最大电压:2.8V (峰峰值) 输出阻抗:50Ω 幅度选择档位:5档 波形可选择:方形,正弦波,三角波,斜波 输出频率最小步长:20Hz 1.4 设计条件 电源条件:+5V,-5V ?可供选择器件如下: ?型号名称及功能数量 ?DAC0832 8位D/C转换电路 2 ?MC4046 锁相电路 1 ?28C64B EEPROM存储器 1 ?T4LS393 双16进制计数器 1 ?MC4051 四模拟开关 1 ?TL084 运算放大器 1 ?8路开关双制直插式微型开关 2 ?MC4060 与晶振为频率器 1 ?CD7474 双D型触发器 3 ?CD7404 六反向器 1 ?74139 译码器 2 ?LED 二极管12 ?单开关开关 3 ?晶振32768k 1 ?其他若干电阻,电容 第二章整体方案设计 2.1 整体方案 事先对正弦波进行取样,把各个取样点的取样值存入存储器构成正弦函数表(可以存入一个周期完整信号,也可以存入半个周期或1/4周期)。通过数字频率控制电路对正弦函数表的读取,再把读出的取样值取出还原成原始的正弦信号。 2.2 整体原理及方框图

南邮通达电力系统实验报告

单机无穷大系统稳态实验: 一、整理实验数据,说明单回路送电和双回路送电对电力系统稳定运行的影 响,并对实验结果进行理论分析: 实验数据如下: 由实验数据,我们得到如下变化规律: (1)保证励磁不变的情况下,同一回路,随着有功输出的增加,回路上电流也在增加,这是因为输出功率P=UIcos ,机端电压不变所以电流随着功率的增加而增加; (2)励磁不变情况下,同一回路,随着输出功率的增大,电压损耗在增大;这是由于电压降落△U=(PR+QX)/U,而横向分量较小,所以电压损耗也随着输出功率的增大而增大。 单回路供电和双回路供电对电力系统稳定性均有一定的影响,其中双回路要稳定一些,单回路稳定性较差。 二、根据不同运行状态的线路首、末端和中间开关站的实验数据、分析、比较运行状态不同时,运行参数变化的特点和变化范围。 由实验数据,我们可以得到如下结论: (1)送出相同无功相同有功的情况下:单回路所需励磁电压比双回路多,线路电流大小相等,单回路的电压损耗比双回路多;(eg.P=1,Q=0.5时) (2)送出相同无功的条件下,双回路比单回路具有更好的静态稳定性,双回路能够输送的有功最大值要多于单回路; 发生这些现象的原因是:双回路电抗比单回路小,所以所需的励磁电压小一些,电压损耗也要少一些,而线路电流由于系统电压不改变;此外,由于电抗越大,稳定性越差,所以单回路具有较好的稳定性。 三、思考题: 1、影响简单系统静态稳定性的因素是哪些? 答:由静稳系数S Eq=EV/X,所以影响电力系统静态稳定性的因素主要是:系统元件电抗,系统电压大小,发电机电势以及扰动的大小。 2、提高电力系统静态稳定有哪些措施? 答:提高静态稳定性的措施很多,但是根本性措施是缩短"电气距离"。 主要措施有:

arm嵌入式课程开发试验设计报告-南京邮电大学钱晨

通信与信息工程学院2015/2016 学年第一学期课程设计实验报告 模专块名称 业 ARM 嵌入式开发 电子信息工程 学生班级学生学号学生姓名

指导教师余雪勇

实验内容 一、基本要求 在基本要求中,需要从11 个测试程序中选做8 个,以下是对8 个程序的实验过程的叙述,包括实验前的硬件连接准备、软件环境配置(串口工具、dnw、ADS、交叉编译环境等)、每个实验的关键代码以及简单分析。 1、硬件连接 用USB 线、串口线把开发板连到电脑相应的端口,再将电源线插好。 2、软件环境配置 设置串口工具SecureCRT 解压在“windows 平台开发工具包\”目录下的“SecureCRT.rar”后,即可使用SeureCRT,双击图标,打开SecureCRT,如下图所示: 点击图中红色方框图标,出现下图的设置窗口:

在 Ptotocol 里面选择 Serial,出现如下图所示的对话框,详细设置 参考下图,超级终端设置部分,不再重复。 注意:Port 选项部分根据您实际使用的端口进行配置,其他选项请一 定配置如下图所示。 配置完毕后,点击上图的“Connect”选项即可连通串口。 DNW 设置 DNW 在这里是我们的.bin 文件下载软件,可实现我们向 flash 或者内存当中烧写程序的功能。 直接双击“Windows 平台工具\DNW”目录下的DNW 软件,出现下图: (1)点击“Configuration”菜单的“Options”,出现“UART\USB

Options”配置 (2)配置如下图: 3、实验前准备 串口工具和开发板连接成功后,将选择开关打到norflash,并按一下重启键,开发板则自动按照选择从norflash 启动。此时,如果 SecureCRT 界面显示如下,则表示串口工具已经工作正常: 一般出厂光盘里面已经有许多bin 文件了,其中包括我们此处所说的 TQ2440_Test 的bin 文件。我们也可以参考以下步骤,使用ADS1.2 生成自己的“*.bin”文件。 (1)、安装ADS1.2(ARM Developer Suite v1.2,一款针对ARM 的开发套件),并使用ADS打开天嵌科技的出厂自带的测试程序。 (2)、点击compile 键进行编译,点击make 键生成我们此处所需要的“*.bin”文件生成自己的 bin 文件之后,就可以使用SecureCRT 配合dnw 来实现对bin 文件的下载了:操作步骤其实和上面烧写出厂程序一样,在此再详细叙述一下:

南京邮电大学matlab软件设计(超详细).doc

南京邮电大学通信学院 软件课程设计 实验报告 模块名称:___MATLAB软件设计 专业班级:__通信工程 姓名:____ ____ 学号:___ 实验日期:2013年 6 月 17—28日实验报告日期: 2013 年 7 月 1 日

一、要求练习的实验部分 1.在时间区间 [0,10]中,绘出t e y t 2cos 15.0--=曲线。 程序: t=0:0.1:10; y=1-exp((-0.5)*t).*cos(2*t); plot(t,y,'r-'); shg 结果: 2. 写出生成如图E2-1所示波形的MA TLAB 脚本M 文件。图中虚线为正弦波,要求它的 负半波被置零,且在2 3 处被削顶。 程序: t=linspace(0,3*pi,500); y=sin(t); a=sin(pi/3); z=(y>=0).*y; z=(y>=a).*a+(y

xlabel('t'),ylabel('z=f(t)'),title('逐段解析函数') legend('y=sin(t)','z=f(t)',4),hold off 结果: 3. 令???? ??????=987654321A ,运行 [U,S,V]=svd(A);tol=S(1,1)*3*eps; 然后回答以下问题: (1) sum(diag(S)>tol) - rank(A) 是多少 ? (2) S(1,1) - norm(A) = 0 是多少 ? (3) sqrt(sum(diag(S*S))) - norm(A,'fro') 的结果是什么 ? (4) S(1,1)/S(3,3) - cond(A) 的结果是什么 ? (5) S(1,1)*S(2,2)*S(3,3) - det(A) < tol 的运行结果是什么? (6) V(:,1)'*null(A) 得到什么结果 ? (7) abs(A*null(A)) < tol 得到什么结果 ? (8) U(:,1:2) = = orth(A) 的运行结果是什么 ? 程序: clear; clc; disp('设 A=[1,2,3;4,5,6;7,8,9],得')

(完整word版)南邮通达数据结构B期末试卷及答案,推荐文档

《 数据结构B 》期末试卷(A ) 本试卷共 4 页; 考试时间 110 分钟; 专业 班级 学号 姓名 一、填空题(20分,共10题) 1. 数据结构主要研究数据的______结构,数据的存储结构以及在数据上执行的运算。 2. 设顺序表长度为100,若下标从0开始计,则删除元素a 10需要移动______个元素。 3. 一棵二叉树中,若叶结点的个数为2011,则度为2的结点个数为______。 4. 有向图进行拓扑排序时,没有输出图中所有顶点,说明图中存在______。 5. 线性表采用二分搜索必须满足两个条件:线性表关键字必须是______;存储结构 必须采用顺序存储结构。 6. 二叉搜索树的______序遍历序列是一个按关键字递增排列的有序序列。 7. 设有一组记录的关键字为{19, 14, 1, 69, 20, 27, 55, 79},散列函数为h(key) = key%11,散列函数值为3的有______个。 8. 快速排序算法平均情况下的渐近时间复杂度为O(______)。 9. 采用二次探查法解决冲突可能产生_______聚集。 10. 图常见的两种存储结构有邻接矩阵和_______。 二、选择题(20分,共10题) 1. 一个算法必须在执行有穷步之后结束。这是算法的_______。 A. 有穷性 B. 正确性 C. 确定性 D. 可行性 2. 在指针p 所指示的结点之后插入新结点s 的操作是_______。 A. s->link=p;p->link=s; B. s->link=p->link;p->link=s; C. s->link=p->link;p=s; D. p->link=s;s->link=p; 3. 栈和队列的共同点是_______。 A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 4. 后缀表达式:5 3 2 * 3 + 3 / +的值为_______。 A. 18 B. 7 C. 9 D. 8 装 订 线 内 不 要 答 题 自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊

课程设计电工实践报告

新疆大学 实习(实训)报告 实习(实训)名称:电工技能实践 学院:电气工程学院 专业、班级:电气15-3班 指导教师:娄毅力报告人: 学号: 时间:2017年6月19日

1 电机的启动和点动 1.1目的要求 a.通过操作加深对电机启动原理的理解 b.能正确连线,并安全启动 1. 2线路图 电机启动电路图 主电路: (1)隔离开关QS (2)熔断器FU (3)接触器KM1的常开主触点 (4)电动机M 控制电路 (1)开关SB3、SB1和SB2 (2)接触器KM1线圈的常开辅助触点 (3)SB2的常闭触头 1.3启动原理

在定子绕组上通三相交流电,定子绕组内(结合定子铁心)就会产生旋转磁场,当磁力线切割转子绕组时,转子绕组会在电磁感应作用下产生电流,结果就形成自己的磁场。在定子磁场与转子磁场相互作用时,转子就随定子磁场旋转而转动。(电动机就启动了)电能---------磁能------电磁感应------电能------磁能。磁能与磁能相互作用。电能就转变成机械能。 1.4步骤 1)起动电动机合上三相隔离开关QS,合上开关SB3、SB1、SB2常开触点, 接触器KM1吸引线圈得电,3对常开主触点闭合,将电动机M接入电源,电动 机开始起动。 2)停止电动机断开开关SB1,SB2常开触点,接触器KM1的线圈失电,其主触点和辅助触点均断开,电动机脱离电源,停止运转。 1.5实际接线图

电机启动实物图 2 三相异步电动机的正反转 2.1目的要求 a.通过操作加深对电机启动原理的理解; b.能正确连线,并安全启动; 2.2线路图 由两条启动支路构成,且在对方支路中相互串联上彼此的常闭辅助触头,使一个接触器线圈得电吸合后另一个接触器因所串联的常闭辅助触头断开而受到制约无法得电,保证了KM1,KM2不能同时得电,从而可靠地避免了两相电源短路事故的发生,电路安全、可靠。这种在一个接触器得电动作时通过其常闭辅

南邮大四课程设计

一、EMIF 接口上的I/O接口扩展 一.实验原理 1.TMS320VC5509DSP 的EMIF 接口: 存储器扩展接口(EMIF)是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和寄存器映射的外设。 -ICETEK-VC5509-A 评估板在EMIF 接口上除了扩展了片外SDRAM 外,还扩展了指示灯、DIP 开关和D/A 设备。具体扩展地址如下: 400800-400802h:D/A 转换控制寄存器 400000-400000h:板上DIP 开关控制寄存器 400001-400001h:板上指示灯控制寄存器 -与ICETEK-VC5509-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主要设备: 602800-602800h:读-键盘扫描值,写-液晶控制寄存器 600801-600801h:液晶辅助控制寄存器 602801h 、600802h:液晶显示数据寄存器 602802-602802h:发光二极管显示阵列控制寄存器 2.指示灯扩展原理 3.实验程序流程图:

二.实验步骤 1.实验准备: 关闭实验箱上扩展模块和信号源电源开关。 2.设置Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。 3.启动Code Composer Studio 2.21: 选择菜单Debug→Reset CPU。 4.打开工程文件: 工程文件为:C:\ICETEK-VC5509-EDULab\Lab0301-LED\LED.pjt。 打开源程序LED.c。 5.编译、下载程序。 6.运行程序,观察结果。 7.退出CCS: 三.部分程序代码 // 定义指示灯寄存器地址和寄存器类型 #define LBDS (*((unsigned int *)0x400001)) // 子程序接口 void Delay(unsigned int nDelay); // 延时子程序 int i; main() { unsigned int uLED[4]={1,2,4,8}; // 控制字,逐位置1: 0001B 0010B 0100B 1000B CLK_init(); // 初始化DSP运行时钟 SDRAM_init(); // 初始化EMIF接口 while ( 1 ) {

南邮软件工程课程设计实验报告-教务管理系统

南京邮电大学 实验报告 课程名称:软件工程 课题名称教务系统课程设计 专业:广播电视工程 学生姓名:陈超 班级学号:B13011413 指导教师:范山岗 日期:2015 年12 月25 日

实验面象对象软件设计 一、实验目的 用面象对象方法设计实用软件,掌握需求分析方法,掌握掌握UML设计方法。 二、实验性质 验证、设计实验。 三、实验要求 1、选定题目编写需求分析说明 2、学习Rational Rose环境 3、学习通过Rational Rose绘制各类框图的方法。 四、环境简介 1、Rational Rose可视化环境组成 Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。

图1-1:Rose界面 浏览器:用于在模型中迅速漫游。 文档工具:用于查看或更新模型元素的文档。 工具栏:用于迅速访问常用命令。 框图窗口:用于显示和编辑一个或几个UML框图。 日志:用于查看错误信息和报告各个命令的结果。 1.2浏览器和视图 浏览器是层次结构,用于在Rose模型中迅速漫游。在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等。浏览器中包含四个视图:Use Case 视图、Logical视图、Component视图和Deployment视图。点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。 1.3框图窗口 在框图窗口中,我们可以浏览模型中的一个或几个UML框图。改变框图中

的元素时,Rose自动更新浏览器。同样用浏览器改变元素时,Rose自动更新相应框图。这样,Rose就可以保证模型的一致性。 五、实验步骤 1、编写需求分析说明书 对系统需求进行初步的整理与分析,是后续建模和设计工作的基础。需求分析说明书详情请见附录。 2、用UML语言对系统进行分析与建模(OOA) 2.1建立用例图use case diagram 从用例图中我们可以看到系统干什么,与谁交互。用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。一个系统可以创建一个或多个用例图。 实例: 1)教务管理系统主要用例图。 用例图说明:教务管理系统主要用例图实现三个主要参与者——管理员、教师与学生和系统六大主要用例——登陆管理、账号管理、班级管理、课程管理、选课管理、成绩管理之间的关系。管理员主要参与用例账号管理、课程管理与班级管理;教师主要涉及用例选课管理与成绩管理;而参与者学生主要参与选课管理与成绩管理,其中登陆管理是三个主要参与者共同参与的用例。

数字钟实验报告

EDA技术课程设计 ——多功能数字钟 学院:城市学院 专业、班级:电子C154 姓名:高阳夏岩 学号:158102 58128 指导老师:安亚军 2017年12月

一实验目的 1、具有时、分、秒记数显示功能,以24小时循环计时。 2、要求数字钟具有清零、调节小时、分钟功能。 3、具有整点报时,整点报时的同时LED灯花样显示 二实验原理 1时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号 三实验内容 1时钟记数部分 1)小时部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下

2)分钟部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 3)秒部分 其VHDL描述如下

编译,无误。 经仿真,其波形如下 2整点报时部分,其VHDL描述如下 编译,无误。

经仿真,其波形如下 3驱动8位八段共阴扫描数码管的片选驱动信号输出部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 4驱动八段字形译码输出部分 该模块功能:信号输入后,模块驱动八段字形译码输出,A,B,C,D,E,F,G分别接八段共阴级数码管7个接口,即有字形输出。

南京邮电大学-课程设计报告Ⅱ

南京邮电大学管理学院课程设计报告 课程名:课程设计Ⅱ-网站设计与开发 网站题目:网上机票订购系统 任课教师:洪小娟 专业:信息管理与信息系统 学号: 姓名: 成绩: 2016/2017学年第2学期 南京邮电大学管理学院

指导教师成绩评定表

一、需求分析 网上机票订购系统 该网上机票订购系统的核心功能是提供网上机票订购业务。 用户需求分析 用户最基本需求就是查询到合适目的地、合适起飞时间的机票信息,并且能够下订单,下完订单后能够查到已经订购的机票的订单信息。如果用户需要改变行程可以删除订单,然后重新下订单。 用户还有注册帐号,填写个人信息的需求,这样才能把用户与机票信息相匹配,生成机票订单。 二、系统设计 数据库设计:数据库名为shop 用户信息表(表名:users)主要储存用户帐号、密码和其他一些基本信息。 图2-1 users表属性 航班信息表(表名:filght)储存航班号,飞机型号,出发地、目的地,起飞时间、到达时间、机票价格等信息。 图2-2 filght表属性 订单信息表(表名:orders)OrderID为订单号,设置为自增属性,储存航班号、用户ID、总价格、起飞日期等信息。 图2-3 orders表属性 功能设计:

用户登录功能:没有注册的用户需要注册,填写一些个人信息,然后记录到数据库中。 用户密码修改功能,用在修改密码时需要先输入原密码,才能输入新的密码,原密码不对无法修改。 机票查询功能,用户可以查询到所有航班信息,也可以通过搜索航班号,目的地,起飞时间来查询特定的航班信息。 机票订购功能,在输入航班日期后会生成预览订单,提交后才会产生真正的订单,才能在订单页面看得到。 订单查询和删除功能,在这个页面,用户可以查到自己的订单。如果用户行程有变,可以删除订单。 网站架构: 网站的架构我主要做了前端机票展示和订购的机票部分,有以下模块组成。如下图

南邮广播电视工程数字视频非线性编辑制作课程设计实验报告

南邮广播电视工程数字视频非线性编辑制作课程设计实验报告 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

通信与信息工程学院 2016 / 2017 学年第一学期 课程设计实验报告 模块名称数字视频非线性编辑制作 专业广播电视工程 学生班级 B130114 学生学号 学生姓名陈超 指导教师姚锡林 日期: 2016 年 11 月 21 日 摘要 本次课程设计利用软件premiere进行数字视频非线性编辑制作。本文首先就本次实验主题归纳总结电视节目制作一般流程方法,接着对此次课程设计主要软件工具进行系统介绍,主要涉及实验相关借本操作的详细阐述;接下来两大章节部分先从取材、构思角度详细分析此次课程设计所做的主题内容与规划,并以此为指导再从具体操作上分步骤、多角度实现视频序列的制作;最后对本次课程设计的体味与收获进行思考。 此次作品《再次出发》电影鉴赏是将导演约翰卡尼的一部经典音乐影视作品利用premiere软件,在制作的过程中添加了转场特效,关键帧,字幕,音频等功能,并运用多种素材,重新删减编辑,形成一部情节连贯,内容完整、主题明确的电影鉴赏短片。短片的片长时间为9分40秒,大小为720*576,AVI格式,PAL制式(48Khz)。

关键词:数字视频非线性编辑制作;premiere;视频制作;

目录 第一章电视节目制作的一般流程与方法 (1) 电视节目制作一般流程 (1) 前期制作流程 (1) 后期制作工作流程 (2) 电视节目制作的一般方法 (2) ENG方式 (2) EFP方式 (2) ESP方式 (3) 第二章 Premiere的功能介绍及操作方法 (4) Premiere概述 (4) 概述 (4) 基本操作界面 (4) Premiere的基本操作 (5) 新建项目 (5) 新建序列 (6) 导入素材 (6) 基本的视频编辑操作 (6) 第三章电视节目素材的准备及节目构思 (10) 节目构思 (10) 概念 (10) 具体构思 (10)

南邮课程设计电子钟CCSVC55

通信与信息工程学院2016 /2017 学年第1 学期 课程设计报告 模块名称DSP技术及应用专业电子信息工程 学生班级 学生学号 学生姓名 指导教师王奇王明伟吴庆国卢敏

目录 一、设计任务及要求 (4) 1.1 设计电子时钟,要求有报时功能。 (4) 1.2 显示器用液晶显示屏,报时可用蜂鸣器完成。 (4) 二、相关原理简介 (4) 2.1 液晶显示器显示原理 (4) 2.1.1 EMIF 接口 (4) 2.1.2 液晶显示模块的访问 (4) 2.1.3 显示控制方法 (4) 2.1.4 数据信号的传送 (5) 2.1.5 程序流程图 (5) 2.2 音频信号发生原理 (6) 2.2.1 EMIF 接口 (6) 2.2.2 蜂鸣器 (6) 2.2.3 蜂鸣器的连接 (6) 2.2.4 程序流程图 (6) 三、设计方案与实现 (6) 3.1 设计方案 (6) 3.1.1 数字时钟选择方案 (6) 3.1.2 液晶显示屏显示方案 (8) 3.1.3 蜂鸣器整时报时 (8)

3.2 设计结果 (8) 四、调试过程及问题解决 (8) 五、体会与建议 (9) 参考文献 (9) 附录 (10)

DSP技术及应用课程设计报告 一、设计任务及要求 1.1 设计电子时钟,要求有报时功能。 1.2 显示器用液晶显示屏,报时可用蜂鸣器完成。 二、相关原理简介 2.1 液晶显示器显示原理 2.1.1 EMIF 接口 TMS320C5509DSP 的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。ICETEK-VC5509-A 将这些扩展线引到了板上的扩展插座上供扩展使用。 2.1.2 液晶显示模块的访问 液晶显示模块的访问、控制是由5509ADSP 对扩展接口的操作完成。控制口的寻址:命令控制接口的地址为0x602800,数据控制接口的地址为 0x602801 和0x600802,辅助控制接口的地址为0x600801。 2.1.3 显示控制方法 液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的象素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与象素的对应方式如表1:

南京邮电大学 通达学院 51 protues 课程设计 简易电子琴 实验报告

通达学院 2013 /2014 学年第一学期课程设计II实验报告 模块名称PROTEUS51 专业 学生班级 学生学号 学生姓名 指导教师

一、本系统的目的 本系统设计制作一个可演奏的电子琴。综合应用了两项设计。 (1)键盘矩阵识别,通过按键控制播放14个音阶并显示。 (2)通过控制开关完成事先写入歌曲的播放。 二、主要芯片简介 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 8255是常用的扩展单片机IO资源的芯片,8255原理是只利用单片机的一个并行口来扩展出几个并口,使得单片机可以接入更多的设备 三、系统组成 本系统只要以51单片机为主控核心,8255IO外扩、与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:

四、系统工作原理 本系统扫描键盘矩阵、显示当前状态及音阶、扬声器发出对应音符或音乐。 4X4行列式非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。用8255H的PC口接4×4矩阵键盘,以PC0-PC3为输出线以PC4-PB7为输入线,PA与PB与数码管相连,PA为段选,PB为位选。 五、硬件总体设计 本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:

相关文档
最新文档