文档库 最新最全的文档下载
当前位置:文档库 › ARM体系结构实验报告

ARM体系结构实验报告

ARM体系结构实验报告
ARM体系结构实验报告

目录

1 绪论-------------------------------------------------------------1

2 课程设计的目标---------------------------------------------------2

3 课程设计的意义---------------------------------------------------2

4 需求分析---------------------------------------------------------2

5 概要设计---------------------------------------------------------3

5.1存储模块设计------------------------------------------------3

5.2音频解码模块设计--------------------------------------------4

5.3 液晶显示模块设计--------------------------------------------5

6 相关技术说明-----------------------------------------------------5

6.1 VS1003 的初始化---------------------------------------------5

6.2 MP3文件数据写入-------------------------------------------- 7 7详细设计----------------------------------------------------------9

7.1 SD模块------------------------------------------------------9

7.2 VS1003模块-------------------------------------------------14

7.3 图形人机交互模块-------------------------------------------16

8 总结-------------------------------------------------------------16

绪论

随着消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户。电脑的形态也不再局限于以前的PC机,各式各样的嵌入式系统出现在了众多的行业和应用中,其中ARM和Linux结合的产品在市场上最受青睐。ARM由于其低功耗、高性能、小体积、低成本受到了越来越广泛的重视,成为众多公司产品开发的主流硬件。而Linux则因其开放的源代码,可裁剪的内核,便利的开发环境,各硬件平台的通用性,逐渐成为嵌入式开发的主流操作系统。本课题的嵌入式MP3设计就是基于ARM和linux平台的。

本课题实现了一个完整的嵌入式系统,选用zq2410开发板为目标平台,linux作为目标操作系统,在这样的软硬件环境下研究实现MP3播放器。文章首先综述了嵌入式系统开发方法,介绍了ARM处理器及其特点,Linux操作系统,嵌入式系统的开发模式以及如何搭建交叉开发环境,然后介绍了所选硬件平台zq2410目标板的各种资源,在系统软件开发中,介绍Uboot、Linux的裁剪和移植,根文件系统的制作以及核心驱动程序的开发,应用程序开发中,介绍了MP3的原理,移植Madplay MP3播放器,最后成功对Madplay播放器实现了综合控制。

关键词:嵌入式ARM Linux驱动程序MP3

第一章课程设计的目标

1.通过键盘输入,进入MP3播放器相应的功能选项。

2.MP3播放器具备的功能选项为:播放、暂停、停止、音量控制、音乐下载。

3.MP3播放器响应进入各功能状态时,蜂鸣器蜂鸣。

4.流水灯表示MP3播放器当前所处的功能状态。

5.蜂鸣器蜂鸣声音的大小代表音量的大小,音量控制状态和音乐下载状态可分别与其他3种状态同事存在。

6.数码管数字大小表示执行MP3各功能状态的时间。

第二章课程设计的意义

1.熟悉ARM & ADS V1.2 的环境。

2.理解LPC2131芯片引脚功能的选。

3.理解GPIO的使用设置、输入驱动方法。

4.理解PWM的通信原理,学习ARM PWM资源的通信编程。

5.学习在LPC2131上移植ucosⅡ系统。

第三章需求分析

采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。

MP3播放过程是STM32通过SPI1接口将数据从SD 卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI 接口,以减小干扰和噪声、提高音质。

第四章 概要设计

本系统在硬件上分为6个模块: 微控制器STM32F103、解码模块VS1003、存储模块SD 卡、触摸屏、USB 接口和显示屏LCD 。系统硬件框架如图5所示。 PA3PB13PB14PB15PA1PA2PA0 PE3PA7PA5PA6PC12DREQ

SCLK

SO

SI

CS

DCS

RESET

CD/DAT3

CMD

CLK

DATO

WP

USB LCD 触摸屏VS1003

SD 卡STM32

系统硬件框架图

4.1 存储模块设计

SD 卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD 卡作为其存储设备。SD 卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD 卡支持两种总线方式: SD 方式与SPI 方式。其中SD 方式采用6线制,而SPI 方式采用4线制,采用单片机对SD 卡进行读写时一般都采用SPI 模式。可用不同的初始化方式使SD 卡工作于SD 方式或SPI 方式。

在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。

PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通信时,需要将PE3拉低才能对SD卡进行操作。

PA7:映射为STM32内部接口SPI1的主输出从输入(MOSI)信号线。这里STM32是主设备,SD卡是设备。数据流的传输方向是从STM32传输给SD卡。该信号线用于传输一些控制命令来完成SD卡的操作,如读、写等。

PA5: 已连接到STM32内部接口SPI1的时钟(SCL K)信号线。可设置SPI的时钟频率来调整读取SD卡数据的快慢。

PA6 :已连接到STM32内部接口SPI1的主输入从输出(MISO)信号线。数据的传输方向是从SD卡传输给STM32 ,主要返回SD卡的一些状态、内部寄存器值等。

PC12 :用于检测SD卡是否完全插入。当SD卡完全插入时,PC12为低电平,否则为高电平。

4.2 音频解码模块设计

音频解码模块完成MCU从SD卡里读取的数字MP3音频数据流进行解析、并转化成模拟信号进行输出。在这里,系统使用VS1003音频解码芯片来实现音乐数据流的解析。VS1003是由芬兰VLSI公司出品的一款单芯片的MP3/WMA音频解码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP, 5K的指令ROM, 0.5K的数据RAM,串行的控制和数据输入接口, 4个通用I/O口,一个UART口,同时片内带有一个可变采样速率的ADC、一个立体声DAC以及音频耳机放大器接口。VS1003与核心控制器MSP430F149的数据通信是通过SPI总线方式进行的。VS1003主要通过串行命令接口(SCI)和串行数据接口(SDI)来接收MSP430F149控制器的控制命令和MP3的数据。通过XCS、XDCS引脚的置高、置低来确认是哪一个接口处于传送状态。对于VS1003芯片的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI写入到特定寄存器的内容来实现的。两条SCI指令之间要通过DREQ引脚信号判断上次处理是否完成。

该系统使用STM32 内部接口SPI2 与VS1003 进行通信,下面介绍其引脚连接情况。

PA3 :VS1003 的中断请求引脚。当VS1003 内部数据已处理完毕,需要新的数据时,将DREQ 拉高。STM32根据这个信号来给VS1003 发送新的数据流。

PB13 : 已连接到STM32 内部接口SPI2 的时钟(SCL K) 信号线。

PB14 :已连接到STM32 内部接口SPI2 的主输入从输出(MISO) 信号线。这里STM32 是主设备,VS1003 是从设备。数据流的传输方向是从VS1003 传输给STM32 。主要用于读取VS1003 的一些状态和内部寄存器值,比如寄存器测试返回的内部寄存器的值。

PB15 :已连接到STM32 内部接口SPI2 的主输出从输入(MOSI) 信号线。这里STM32 是主设备,VS1003 是从设备。数据流方向是从STM32 传输给VS1003 ,主要传输给VS1003 一些控制命令、MP3/ WMA 数据流等。

PA1 :低电平有效,如果拉低该引脚,那么通过SPI 传输的是控制信号。控制信号包括读写VS1003 的内部寄存器、对VS1003 进行初始化、设置左右声道音量等。

PA2 :低电平有效,如果拉低该引脚,那么通过SPI 传输的是数据信号。比如在向

VS1003 传输MP3/ WMA 的数据流时需要拉低该引脚。

PA0 :低电平有效,拉低该引脚则硬件复位VS1003 。

4.3 液晶显示模块设计

LCD3310芯片是一个48行84列的液晶显示器主要模块。其内存带有低功耗PCD8544的CMOSLCD控制驱动器,串行输入速度最高可达4. 0Mbits/S,而且所有必须的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器,所以LCD3310是一款低功耗的液晶显示器。为了让LCD3310液晶能够显示4行12* 12的汉字,系统开辟了一个6* 84字节的缓冲区,要写液晶时,就不用直接写LCD3310的静态DDRAM了,可以先写系统为它开辟的数据缓冲区,最后再刷新修改的部分就可以显示出要显示的内容,LCD3310与主控制器是SPI接口方式。

第五章相关技术说明

5.1 VS1003 的初始化

如其它芯片一样,初始化对于VS1003 来说同样是极其重要的。初始化的过程大致是这样的:

1.硬件复位:接XRESET 拉低。

2.延时,将XDCS、XCS、XRESET 置高。

3.向MODE 中写入0X0804。

4.等待DREQ 为高。

5.设置VS1003 的时钟:SCI_CLOCKF=0x9800,3 倍频。

6.设置VS1003 的采样率:SPI_AUDATA=0xbb81,采样率48k,立体声。

7.设置重音:SPI_BASS=0x0055。

8.设置音量:SCI_VOL=0x2020。

9.这一步被很多人忽视,向VS1003 发送4 个字节的无效数据,用以启动SPI发送。

实现代码如下:

void Mp3Reset(void){

XRESET=0?

delay(100)?

XDCS=XCS=XRESET=1?

wr_commad(0x00,0x08,0x04)?

delay(10)?

DREQ=1?

while(!DREQ)?

wr_commad(0x03,0x98,0x00)?

delay(10)?

wr_commad(0x05,0xbb,0x81)?

delay(10)?

wr_commad(0x02,0x00,0x55)?

delay(10)?

wr_commad(0x0b,VOL_VALUE,VOL_VALUE)? // 音量

delay(10)?

spi_write(0)?

spi_write(0)?

spi_write(0)?

spi_write(0)?

}

在进行了正确的初始化后,还要着重检查一下VS1003 的模拟部分是否正常将VS1003 的所有DVDD、AVDD 管脚以及XRESET、TEST(第32 个引脚)接+3.0V,然后测量RCAP 引脚,它应该是1.3V 左右,否则芯片模拟部分未正常工作。

5.2 MP3 文件数据写入

以上的对VS1003 的初始化与测试都通过后,现在就可以给它发送MP3 文件了。但是这时就又出现一个新的问题。MP3 文件通常是比较大的,小的也要1M~2M,如果使单片机内部的Flash Rom 的话,容量是远远不够的。需要有一种大容量的存储器来作为MP3 文件的载体。在笔者的调试系统中采用了SD 卡(256M)、U 盘(1G)与移动硬盘(40G)来存储MP3 文件。关于SD 卡与U盘的读写方法可以参看相关章节。这些大容量的存储设备通常也是按照扇区来进行读写的,但在实际的应用中更多的是结合FAT32 等文件系统来进行文件读写。文件系统部分可以参照《FAT32 的存储机制及其在单片机中的实现》。这里抛开存储介质不谈,只谈数据的写入方法。其实写入数据的方法十分简单。主要就是看DREQ 信号,在VS1003 的FIFO 能够接受数据的时候输出高电平。每次可以写入32 个字节的数据。而DREQ 变低时,单片机就要停止数据的发送。

具体的写数据的方法如下:

1.将XDCS 拉低。

2.等待DREQ 为高。

3.通过SPI 写入数据。

4.在文件没有结束前不断重复2 与3 操作。

5.在所有的数据都发送完毕后,最后发送2048 个无效字节,用以清除VS1003 的数据缓冲区。

6.将XDCS 置高。

实现代码如下:

XDCS=0?

for(j=621?j<2783?j++){

for(k=0?k<8?k++){

MMC_get_data_LBA(j,64,get)?

for(i=0?i<64?i++){

DREQ=1?

while(!DREQ)?

spi_write(get[i])?

//delay(60000)?

}

}

}

for(temp=0?temp<2048?temp++){

DREQ=1?

while(!DREQ)?

spi_write(0)?

}

XDCS=1?

第六章详细设计

6.1 MP3播放器软件系统流程原理

系统启动后,先初始化硬件模块。由MCU通过FAT32文件系统接口读取SD卡的一些基本信息,如容量、扇区大小、FAT表及根目录所在的启始扇区等。通过获得这些信息后,就可以找出SD卡是否有我们可以播放的音乐文件。若有音乐文件,微处理器将通过SPI总线方式读出该文件的音频信息,并将歌曲的码流信息送入到VS1003芯片中,通过VS1003芯片解码

以及其内含的高质量的立体DAC和耳机驱动电路,实现MP3歌曲的播放功能。在触摸键的控制下,通过LCD3310中菜单选项的选择,实现对歌曲选择及音量控制等功能;在播放的同时, LCD3310上显示的信息除歌曲名称信息外,还包括进度和音量等信息。

由于SPI1 读取SD 卡文件的速度远超过VS1003 播放数据流的速度,因此VS1003 在播放来自SPI2 的数据流期间,SPI1 能从SD 卡中读取下次播放所需的数据,不会产生声音不连续的情况。由于使用了2 个SPI 接口,相互之间无干扰,且提高了文件系统的效率,因此本系统能得到非常高品质的音乐。

6.2 SD模块

SD 模块主要提供SD 卡驱动以及对FAT 文件系统操作的函数,FAT 文件系统支持长文件名。该模块主要含有2 个文件msd.c 和fat16.c 。下面分别介绍其主要函数的功能。

(1) msd.c

该文件用于提供SD 卡的驱动,主要包括以下函数。

SPI_ Config : 配置与SD 卡相连接的SPI1 及相关GPIO。

MSD_Init :初始化SD 卡通信。

Get_Medium_Characteristics :获取SD 卡的容量和块大小等相关信息。

MSD_GoIdleState :令SD 卡处于空闲态。

MSD_SendCmd :向SD 卡发送命令。

MSD_GetResponse :从SD 卡获取响应。

MSD_GetStatus :获取SD 卡的状态。

MSD_WriteBlock :向SD 卡写入1 个块的数据。

MSD_ReadBlock :从SD 卡读取1 个块的数据。

以下是函数MSD_ReadBlock 的实现:

u8 MSD_ ReadBlock ( u8 * pBuffer , u32 ReadAddr , u16 NumByte ToRead) { u32 i = 0 ;

u8 rvalue = MSD_RESPONSE_FAILURE;

MSD_CS_LOW() ; / / 拉低片选信号,选中SD 卡

MSD_SendCmd (MSD_READ_ SIN GL E_BLOCK, ReadAddr ,

0xFF) ; / / 发送读取块命令

/ / 检测SD 卡是否有返回信息,若是则返回0x00

if ( !MSD_GetResponse (MSD_RESPONSE_NO_ERROR) ) {

if ( !MSD_ GetResponse (MSD_ START_DA TA_ SIN GL E_

BLOCK_READ) ) { / / 等待数据令牌,标志数据传输开始

for (i = 0 ; i < NumByte ToRead ; i + + ) { / / 读取数据

* pBuffer = MSD_ReadByte() ; / / 缓存收到的数据

VS1003、中断、串行

口、液晶、flash 存储

器、SD 卡等初始化

读SD 卡的主引导

记录

解析文件系统

从SD 卡里读取

MP3文件信息

解析短文件名

调用以GB2312

编码的汉字驱动

并显示

有长文件名

计算MP3数据流

首簇地址

读取一扇区的

MP3数据流

MP3数据流写入

VS1003芯片

读完一簇

文件结束

结束开始

Unicode 到

GB2132转换计算下一簇地址Y N

Y

Y N

N

pBuffer + + ; / / 缓存指针后移

}

rvalue = MSD_RESPONSE_NO_ERROR ;/ / 修改rvalue 的值为成功

}

}

MSD_CS_HIGH() ; / / 拉高片选信号,禁用SD 卡

MSD_WriteByte(DUMMY) ; / / 写无效字节,传输结束

return rvalue ; / / 返回

}

(2)fat16. c

该文件提供对FAT16 文件系统的支持,主要包含以下函数。

ReadMBR :读取MBR 数据结构。

ReadBPB :读取BPB 数据结构。

ReadFAT :读取文件分配表指定项。

ReadBlock :读取SD 卡的一个扇区。

FAT_Init :获取FAT16 文件系统的基本信息。

DirStartSec :获取根目录的开始扇区号。

DataStartSec :获取数据区的开始扇区号。

ClusConvLBA :获取一个簇的开始扇区号。

LBAConvClus :转换扇区号与簇号之间的关系。

Get FileName :获取指定文件的首扇区号。

ListDate Time :列出文件或子目录创建的时间日期。

SearchFoler :在指定范围内查找文件或子目录。

ListDir :列出指定范围内的文件或子目录及相关信息。

FAT_FileOpen :打开指定文件。

FAT_FileRead :读取文件数据。

6.3 VS1003模块

VS1003 模块主要提供对解码芯片VS1003 的驱动,为应用层播放音频数据、控制音量声道等提供基本接口。该模块主要含文件vs1003. c 。其主要函数的功能如下。

vs1003. c 文件主要提供VS1003 芯片的驱动,包含以下几个主要函数。

VS1003_Config :配置STM32 与VS1003 连接的相关引脚,包括SPI2 、PA0 、PA1 、PA2 、PA3 。

SPIGetChar :通过SPI 从VS1003 读取1 个字节。

SPIPutChar :通过SPI 向VS1003 写入1 个字节。如果是MP3/ WMA 数据流,则VS1003 将开始解码并播放。

Mp3ReadRegister :读取VS1003 寄存器的值。

Mp3WriteRegister :写VS1003 寄存器。

Mp3Reset :VS1003 复位,包括软件复位和硬件复位。

Mp3SoftReset :VS1003 软件复位,设置时钟、采样率、重音、音量、立体声等参数,一般在2 首乐曲之间需要一次软件复位。

VsSine Test : 播放正弦声波,用于测试VS1003 和STM32 的连接是否完好。

以下是VS1003音频解码芯片初始化的部分代码:

void init_vs1003()

{

vs1003_dir|=0X2C;

VS1003_xResetDIR |=BIT5;

printfs(“\n-----hard_reset----\

n”);

hard_reset; //硬件复位

delay_ms(10);

sotf_send_bit2(0XFF);

hard_set;

sotf_send_bit2(0XFF);

Wait_Vs1003_DREQ();

printfs(“\n-----soft_reset_vs1003-

---\n”);

soft_reset_vs1003();

printfs(“\n ----vs1003initok----

\n”);

}

6.4 图形人机交互模块(触摸屏支持库的安装)

网络MP3播放器搭载了一块触摸屏作为系统硬件的控制模块,有了触摸屏的支持,用户就可以通过点击图形人机交互界面中的窗体控件对播放器进行管理。在设计播放器的图形人机交互界面之前,还需要一层应用程序库封装系统对底层触摸屏驱动的操作,将触摸控制以一个统一的接口提供给上层GUI应用程序使用。

该设计使用了tslib应用程序库来封装图形用户界面对底层触摸屏的操作。tslib是一个开源的触摸屏支持库,它作为触摸屏驱动的适配层,为不同的触摸屏提供了一个统一的接口。tslib提供诸如滤波、去抖、校准之类的功能。下图7表示了tslib在本设计GUI 系统中所处的层次结构。

第七章总结

ARM芯片和linux系统是目前嵌入式领域的主流硬件和软件平台,基于这种平台的各种消费电子产品的设计有着系统成熟,开发便利,调试简单的优点,因此其成为了嵌入式开发的热点,本课题的MP3播放设计也是基于这种平台,阅读了大量的国内外相关资料,主要做了如下一些工作:

1.简要介绍了嵌入式系统和MP3的相关概念,了解了选题背景,国内外现状以及本课题的研究意义。

2.对嵌入式系统开发进行了一个介绍,包括硬件、软件环境,主流的ARM处理和linux操作系统,以及嵌入式的开发模式。

3.介绍本课题使用的开发板zq2410及其具有的硬件资源,包括各种接口,芯片以及RAM、ROM等。然后是基于zq2410的软件系统设计,进行了Uboot的移植,linux内核的裁剪移植,根文件系统的创建,编写测试LED和按键的硬件驱动。

4.对1inux下比较的流行的madplay播放器进行了移植,进过测试,其能够在搭建好的环境下正常的工作,和驱动程序也能够良好的互动。由于对嵌入式系统涉足不久,对整个系统的了解也不够深入,透彻,在开发过程中也遇到了不少的问题,包括linux裁剪配置,由于选项太多,对其掌握的不够熟练,1inux下驱动的编写,由于实现的机制比较复杂,学习的也不够透彻,只掌握了字符型设备的驱动编写,对于块设备和网络设备的驱动编写,还需要在后续的学习中了解掌握。同时,针对该设计中的不足还应该加入如下改进:添加一块液晶屏,现在所有的调试反馈信息都只能通过超级终端检测,对于一个完善的嵌入式系统,这个是不够直观的:系统的界面基于字符界面,操作起来相对生涩,上手起来也不太容易,在以后改进中,为系统加入GUI(图形用户界面),这样系统的界面会直观很多,用户的操作也更得心应手。系统的开发是一个逐渐完善的过程,只有在不断的完善中,系统才能更加的人性化,更加的全面,达到应用以人为本的理念。

ARM课程设计报告

摘要 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 定时器是对外设时钟(PCLK)进行计数,根据4个匹配寄存器的设定,可以设置为匹配时产生中断或执行其他动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器的当前值,并可选择产生中断。 关键字:单片机 LPC2106 GPIO 定时器timer 实时时钟外部中断Int 目录 第一章原理与总体方案 (4) 1.1单片机简介 (4) 1.2 LPC2106简介 (5) 1.3单片机的选择 (7) 1.4 LPC2106芯片的选择及设计原理 (8) 第二章硬件设计 (9) 2.1 LED显示电路 (9) 2.2电路图整体设计 (9) 第三章调试 (12) 3.1调试及处理 (12) 第四章测试与分析 (14)

4.1Proteus软件介绍 (14) 4.2仿真结果 (15) 第五章结束语 (16) 5.1结束语 (16) 第1章原理与总体方案 本章阐述了本课题研究的背景,表述了单片机的发展、功能以及LPC2114的简单介绍。阐述了单片机的选择原理以及LPC2106的设计原理。 1.1数字单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了"杀鸡用牛刀"了。要实现嵌入式设备和Int ernet连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。

ARM课程设计报告GPIO—流水灯

目录 一、设计目的 (3) 二、设计原理 1、GPIO—流水灯 (3) 2、SPI (7) 3、定时器 (10) 4、实时时钟 (12) 三、所用仪器 (18) 四、EasyARM2131开发套件功能介绍 (18) 五、设计内容:万年历-定时器-流水灯-SPI 1、功能描述 (21) 2、流程图 (22) 3、程序设计 (22) 六、心得体会 (28) 七、参考文献 (29)

一、设计目的 1、根据要求,复习巩固ARM的基础知识。 2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。 3、熟练掌握ARM软件和2131开发板的使用。 4、提高综合运用所学的理论知识独立分析和解决问题的能力; 二、设计原理 1、GPIO—流水灯 (1)LPC2131具有多达47个通用I/O 口(GPIO,General Purpose I/O ports),分别为P0[31:0]、 P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。 (2)GPIO的特性和应用 特性: 单个位的方向控制; 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用: 通用I/O口 驱动LED或其它指示器 控制片外器件 检测数字输入 (3)GPIO引脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述

arm实验报告最终版

ARM与嵌入式技术 实验报告 专业班级:10通信工程1班 姓名:万洁 学号:100103011125 实验日期:2013年5月28日 指导老师:郑汉麟

1、 通过实验掌握ARM 指令的特点和寻址方式; 2、 掌握简单的ARM 汇编语言的程序设计; 3、 了解集成开发环境 Embest IDE 及其开发软件的应用; 、实验环境 Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入 式系统的开发和调试工具。其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在 Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。 三、实验步骤 1)新建工程: 运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹 出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。将创建一个新工程,并同时创 建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程 .。 (老师提醒:不要放入Bin 文件夹中) ■ Emb?t QE Pre 亠 Educat 「販]£dii_Vww Buid frtbug D if** Qri+W 诊 Open-" Qrl*O 2)建立源文件: 点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。 编辑完后,保存文件“ wj.s ”后缀,如图三,四。 Hr* Open Workspace.? 图一 ■■ rflJO IUU rl jil rd f rfl,rl Clop : h Ho. .end 图 tut vUrl:

arm嵌入式实验报告完整版

arm嵌入式实验报告完整版 篇一:ARM嵌入式系统实验报告1 郑州航空工业管理学院 嵌入式系统实验报告 第 赵成,张克新 院姓专学 系:名:业:号:电子通信工程系周振宇物联网工程 121309140 电子通信工程系 XX年3月制 实验一 ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容

1.ADS1.2 IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加;(2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括两个软件组件。在ADS1.2

中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名: AREA XTF,CODE,READONLY 声明32位ARM指令 R0arm嵌入式实验报告完整版) ADD R0,R1,R2 3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。 AREA XTF,CODE,READONLY ;声明代码段XTFENTRY ;标示程序入口CODE32 ;声明32位ARM 指令START LDR R0,=1 ;加载数据LDR R1,=2LDR R3,=ADDR_1;载符号地址 ADD R2,R0,R1;R2[R3] ;数据空间定义 AREA Data_1,DATA,ALIGN=2 ADDR_1 DCD 0 END ;结束 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。 LDR R0,=SrcData ;

arm课程设计报告

课程设计报告 (嵌入式接口技术) 学院:电气工程与自动化学院 题目:基于ARM的多路数据采集系统设计 专业班级:自动化113班 学号:35号 学生姓名:翁志荣 指导老师:温如春 2013 年12月19日

摘要 数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一. 本次设计是基于ARM的多路数据采集系统,主控器能够对模拟信号产生的各路数据,通过数据采集系统进行采集并在主控器的程控下显示。 关键字:数据采集;模数转换;ARM;实时采样。 Abstract Data acquisition system for digital signal to analog signal conversion can be identified by computer. The system is aimed at facilitating monitoring of some physical quantity. Data acquisition system is good or bad depends on the precision and speed. When the design, should be in the case of ensuring accuracy as much as possible to meet the high speed real-time sampling, real-time processing, the requirement of real time control. The application of this system in scientific research can obtain a large number of dynamic; is an important means to study the instantaneous physical process; and it is also one of the important means of access to the mysteries of Science. Keyword s: data acquisition; ARM; real-time sampling analog-to-digital conversion.

《嵌入式系统与开发》ARM汇编及接口设计-实验报告 - 答案

《ARM汇编与接口设计》 实验报告 学生姓名: 学号: 专业班级: 指导教师: 完成时间:

实验1 ARM汇编与S3C6410接口设计 一.实验目的 熟悉裸板开发环境构建,掌握利用ADS开发工具或arm-linux-gcc开发工具编写裸板系统下程序的基本步骤和方法,掌握裸板程序的基本架构,熟悉汇编设计的基本指令和伪指令的使用方法,掌握S3C6410接口开发基本方法和步骤,并编程设计LED流水灯和看门狗程序设计。深刻体会软件控制硬件工作的基本思路和方法。 二.实验内容 实验1.1 熟悉ADS开发工具或交叉编译器arm-linux-gcc的安装和基本使用 实验1.2 LED流水灯实验 实验1.3 看门狗实验 三.预备知识 C 语言、微机接口等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软件:WinXP或UBUNTU开发环境。 五.实验步骤 5.1 ADS开发工具安装和使用 步骤: 第一步,ADS工具安装在 平台 B.linux平台)下,按照类似于VC++ 第二步,利用ADS打开demo项目模板,查看ADS中配置中几个重要选项, 第三步,参照demo项目代码结构,编写裸板程序完成两整数加和两整数减函数,分别用C代码实现,写出完成汇编启动代码和C代码。 第四步 用ADS自带的ARM的汇编代码,b被编译器优化到寄存器中,函数返回汇编语句 。 5.2 arm-linux-gcc编译工具安装和使用

第一步:arm-linux-gcc(A. WINDOWS平台 B.linux平台)下,按照类似于gcc 第二步:参看相关实验样例,一般基于arm-linux-gcc编译的裸板程序通常包含汇编启动代码文件,C功能代码文件和make工具文件Makefile。 5.3 LED流水灯设计实验 本实验要求使用arm-linux-gcc编译。备注,控制LED1的GPIO口为GPM0 步骤1:编写代码 参看相关实验样例,编写LED1报警灯代码,实现LED1以1秒左右的时间进行闪烁,要求LED 驱动代码编写在leddrv.c中,功能代码编写在main.c文件中,启动代码文件和Makefile文件参照实验样例代码来设计。 则启动代码文件内容: 功能层main.c文件内容: 步骤2:编译 编译步骤为: 步骤3:加载到内存中运行

ARM实验报告

湖南科技学院ARM嵌入式设计实验报告题目:基于ARM嵌入式系统跑马灯的设计 专业:电子信息工程 班级:电信1102班 姓名:段相辉 学号:201106002232 指导教师:陈光辉 2014年11 月

目录 摘要............................................. 错误!未定义书签。ABSTRACT .......................................... Ⅰ错误!未定义书签。 1 题目要求 (1) 2 设计软件的安装 (2) 3 开发平台的搭建 (22) 4 项目设计 (23) 4.1 设计思路概述 (2) 4.1.1 设计层次介绍 (2) 4.1.2 设计模块介绍 (3) 5总结 (6) 致谢 (25) 参考文献 (26) 附录 (27)

引言 随着生活水平的提高和IT技术的进步,8位处理器的处理能力已经不能满足嵌入式系统的需要了;而16位处理器在性能和成本上都没有很大的突破。并且在8位机的开发中,大多使用汇编语言来编写用户程序。这使得程序的可维护性、易移植性等都受到了极大的挑战。正是基于此,ARM公司适时的推出了一系列的32位嵌入式微控制器。目前广泛使用的是ARM7和ARM9系列,ARM7TDMI内核的ARM7处理器广泛应用于工业控制、仪器仪表、汽车电子、通讯、消费电子等嵌入式设备。

1、题目要求 构建嵌入式Linux开发环境,熟悉linux的命令操作,并在嵌入式Linux 开发环境中设计跑马灯。 2、设计软件的安装 2.1 VMware Player简介 (a) VMware Workstation是一个“虚拟机”软件.它使用户可以在一台机 器上同时运行多个操作系统. (b) VMware Player是VMware Workstation的精简版,最初只是虚拟机的“播放机”, 但最新版本的已经具有创建虚拟机的功能.具有体积小,使用灵活,免费等特点. (c) 多个操作系统在主系统的平台上,可像Windows应用程序那样切换.而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据. (d) 利VMware Player创建虚拟机

基于ARM9的人脸识别系统 嵌入式报告 课程设计

嵌入式课程设计报告 学院信息电子技术 专业通信工程 班级 学号 姓名 指导教师 2017年07月01日

基于ARM9的人脸识别系统 一、引言 人脸识别背景和意义 人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。 人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。 二、系统设计 1、硬件电路设计 (1)ARM9处理器 本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。 ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz 以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。 (2)液晶显示屏 为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。 (3)摄像头 摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极

ARM实验报告--Thumb

XI`AN TECHNOLOGICAL UNIVERSITY 实验报告

西安工业大学实验报告 一丶实验目的 通过实验掌握ARM处理器16位Thumb汇编指令使用方法 二、实验内容 使用Thumb汇编语言,完成基本reg/men访问,以及简单的算术/逻辑运算。 使用Thumb汇编语言,完成较为复杂的程序分支,领会立即数大小的限制,并体会ARM与Thunb的区别。 三、实验原理 ARM 处理器共有两种工作状态: ARM:32 位,这种状态下执行字对准的ARM 指令; Thumb:16 位,这种状态下执行半字对准的Thumb 指令 在Thumb 状态下,程序计数器PC 使用位1 选择另一个半字。 注意: ARM 和Thumb 之间状态的切换不影响处理器的模式或寄存器的内容。ARM 处理器在两种工作状态之间可以切换。 1)进入Thumb 状态。当操作数寄存器的状态位0 为1 时,执行BX 指令进入Thumb 状态。如果处理器在Thumb 状态进入异常,则当异常处理(IRQ,FIQ,Undef,Abort 和SWI)返回时,自动切换到Thumb 状态。 2) 进入ARM 状态。当操作数寄存器的状态位0 为0 时,执行BX 指令进入ARM 状

态。处理器进行异常处理(IRQ,FIQ,Undef,Abort 和SWI)。在此情况下,把PC 方入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM 状态。 四、实验过程 1)打开Embest IDE Pro软件,选择菜单项File-->New Workspace,系统弹出对话框,创建名为TEXT的新工程,并同时创建一个与工程名相同的工作区。此时在工作窗口将打开该工作区和工程。 2)建立源文件: 点击菜单项File-->New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位玉窗口中第一行,将程序所需的源文件代码输入,编辑完后,进行保存,保存文件格式为_a.s文件。 3)添加源文件: 选择Project-->Add To Project-->File命令,弹出文件选择对话框,在工程目录下选择刚才建立的_a.s格式的源文件 4)基本配置: 选择菜单项Project-->Settings,弹出工程设置对话框,在工程设置对话框中,选择Processor设置对话框,选择ARM7对目标板所用处理器进行配置。

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

ARM实验报告

ARM嵌入式 实验报告 姓名:冯贤成 学号:120101021106 专业:电子信息工程 指导老师:郑汉麟

ARM嵌入式系统 一、实验目的 1、通过实验掌握ARM指令的特点和寻址方式; 2、掌握简单的ARM汇编语言的程序设计; 3、了解集成开发环境Embest IDE及其开发软件的应用; 二、实验平台 Windows 7系统下的Embest IDE嵌入式软件开发平台 三、实验内容 1.编写程序将R2的高8位传送到R3的低8位(不考虑R3的其它位) 程序如下: .global _start .text _start: MOV R2,#0x80000003 /*把第一个立即数送进R2*/ MOV R3,#0x40000013 /*把第二个立即数送进R3*/ AND R0,R2,#0xff000000 /*取R2高8位到R0*/ AND R3,R3,#0xffffff00 /*R3低8位清零*/ ORR R3,R3,R0,lsr #24 /*R0逻辑右移24位后与R3相或,结果送进R3*/ stop: b stop .end 调试结果: ①Download下载: ②把第一个立即数送进R2:

③把第二个立即数送进R3: ④取R2高8位到R0: ⑤R3低8位清零: ⑥R0逻辑右移24位后与R3相或,结果送进R3:

单步跟踪后的结果,存储器及寄存器的结果显示: 2.编程实现64位的加法运算,要求【R1:R0】+【R3:R2】结果放回【R1:R0】。

程序如下: .global _start .text _start: MOV R0,#12 /R0=12 MOV R1,#6 /R1=6 MOV R2,#8 /R2=8 MOV R3,#9 /R3=9 ADDS R0,R0,R2 /R0等于低32位相加,并影响标志位 ADC R1,R1,R3 /R1等于高32位相加,并加上低位进位stop: b stop .end 调试结果: ①Download下载: ②将12赋给R0 ③将6赋给R1

嵌入式系统课程设计报告书

成绩学生课程实践能力考查 题目:温度按键设定、显示、报警系统设计 课程名称:嵌入式系统开发专业班级: 学生学号: 学生姓名: 考查地点: 考查时长: 4小时 所属院部: 指导教师: 2017 — 2018学年第 2 学期 金陵科技学院教务

2017-2018学年第2学期《嵌入式系统开发》实践能力考核 任课教师签名: 日期: 温度按键设定、显示、报警系统设计 要求: 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。 3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式) 4、串口波特率一律用9600bps。 液晶显示的信息: STM32 test name: xxxxxxxxx Maximum is 32C,Minimum is 26 C The temperature is 29 C,now! (xxxxx就是自己的名字拼音) 目录: 第一章.系统要求 1、1设计要求

1、2设计方案 第二章.硬件设计 2、1开发板原理图 2、2 DS18B20模块 2、3按键模块 2、4 LCD显示模块 2、5 LED 模块 第三章.软件设计 3、1程序流程图 3、2程序部分代码 3、2、1主函数、main、c 3、2、2 LED 函数led、c 3、2、3温度代码 s18b20、c 3、2、4键盘代码key、c 第四章、实物效果图 第五章、课程总结 第一章.设计要求及方案 1、1设计要求 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限与下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限与下限判断当前温度有没有超出范围。

STM32-ARM-综合实验报告(南京航空航天大学)

南京航空航天大学研究生实验报告 项目名称:ARM嵌入式系统设计与应用技术 设计专题:综合实验二类:数据采集和显示系统 班级: 小组成员 (1)姓名:学号:学科:电话:Email:导师: (2)姓名:学号:学科:电话:Email:导师: (3)姓名:学号:学科:电话:Email:导师: 20XX年XX月XX日

一、本实验主要内容及要求 本次综合实验的主要内容是,利用ARM内部的A/D转换器进行数据采集和显示系统设计。实验要求如下: 1、采用STM32开发板上的12位A/D转换器(参考电压3.3V)采集电位器测 试点的电压值。电位器与A/D的输入通道14相连接。 2、当按下Key键之后任意旋转电位器,利用A/D转化器采样20组电压值(每 1ms采样一次,使用定时器TIM2计时),并在液晶屏幕上显示当前电压值,当再次按下Key键之后将20组电压值存入到FLASH中。 3、复位后按下Temper键将保存的20组电压值在液晶屏幕中央绘制出波形(要 求各点连接,每个点为5个像素,要有坐标系)。 1)横坐标为“1~20”,每个横坐标之间的间隔为8个像素点; 2)纵坐标为电压值“0V,1V,2V,3V,4V”,相邻坐标之间的为10个像素 点。 4、在液晶屏合适的位置显示组名、姓名、学号、开发日期等信息。可利用STM32 开发板的资源扩展其他自定义功能(如增加温度采集通道、当前采样频率显示和设置、采样率调节等)。 二、硬件框图 本次实验的硬件部分主要是计算机和STM32两个部分,对于计算机部分不做过多的介绍,下面着重介绍STM32中的与本实验相关模块。 1.1 ADC模块 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。 STM32教学平台的电位器是信号是连接到STM32的PC4口的,PC4正好是A/D转换的通道14,STM32实验教学平台上也标注了ADC12_14(14通道),电位器硬件框图如图1所示,ADC硬件框图如图1所示。

基于ARM嵌入式系统接口技术课程设计报告

基于ARM嵌入式系统接口技术课程设计报告 课程设计题目:实时时钟设计 学院:计算机科学与技术学院 班级:计算机09-1班 学号: 姓名: 指导老师:

微型计算机系统与接口技术 课程设计 设计时间:2011年12月19日至 2011年12月23日 设计环境 1.硬件环境:计算机,EV44B0II实验台 2.软件环境:Jediview 集成开发环境 一、基本功能: 利用S3C44BOX的RTC和实验箱上的LCD液晶、4*4小键盘设计一个实时时钟。 1.在LCD上显示当前日期及时间。可按如下格式显示: 日期:XXXX年XX月XX日 时间:XX:XX:XX 班级,姓名 2.利用4*4小键盘校时 校时时LCD的相应位置要有光标提示。 二、定时报警功能 通过小键盘设定报警时刻,报警时刻到,则在LCD上显示(各自不同的)报警图像。 三、步骤: 1.掌握预备知识: a.液晶显示 b.键盘译码 c.掌握S3C44BO芯片 RTC的使用方法 2.设计: a.实现RTC实时时钟功能 b.显示实时时钟界面 c.实现校时功能 d.上机调试,运行,验收 e.实现定时报警功能 四、硬件接口逻辑图

电路连接图

五、程序代码 (1)44binits /* ******************************************************* * NAME : 44BINIT.S * * Version : 10.JAn.2003 * * Description: * * C start up codes * * Configure memory, Initialize ISR ,stacks * * Initialize C-variables * * Fill zeros into zero-initialized C-variables * *******************************************************/

arm机械臂课程设计报告代码

成绩评定表

课程设计任务书

目录 一、题目分析2 二、总体设计 (2) 三、详细设计6 四、实现代码8 五、相关图片20 六、结束语21 七、参考文献 (22) 1、实验题目分析 1.1 问题描述

结合实时时钟,IIC(控制小键盘和数码管等)来做具备定期功能的实时时钟。 1.2功能分析 至少完成以下功能: (1)能显示每秒的时刻 (2)按下功能键能切换显示日期 (3)能设置定时闹钟,定时到产生某种输出 (4)可以扩展考虑加入外部中断,如停止闹钟功能等。 1.3 开发平台及工具介绍 实验器材有: CITK2410开发板,JTAG连接线,RS-232直通连接线 RVDS集成开发环境,超级终端工具, 2、总体设计 2.1 实验基本原理 IIC总线:IIC总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。 SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。 I2C总线进行数据传送时,时钟信号

为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据 线上的高电平或低电平状态才允许变化。 超始和停止信号图 数据传送时序图 IIC总线(IICSDA、IICSCL)经过VDD33的上拉后,进入ZLG7290 数码管:实验使用的数码管是广州周立公司单片机发展有限公司自行设计的一款数码管显示驱动及键盘扫描管理芯片。下面是介绍该数码管的特点还有电路图: 1 I2C 串行接口提供键盘中断信号方便与处理器接口 2 可驱动8 位共阴数码管或64 只独立LED 和64 个按键 3 可控扫描位数可控任一数码管闪烁 4 提供数据译码和循环移位段寻址等控制 5 8 个功能键可检测任一键的连击次数 6 无需外接元件即直接驱LED 可扩展驱动电流和驱动电压 7 提供工业级器件多种封装形式PDIP24 SO24 采用24 引脚封装引脚图如图所示其引脚功能分述如下:

北航ARM9实验报告:实验3uCOS-II实验

实验三UC-OS移植实验 一、实验目的 在内核移植了uCOS-II 的处理器上创建任务。 二、实验内容 1.运行实验十,在超级终端上观察四个任务的切换。 2. 任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三种颜色。 3.引入一个全局变量BOOLEAN ac_key,解决完整刷屏问题。 #define RdURXH0() 当键盘有输入时在超级终端上显示相应的字符。 三、实验设备 硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、ARM ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验原理 所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II在设计的时候就己经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。 要使uCOS一工工可以正常工作,处理器必须满足以下要求: 1)处理器的C编译器能产生可重入代码。 2)在程序中可以打开或者关闭中断。 3)处理器支持中断,并A能产生定时中断(通常在10Hz}1000Hz之间)。 4)处理器支持能够容纳一定量数据的硬件堆栈。 5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内存)的指令。

uCOS-II进行任务调度的时候,会把当前任务的CPU寄存器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以,寄存器的入栈和出栈是uCOS一工工多任务调度的基础。 五、实验步骤 1 以实验十为模板,将实验六inc目录下的LCD320.H 和src目录下的LCD640.C 拷到模板下的相应目录,将LCD640.C加入工程中。 2包含以下头文件#include “inc/lcd320.h”。 3改LCD640.C 文件中包含头文件的路径。 #include "../inc/drv/reg2410.h" 4 声明引用的变量extern U32 LCDBufferII2[LCDHEIGHT][LCDWIDTH]; 六、源程序 #include"../ucos-ii/includes.h" /* uC/OS interface */ #include "../ucos-ii/add/osaddition.h" #include "../inc/drivers.h" #include "../inc/sys/lib.h" #include "../src/gui/gui.h" #include "../inc/lcd320.h" #include #include //#include "..inc/lcd320.h" //#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting OS_EVENT *MboxSem; ///******************任务定义***************/// /*OS_STK SYS_Task_Stack[STACKSIZE]= {0, }; //system task刷新任务堆栈 #define SYS_Task_Prio 1 void SYS_Task(void *Id);*/ OS_STK task1_Stack[STACKSIZE]={0, }; //Main_Test_Task堆栈 void Task1(void *Id); //Main_Test_Task #define Task1_Prio 12 OS_STK task2_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task2(void *Id); //test_Test_Task #define Task2_Prio 15 OS_STK task3_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task3(void *Id); //test_Test_Task #define Task3_Prio 17 OS_STK task4_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task4(void *Id); //test_Test_Task #define Task4_Prio 10

嵌入式系统课程设计报告书

学生课程实践能力考查 题目:温度按键设定、显示、报警系统设计 课程名称:嵌入式系统开发专业班级: 学生学号:学生姓名: 考查地点:考查时长: 4小时 所属院部:指导教师: 2017 — 2018学年第 2 学期 金陵科技学院教务 成绩

2017-2018学年第2学期《嵌入式系统开发》实践能力考核 任课教师签名: 日期: 温度按键设定、显示、报警系统设计 要求: 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限和下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限和下限判断当前温度有没有超出范围。 3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报警方式) 4、串口波特率一律用9600bps。 液晶显示的信息: STM32 test name: xxxxxxxxx Maximum is 32C,Minimum is 26 C The temperature is 29 C,now! (xxxxx是自己的名字拼音)

目录: 第一章.系统要求 设计要求 设计方案 第二章.硬件设计 开发板原理图 DS18B20模块 按键模块 LCD显示模块 LED 模块 第三章.软件设计 程序流程图 程序部分代码 主函数、 LED 函数 温度代码 键盘代码 第四章.实物效果图 第五章.课程总结

第一章.设计要求及方案 设计要求 1、读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。 2、通过按键可以设置环境温度的上限和下限, WK_UP键按下调节上限,再按下调节下限,再按下调节上限…… KEY1按下加1; KEY0按下减1, 根据上限和下限判断当前温度有没有超出范围。 3、当温度超过上限,LED1隔1秒亮一次。超过下限,LED2隔1秒亮一次。(也可自定义报 警方式) 4、串口波特率一律用9600bps。 液晶显示的信息: STM32 test name: xxxxxxxxx Maximum is 32C,Minimum is 26 C The temperature is 29 C,now! (xxxxx是自己的名字拼音) 设计方案 本次课程设计的要求是使用STM32F103设计一个温度测控系统,ALIENTEK MiniSTM32 V3 版开发板选择的是 STM32F103RCT6 作为 MCU,它拥有的资源包括:48KB SRAM、256KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、2 个 DMA 控制器(共 12 个通道)、3 个 SPI、2 个 IIC、5 个串口、1 个 USB、1 个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个SDIO 接口及 51 个通用 IO 口。在本课程中使用了以下部分来完成课程设计的要求: 1.应用DS18B20进行温度的检测。 2.应用按键模块进行外部的上下限数值设定。 3.应用LED的闪烁进行报警。 4.应用LCD显示实时温度、上下限等信息。

ARM嵌入式实验报告

实验一ARM汇编指令使用实验——基本数学/逻辑运算 一、实验目的 1. 初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM软件模拟器。 2. 通过实验掌握数据传送和基本数学/逻辑运算的ARM汇编指令的使用方法。 二、实验设备 1. 硬件:PC机。 2. 软件:ADS 1.2 / Embest IDE 200X集成开发环境。 三、实验内容 1.熟悉ADS 1.2 / Embest IDE 200X开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。具体实验程序如下: /* armasm1a.s */ .EQU X, 45 /*定义变量X,并赋值为45*/ .EQU Y, 64 /*定义变量Y,并赋值为64*/ .EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/ .GLOBAL _START .TEXT _START: /*程序代码开始标志*/ MOV SP, #STACK_TOP MOV R0, #X /*X的值放入R0*/ STR R0, [SP] /*R0的值保存到堆栈*/ MOV R0, #Y /*Y的值放入R0*/ LDR R1, [SP] /*取堆栈中的数到R1*/

ADD R0, R0, R1 STR R0, [SP] STOP: B STOP /*程序结束,进入死循环*/ .END 2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。具体实验程序如下:/* armasm1b.s */ .EQU X, 45 /*定义变量X,并赋值为45*/ .EQU Y, 64 /*定义变量Y,并赋值为64*/ .EQU Z, 87 /*定义变量Z,并赋值为87*/ .EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/ .GLOBAL _START .TEXT _START: /*程序代码开始标志*/ MOV R0, #X /*X的值放入R0*/ MOV R0, R0, LSL #8 /*R0的值乘以2的8次方*/ MOV R1, #Y /*Y的值放入R1*/ ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/ MOV SP, #0X1000 STR R2, [SP] MOV R0, #Z /*Z的值放入R0*/ AND R0, R0, #0XFF /*取R0的低八位*/ MOV R1, #Y /*Y的值放入R1*/ ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/

相关文档