嵌入式课程设计——蓝牙无线数据传输

嵌入式课程设计——蓝牙无线数据传输
嵌入式课程设计——蓝牙无线数据传输

课程设计书—《嵌入式系统实训》

学院

姓名

学号

组别

目录

1设计概述 (1)

2设计方案 (1)

2.1详细设计方案 (2)

2.1.1 电源模块 (2)

2.1.2 主芯片模块 (2)

2.1.3 WIFI模块 (3)

2.1.4 霍尔传感器模块 (3)

2.1.5 开关磁阻电机 (4)

2.1.6 电路板抗干扰设计 (5)

2.2软件设计方案 (6)

3手机客户端APP设计 (6)

3.1开发环境的搭建 (6)

3.2手机APP的主要功能模块 (7)

4软件件调试过程和结果 (15)

5课程总结 (19)

1设计概述

能源是经济发展和社会进步的支柱,能源问题成为当今世界各国尤其是发达国家所要解决的头等大事。世界各国都在鼓励大力开发可再生能源。风能和太阳能成为当下最受欢迎的新能源,也是目前可再生能源应用技术中最成熟的。本设计基于人体运动出来的机械能转化成可利用回收的电能,是新能源的一种体现,具有很好的开发前景和实际用途。

该设计是基于以stm32f030芯片为主芯片的智能发电的PCB 主板,再利用开关磁阻电机进行发电,将其电压和电流通过wifi 模块发送给手机端,通过手机上的APP 可以显示出电流和电压值,并进行后台处理和数据保存。设计将从芯片器件的选型再到PCB 板的设计,之后是PCB 板的焊接,再是软件的编写与调试,软件部分还包括手机APP 的编写,最终完成本次设计。

1 设计方案

该设计方案可以划分为两个部分,第一部分是终端部分,有发电机的驱动模块,电压电流采集模块,WiFi 模块以和主控芯片及其外设;第二部分是手机部分,该部分主要是实现一个上位机的功能,包括接收信息,发送指令,主要有登录界面和查询界面。两部分之间通过WIFI 来实现通信。所以总体设计框图1所示:

图2.1 总体设计方案

其中手机端的设计为纯粹的软件设计,而智能发电系统主体的设计方案是方案设计中的重点部分包括硬件部分的设计与软件部分的设计。该系统的设计方案包括以下几个方面,一是小车主体电路板的设计方案,属于硬件部分的设计;二是软件设计方案,属于软件部分的设计,主要是用于驱动硬件电路和给手机端APP 提供操作接口。

该系统主体电路板的设计包括电源模块的设计,主芯片外围电路的设计,WiFi 模块的设计,电机驱动模块的设计,各个传感器模块的设计。软件部分的设计包括主体函数的设计及各个功能模块的设计,在实现了各个功能模块设计的基础上设计出主体程序,以便可以随时中断某一个功能而去实现另外的功能。外围设计主要是各个传感器的放置位置的选择,以便达到所需的功能。

终端部分 手机端

蓝牙信号

1.1 详细设计方案

2.1.1 电源模块

由于电机的驱动需要15V的电源,而USB及传感器等模块的供电需要5V

的电源,主芯片需要3.3V及1.2V的电源。所以在电源模块的设计中需要用到

外部供电电源为15V的可移动电源,可以是蓄电池也可以是干电池串联而得。

5V的电源通过对15V电源降压而得到,3.3V电源分别由XC6206P332MR通过不同的外围电路来获得。

2.1.2 主芯片模块

主芯片在此设计中制定为stm32f030作为主控芯片,stm32f030主控芯片的外围电路包括复位电路,晶振,过芯片中的USB接口烧录到SPI FLASH中,选择的启动方式是USB启动。当程序烧录好以后,将启动方式转换为SPI FLASH 启动。SDRAM中用于存放程序。

STM32F030内部有RC振荡器,可以为内部的锁相环提供时钟,但同外部晶振相比不够准确,所以本文使用外部时钟源。外部时钟源主要分为高速外部振荡器和低速外部振荡器,高速外部振荡器主要作为芯片处理器和STM32 外设的驱动时钟,低速外部振荡器用于驱动窗口看门狗和实时时钟。该系统采用8M外部晶振作为高速外部时钟信号的时钟源,外接两个20p F的贴片电容。低速外部振荡器

是时钟源可以使用外部晶振或用户自己提供,该系统采用频率值为32.768k Hz 的外部晶振,外接两个10p F的贴片电容。STM32F030有3种启动方式,分为系统复位、电源复位、备份区域复位。该系统采用电源复位,NRST 引脚与10K?电阻串联使引脚处于高电位,当需要复位时,S1开关闭合使NRST引脚接地,产生低电平使微处理器复位。该微处理器内部也有复位电路,当引脚电压小于2.0V,片会处于复位状态,但会有40m A的延迟。

图2.1

2.1.3 WIFI模块

WIFI模块的作用是实现下位机与上位机的实时通信,并且向上位机传递图像数据。使用的是HC05模块。其特性如下:

1、嵌入高性能32位RISC微处理器

2、55nm CMOS 高度集成射频技术

3、集成高性能开关稳压器

4、低功耗

5、支持1/2/3/4/线 PTA WIFI/蓝牙

6、自动校准

7、天线分集

8、控制每个包的功率

9、完全遵守USB v 2.0 高速模式

10、直接支持WIFI功能

11、支持802.1w保护管理框架

图2.2

2.1.4霍尔传感器模块

霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效

应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。

由霍尔效应的原理知,霍尔电势的大小取决于:Rh为霍尔常数,它与半导体材质有关;I为霍尔元件的偏置电流;B为磁场强度;d为半导体材料的厚度。

对于一个给定的霍尔器件,当偏置电流I 固定时,UH将完全取决于被测的磁场强度B。

一个霍尔元件一般有四个引出端子,其中两根是霍尔元件的偏置电流I 的输入端,另两根是霍尔电压的输出端。如果两输出端构成外回路,就会产生霍尔电流。一般地说,偏置电流的设定通常由外部的基准电压源给出;若精度要求高,则基准电压源均用恒流源取代。为了达到高的灵敏度,有的霍尔元件的传感面上装有高导磁系数的镀膜合金;这类传感器的霍尔电势较大,但在0.05T左右出现饱和,仅适用在低量限、小量程下使用。

在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B 的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。

图2.2 霍尔效应

2.1.5 开关磁阻电机

开关磁阻电动机,调速系统所用的开关磁阻电动机(SRM)是SRD中实现机电能量转换的部件,也是SRD有别于其他电动机驱动系统的主要标志。SRM 系双凸极可变磁阻电动机,其定、转子的凸极均由普通硅钢片叠压而成。转子既无绕组也无永磁体,定子极上绕有集中绕组,径向相对的两个绕组联接起来,称为“一相”,SR电动机可以设计成多种不同相数结构,且定、转子的极数有多种不同的搭配。相数多、步距角小,有利于减少转矩脉动,但结构复杂,且主开关器件多,成本高,现今应用较多的是四相(8/6)结构和三相(12/8)结构。

图2.2示出四相(8/6)结构SR电动机原理图。为简单计,图中只画出A

相绕组及其供电电路。SR电动机的运行原理遵循“磁阻最小原理”—‘磁通总要沿着磁阻最小的路径闭合,而具有一定形状的铁心在移动到最小磁阻位置时,必使自己的主轴线与磁场的轴线重合。图2中,当定子D-D’极励磁时,1-1'

向定子轴线D-D'重合的位置转动,并使D相励磁绕组的电感最大。若以图中定、转子所处的相对位置作为起始位置,则依次给D→A→B→C相绕组通电,转子即会逆着励磁顺序以逆时针方向连续旋转;反之,若依次给B→A→D→C相通电,则电动机即会沿顺时针方向转动。可见,SR电动机的转向与相绕组的电流方向无关,而仅取决于相绕组通电的顺序。另外,从图2.2可以看出,当主开关

器件S1、S2导通时,A相绕组从直流电源US吸收电能,而当S1、S2关断时,绕组电流经续流二极管VD1、VD2继续流通,并回馈给电源US。因此,SR电动机传动的共性特点是具有再生作用,系统效率高。

图2.3

2.1.6 电路板抗干扰设计

电路设计和应用应尽量消除或抑制电子电路的干扰,该监测系统的硬件电路用来接收传感器的数据并对其进行处理,如果不能降低各类干扰的影响,将会增加监测数据误差。硬件电路设计过程中充分考虑对干扰的抑制,对电路进行了合理的设计以及选择合适的元器件。

在硬件电路设计过程中,充分从抑制干扰源、切断干扰途径以及提高元器件的抗干扰性能等三方面考虑,为降低信号干扰,采取了以下措施。

(1)以核心部件为中心,围绕其进行布线,易受干扰元器件相互远离,输入输出元器件分开放置,电源和高频电路部分尽量远离;

(2)STM32微处理器和大功率器件的地线需要单独接地,以减少相互干扰,大功率元器件放置在电路板边缘;

(3)在电路板布线时避免九十度折线,同时减少回路环面积,选择合适粗细的地线以及电源线;

(4)数字区和模拟区用地线隔离,模拟地和数字地要分离,统一在一点接于电源地。

1.2 软件设计方案

软件系统框图如下:

软件系统框图2.4

2手机客户端APP设计

2.1开发环境的搭建

本设计在开发过程中使用Eclipse加ADT插件的开发环境,Eclipse集成开发环境JDK,首先需要安装JDK工具包,本设计中使用的JDK版本是JDK-7-Windows-i586.exe。安装完成后,配置系统环境变量,将JDK的安装路径添加到系统Path中去。在Andriod developer 官网上下载Eclipse开发环境,其己对Eclipse和ADK插件绑定,开发者直接下载后解压即

可使用。本设计使用的 ADT 版本是adt-bundle-windows-x86-20140702.zip。

2.2手机APP的主要功能模块

手机APP的设计采用了MVC框架,将Model、View和Controler分开,有效减少开发工作量量和有效减少开发工作查和代码冗余率,有利于代码调试。本设计将手机端功能主要分为5大功能模块:登录功能模块、查询功能模块、接收数据模块、蓝牙验证模块。

(1)登录模块

登录模块需要用户输入个人信息,如用户名、密码、手机号码等。登录界面设计两个EditView输入烂和2个Button,输入烂用来接收用户名,2个按紐分别是登录和取消。当用户点击确认按钮后,跳转到主页面。

confirm=(ImageButton)findViewById(R.id.confirm);(确认按钮绑定)

cancel=(ImageButton)findViewById(R.id.cancel); (取消按钮绑定)

public void onClick(View v) { (设定按钮点击事件)switch (v.getId()) {

case R.id.confirm:

username=name.getText().toString();

if(username.equals(""))

{

Toast.makeText(LoginActivity.this, "用户名为空,请输入!", Toast.LENGTH_SHORT).show();

}

else

{

Intent intent = new Intent();

intent.setClass(LoginActivity.this, MainActivity.class);

intent.putExtra("name", username);

startActivity(intent);

}

break;

case R.id.cancel:

this.finish();

break;

default:

break;

}

(2)蓝牙搜索模块

进入搜索蓝牙界面后,会搜索附近的蓝牙

a.设置权限

在manifest中配置

b.启动蓝牙

首先要查看本机是否支持蓝牙,获取BluetoothAdapter蓝牙适配器对象BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if(mBluetoothAdapter == null){ //表明此手机不支持蓝牙

return;

}

if(!mBluetoothAdapter.isEnabled()){ //蓝牙未开启,则开启蓝牙

Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableIntent, REQUEST_ENABLE_BT);

}

public void onActivityResult(int requestCode, int resultCode, Intent data){

if(requestCode == REQUEST_ENABLE_BT){

if(requestCode == RESULT_OK){ //蓝牙已经开启

}

}

}

c.发现蓝牙设备

这里可以细分为几个方面

(I)使本机蓝牙处于可见(即处于易被搜索到状态),便于其他设备发现本机蓝牙

//使本机蓝牙在300秒内可被搜索

private void ensureDiscoverable() {

if (mBluetoothAdapter.getScanMode() !=

BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERAB LE);

discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);

startActivity(discoverableIntent);

}

}

(II)查找已经配对的蓝牙设备,即以前已经配对过的设备

Set pairedDevices = mBluetoothAdapter.getBondedDevices();

if (pairedDevices.size() > 0) {

findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE); for (BluetoothDevice de vice : pairedDevices) {

//device.getName() +" "+ device.getAddress());

}

} else {

mPairedDevicesArrayAdapter.add("没有找到已匹对的设备");

}

(III)通过mBluetoothAdapter.startDiscovery();搜索设备,要获得此搜索的结果需要注册一个BroadcastReceiver来获取。先注册再获取信息,然后处理

//注册,当一个设备被发现时调用onReceive

IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

this.registerReceiver(mReceiver, filter);

//当搜索结束后调用onReceive

filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);

this.registerReceiver(mReceiver, filter);

private BroadcastReceiver mReceiver = new BroadcastReceiver() {@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if(BluetoothDevice.ACTION_FOUND.equals(action)){

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); // 已经配对的则跳过

if (device.getBondState() != BluetoothDevice.BOND_BONDED) {

mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); //保存设备地址与名字

}

}else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { //搜索结束

if (mNewDevicesArrayAdapter.getCount() == 0)

mNewDevicesArrayAdapter.add("没有搜索到设备");

}

}

}

};

d.建立连接

查找到设备后,则需要建立本机与其他设备之间的连接。一般用本机搜索其他蓝牙设备时,本机可以作为一个服务端,接收其他设备的连接。启动一个服务器端的线程,死循环等待客户端的连接,这与ServerSocket极为相似。

这个线程在准备连接之前启动

//UUID可以看做一个端口号

private static final UUID MY_UUID =

UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");

//像一个服务器一样时刻监听是否有连接建立

private class AcceptThread extends Thread{

private BluetoothServerSocket serverSocket;

public AcceptThread(boolean secure){

BluetoothServerSocket temp = null;

try {

temp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(

NAME_INSECURE, MY_UUID);

} catch (IOException e) {

Log.e("app", "listen() failed", e);

}

serverSocket = temp;

}

public void run(){

BluetoothSocket socket=null;

while(true){

try {

socket = serverSocket.accept();

} catch (IOException e) {

Log.e("app", "accept() failed", e);

break;

}

}

if(socket!=null){ //此时可以新建一个数据交换线程,把此socket传进去

}

}

//取消监听

public void cancel(){

try {

serverSocket.close();

} catch (IOException e) {

Log.e("app", "Socket Type" + socketType + "close() of server failed", e);

}

}

}

e.建立数据通信线程,进行读取数据

//建立连接后,进行数据通信的线程

private class ConnectedThread extends Thread{

private BluetoothSocket socket;

private InputStream inStream;

private OutputStream outStream;

public ConnectedThread(BluetoothSocket socket){

this.socket = socket;

try { //获得输入输出流

inStream = socket.getInputStream();

outStream = socket.getOutputStream();

} catch (IOException e) {

Log.e("app", "temp sockets not created", e);

}

}

public void run(){

byte[] buff = new byte[1024];

int len=0;//读数据需不断监听,写不需要

while(true){

try {

len = inStream.read(buff);

//把读取到的数据发送给UI进行显示

Message msg = handler.obtainMessage(BluetoothChat.MESSAGE_READ,len, -1, buff); msg.sendToTarget();

} catch (IOException e) {

Log.e("app", "disconnected", e);

connectionLost(); //失去连接

start(); //重新启动服务器

break;

}

}

}

public void write(byte[] buffer) {

try {

outStream.write(buffer);

// Share the sent message back to the UI Activity

handler.obtainMessage(BluetoothChat.MESSAGE_WRITE, -1, -1, buffer).sendToTarget(); } catch (IOException e) {

Log.e("app", "Exception during write", e);

}

}

public void cancel() {

try {

socket.close();

} catch (IOException e) {

Log.e("app", "close() of connect socket failed", e);

}

}

}

(3)数据查询

query=(ImageButton)findViewById(R.id.query);

query.setOnClickListener(this);

listview = (ListView) findViewById(R.id.listView);

db=new DataBaseCreat(MainActivity.this);

db.open();

begin_date=(EditText)findViewById(R.id.begin_date);

end_date=(EditText)findViewById(R.id.end_date);

yue=(Button)findViewById(R.id.yue);

zhou=(Button)findViewById(R.id.zhou);

ri=(Button)findViewById(R.id.ri);

yue.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

QUERY_METHOD=0;

}

});

zhou.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

QUERY_METHOD=1;

}

});

ri.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

QUERY_METHOD=2;

}

});

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.query:

if(TextUtils.isEmpty(begin_date.getText()) || TextUtils.isEmpty(end_date.getText()))

{

Toast.makeText(MainActivity.this, "输入时间为空,请检查",

Toast.LENGTH_SHORT).show();

break;

}

Toast.makeText(MainActivity.this, "查询中,请稍后",

Toast.LENGTH_SHORT).show();

ArrayList> temp = new

ArrayList>();

temp=db.getAllContact(QUERY_METHOD,name,datebegin, dateend);

SimpleAdapter myAdapter = null;

switch (QUERY_METHOD) {

case 0:

myAdapter = new SimpleAdapter(this,temp,https://www.360docs.net/doc/1f11506517.html,yout.item0,

new String[]{"user_name","year", "month","total"},

new int[] {https://www.360docs.net/doc/1f11506517.html,er_name0,R.id.year0,R.id.month0,R.id.total0}

);

break;

case 1:

myAdapter = new SimpleAdapter(this,temp,https://www.360docs.net/doc/1f11506517.html,yout.item1,

new String[]{"user_name","weekofyear","total"},

new int[] {https://www.360docs.net/doc/1f11506517.html,er_name1,R.id.weekofyear1,R.id.total1}

);

break;

case 2:

myAdapter = new SimpleAdapter(this,temp,https://www.360docs.net/doc/1f11506517.html,yout.item2,

new String[]{"user_name","year", "month","day","total"},

new int[]

{https://www.360docs.net/doc/1f11506517.html,er_name2,R.id.year2,R.id.month2,R.id.day2,R.id.total2}

);

break;

default:

break;

}

listview.setAdapter(myAdapter);

Break;

default:

break;

}

}

3软件件调试过程和结果

由于我只负责软件部分,硬件部分由终端同学负责,需要将PCB板打出来,这里我们用电脑模仿硬件,用串口调试助手通过蓝牙向外发送数据,然后手机APP端接收,并通过查询按钮查询出来并实时显示电流数据,电压数据,转速数据和总电量,下面是我们的测试示意图:

图4.1

接收数据显示界面:

4.2 图4.3

按周查询:

图4.4 图

4.5

按月查询:

测试结果表明,各功能均能正常实现。图

4.6

北京科技大学 嵌入式课程设计报告

《嵌入式控制系统》课程设计报告 学院 专业班级 姓名 学号 指导教师 _

目录 摘要 (4)

Abstract (4) 引言 (5) 带中断LED数码管驱动程序设计 (6) 1.设计内容 (6) 1.1 基本功能 (6) 1.2 扩展功能 (6) 1.3创新功能 (6) 2.实验设备 (6) 3.设计功能块说明 (6) 4.设计原理 (7) 4.1 LED发光原理 (7) 4.2 八位LED显示器 (8) 5. 实验步骤 (8) 5.1 驱动程序加载 (8) 5.2 添加控件 (8) 5.3基本功能的实现 (9) 5.4 使用指南 (10) 6. 实验结果 (10) 6.1 基本功能实现结果 (10) 6.2 LED数码管清零功能实现结果 (11) 6.3 中断计数功能实现结果 (12) 6.4 频率设置功能实现结果 (13) 7. 心得体会 (14) 附录 (16)

摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。 本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED 数字显示频率设置的功能。 关键字:WINCE 中断数码管驱动 Abstract Learning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Sy stems’ development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform. The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED. Key words: WINCE Interrupt Digital Driving

嵌入式系统课程设计题目

嵌入式系统课程设计题目 2016.5 共同要求:在LCD上显示设计题目、设计者名字(主设计者在前) 常用外设引脚: LED:LED0(上边)~LED3(下边)分别接PF5~PF9引脚,低电平点亮 按钮:K0(上边)~K3(下边)分别接PA0、PC13、PA8、PD3引脚,另一端均接地,按下为低电平。 蜂鸣器:蜂鸣器BEEP接PB10引脚,为有源蜂鸣器,PB10输出低电平发声 1、频率计设计 所谓频率计,就是每秒的计数值。使用2个通用定时器,一个计时,另一个对外部信号计数,在LCD 上显示出计数值和频率值。 2、用DAC设计低频信号发生器——硬键盘 使用DAC的模拟输出功能,模拟输出正弦波、方波、三角波信号。 用实验板上的4个按钮(K0~K3)控制输出:K3用于循环选择输出的信号类型,K0、K1、K2用于设置输出的频率,K2用于循环选择输出频率的某个位(个十百千万),K0按钮用于对选中的位加1,K1用于对选中的位减1。 在LCD上显示出频率值和输出信号的波形(曲线)。 3、用DAC设计低频信号发生器——软键盘 使用DAC的模拟输出功能,模拟输出正弦波、方波、三角波信号。 在LCD上设计4个触摸屏按钮(K0~K3)控制输出:K3用于循环选择输出的信号类型,K0、K1、K2用于设置输出的频率,K2用于循环选择输出频率的某个位(个十百千万),K0按钮用于对选中的位加1,K1用于对选中的位减1。 在LCD上显示出频率值和输出信号的波形(曲线)。 4、直流电机控制器设计——硬键盘 直流电机控制原理:理论上转速与电压成正比,用PWM控制则与占空比成正比;旋转方向与绕组电流的方向有关,改变绕组接电源的极性,便可改变电机的转向。 使用通用定时器的比较输出引脚,接直流电机的绕组,改变比较寄存器的值,即改变了占空比,便可调速(可以使用ARM实验箱上的直流电机(有驱动),只需把时钟信号和地线接到直流电机上即可)。 用4个按钮分别控制启动、停止、加速、减速;在LCD上显示出电机的转速等级。 5、直流电机控制器设计——软键盘

基于STM32和uC_OS-II的多任务设计-嵌入式系统课程设计报告

基于STM32和uC_OS-II的多任务设计-嵌入式系统课程设 计报告 NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY 嵌入式系统课程设计报告 学生姓名: 学号: 学院: 专业班级: 指导教师: 同组成员: 2016年 12 月 26 日 嵌入式系统课程设计报告 一、课程设计目的 本课程设计是在《嵌入式系统原理与应用》课程的基础上,通过软件编程及仿真调试的实践,进一步掌握嵌入式系统的原理和应用方法,是毕业设计前的一 次重要实践,为今后从事嵌入式系统相关工作岗位打下良好的基础。 二、设计题目及要求 2.1 设计题目: 基于STM32和uC/OS-II的多任务设计 2.2 功能实现:

使用uC/OS-II的任务管理函数和STM32库函数控制相应的寄存器,完成一个多任务设计。整个设计共有4个任务,驱动一个LED指示灯闪烁、由3个LED指示灯组成的流水灯、驱动蜂鸣器和利用swd方式进行printf输出。 2.3 设计要求: 理解和熟练使用KEIL软件、STM32寄存器、STM32库函数和uC/OS-II任务管理函数,用KEIL软件完成编程和调试,下载到开发板中实现4个设定的任务,并完成课程设计报告。 四个任务分别为: (1)驱动1个LED指示灯闪烁、 (2)由3个LED指示灯组成流水灯 (3)驱动蜂鸣器发出响声。 (4)利用swd方式进行printf输出。 三、设计原理说明 3.1 硬件说明 本次课程设计主要使用的是STM32 神舟 IV 号开发板为基础进行课程设计的,本节将详细介绍神舟IV号开发板的各部分硬件原理与实现。 (1)开发板资源图 - 1 - 嵌入式系统课程设计报告

嵌入式课程设计

嵌入式课程设计 学院:计算机与通信工程学院专业:物联网工程班级:物联1501 姓名:王强学号:41501602 实验日期:2017年12月25日 实验名称: 嵌入式课程设计 实验目的: 以STC89开发板为硬件平台,开发温度采集、动态数码管显示、按键响应、与PC串口通讯的综合程序,实现以下功能: 1)PC上的串口调试助手通过串口给STC89开发板发送“GetTemp”命令。 2)STC89开发板从串口接收到“GetTemp”命令后启动温度传感器DS18B20的测温程序获取当前温度,测试完成时将所测得温度数据显示在动态数码管上。(动态数码管在温度获取之前应该显示“FFFFFFFF”,只有在获取温度后才显示温度值) 3)动态数码管显示出温度数据后,请通过按键触发STC89开发板通过串口回送步骤2所测的温度数据给PC上串口调试助手,同时恢复动态数码管显示为“FFFFFFFF”。为保证每个同学的实验都独立完成,要求回送的数据包含自己的学号,即如果你的学号是20150809,当前温度值是19.6摄氏度,那么在PC上的串口调试助手应该显示:20150809 : 19.6°C。硬件电路说明: 1)STC89处理器管脚和晶振电路

2)独立按键 独立按键一共5个,分别连接在单片机的P3.0到P3.4口。去抖动的方式,我们采用软件延时的方法。过程如下: 先设置IO口为高电平(一般上电默认就为高),读取IO口电平确认是否有按键按下,如有IO电平为低电平后,延时几个ms,再读取该IO电平,如果任然为低电平,说明对应按键按下,执行相应按键的程序。 3)DS18B20温度传感器部分 DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。 初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。 DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读

嵌入式Linux开发课程设计指导书

嵌入式Linux开发课程设计指导书 课程编码: 适应专业:计算机专业、电子信息工程专业 学时:3周(计算机专业),2周(电子信息工程专业) 学分: 3(计算机专业),2(电子信息工程专业)时间安排:分散 先修课程:高级语言程序设计、计算机组成原理、接口技术,嵌入式系统,操作系统指导书名称: 一、目的与任务: 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力。 本课程设计采用理论指导与实践相结合的方式,系统地学习并实践嵌入式Linux程序开发技术。通过课程设计,学生可以熟练掌握Linux的基本操作,系统管理,并具备Linux 下文件、进程、网络、GUI的开发方法,为实际应用开发打下坚实的基础。 二、目标 通过本次课程设计要求学生达到以下目标: 1)熟悉Linux操作系统具体操作(安装、基本命令、系统管理、FTP服务器搭建) 2)熟悉Linux下C程序开发调试的基本过程。 3)熟悉嵌入式Linux进程及进程间通信 4)能够熟练编写Linux应用程序,包括文件、网络、图形等 三、内容 任务1、基础知识,完成以下任务: Linux操作系统的安装、基本命令的使用,网络的配置,FTP服务器搭建,VI编辑器的使用,文件压缩方法。 任务2、Linux系统C程序设计的基本知识,完成以下任务 1)GCC编译器的使用,Linux系统C程序设计编译、调试方法。 2)分别用if和switch判断一个数的奇偶性并输出结果。 3)用for语句编写程序,计算100到200之间所有奇数的和。 4)用while语句编写程序,计算1000到2000之间所有能被16整除的数的和。

嵌入式课程设计报告

嵌入式课程设计报告设计题目:电子密码锁

、 摘要 随着科技和人们的生活水平的提高,实现防盗的问题也变得尤为突出,传统机械锁构造简单,电子锁的保密性高,使用灵活性好。根据需要设计运用W90P170开发板,制作一款电子密码锁,密码锁通过键盘输入密码,通过在LCD的文字和图片显示当前密码锁的状态。实现设置密码,密码验证,错误密码自锁、图片显示的功能。 目录

一、选题意义及系统功能 (3) 二、硬件设计及描述 (4) 三、软件设计及描述 (5) 四、程序代码 (6) 五、课程设计体会 (11) 六、运行结果 (12) 七、心得体会 (12) 八、参考文献 (13) 九、附录 (13) 一、选题意义及功能描述 1、选题意义 电子密码锁是通过密码输入来控制电路或是芯片工作,从而控制机械的开关闭合、开锁的电子产品。随着科技提高和人们生活水平的提高,对电子密码锁的需求增加。电子密码做较传统的机械锁安全性能更高。 特点如下: (1)保密性好,编程量大,随机开锁的成功率几乎为零。

(2)密码可变,用户可以随时改变密码,防止密码被盗,同时也可以避免人员的更替而使锁的密级下降。 (3)误码输入保护,输入密码多次错误是,系统进行自锁。 (4)无活动零件,不会磨损,寿命长。 (5)使用灵活性好,无需佩戴钥匙,操作简单。 2、功能描述 基本功能: (1)从键盘输入任意6位数字作为密码,将这六位数字经过USI总线存储到Flash芯片中,设置密码完成。 (2)从键盘输入密码,比较键盘输入的密码与Flash中存储的密码是否相同。 (3)如果密码正确,则LED灯点亮;如果密码不正确,则LED灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。 扩展功能: (1)首先显示“请输入密码:”,显示密码锁背景图片1。 (2)如果密码正确则显示“密码正确”,显示成功进入系统的背景图片2。 (3)如果密码不正确则显示“密码不正确,请重新输入:” (4)如果连续三次输入密码错误则显示“对不起,您已经连续三次输入密码错误,系统锁定”,显示图片1。

嵌入式系统设计课设报告分析解析

福州大学 《嵌入式系统设计课设》 报告书 题目:基于28027的虚拟系统 姓名: 学号: 学院:电气工程与自动化学院 专业:电气工程与自动化 年级: 起讫日期: 指导教师:

目录 1、课程设计目的 (1) 2、课程设计题目和实现目标 (1) 3、设计方案 (1) 4、程序流程图 (1) 5、程序代码 (1) 6、调试总结 (1) 7、设计心得体会 (1) 8、参考文献 (1)

1、课程设计目的 《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。《嵌入式系统设计》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。 通过课程设计,掌握以下知识和技能: 1.嵌入式应用系统的总体方案的设计; 2.嵌入式应用系统的硬件设计; 3.嵌入式应用系统的软件程序设计; 4.嵌入式开发系统的应用和调试能力 2、课程设计题目和实现目标 课程设计题目:基于28027的虚拟系统 任务要求: A、利用28027的片上温度传感器,检测当前温度; B、通过PWM过零中断作为温度检测A/D的触发,在PWM中断时 完成温度采样和下一周期PWM占空比的修正;PWM频率为1K; C、利用按键作为温度给定;温度给定变化从10度到40度。 D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设 定);当检测温度小于给定时,PWM占空比增大(增大幅度自己 设定); E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比; F、把E测量的PWM占空比通过串口通信发送给上位机; 3、设计方案-----介绍系统实现方案和系统原理图 ①系统实现方案: 任务A:利用ADC模块通道A5获取当前环境温度。 任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。

嵌入式程序设计课程设计

课程设计 课程名嵌入式软件开发技术 题目基于嵌入式Linux的温度监测系统的 设计与实现 专业计算机科学与技术(嵌入式系统方向)班级 13计算机嵌入式系统班 学号 学生姓名 2016年6月

摘要 温度是个很普遍而又非常重要的参数,在日常生活、工农业生产以及科研领域都有着广泛的应用。因此,研制能够准确地测量和记录这个参数值的系统具有十分重要的意义。 基于ARM的嵌入式温度监测系统是采用嵌入式Linux作为操作系统,针对以S5PV210为处理器的开发板设计的一个嵌入式温度监测系统。论文在分析了Linux设备驱动程序的基本工作原理基础上,讨论了开发中经常会碰到的中断处理、拥塞处理、I/O端口,并在此基础上实现了基于S5PV210嵌入式处理器的开、读、写、关外部RAM的字符设备驱动和网络驱动。结合高精度温度传感器DS18B20,实现温度的正确采集,并通过以太网络将数据上传给上位机客户端。 论文首先介绍了通信网络中各种设备特性、总线结构及传输技术,然后根据单片机与PC机之间的串行通信原理,用ubantu完成温度监测系统的软件设计与实现,为用户提供一个友好的人机界面,对监测系统进行控制并显示采集后的数据。本系统还通过多线程实现了多个客户端与服务器的通信。 关键词:S5PV210;嵌入式Linux操作系统;DS18B20;网络编程

Abstract Temperature is a very common and very important parameter, in daily life, industrial and agricultural production and scientific research fields have a wide range of applications. Therefore, it is very important to develop a system that can accurately measure and record the value of this parameter. The temperature monitoring system of base on the ARM is use of embedded Linux as the operating system for the processor to S5PV210 development board designed for an embedded temperature monitoring system. Based on the analysis of the basic working principle based on the Linux device drivers discussed development often encounter interrupt handling, congestion handling, I / O ports, and on this basis to achieve the embedded processor based on open S5PV210 reading, writing, characters off the external RAM device driver and network drives. Combined with precision temperature sensor DS18B20, to achieve the correct temperature acquisition, and upload the data via Ethernet to a PC client. At first,the paper introduces the characteristics of various devices in a communication network, the bus structure and transmission technology, and according to the principle of serial communication between SCM and PC, with ubantu complete temperature monitoring system software design and implementation, to provide users with a friendly man-machine interface, the monitoring system to control and display the data after collection. The system also enables communication via a plurality of multi-threaded client and the server. Key words:S5PV210; embedded Linux operating system; DS18B20; Network programming

广东海洋大学嵌入式系统课程设计

《嵌入式系统》设计报告学生姓名 Adao (学号) 所在学院数学与计算机学院 所在班级计科1141 指导教师 成绩

目录 1.课程设计目的 (2) 2.系统分析与设计 (2) 3.系统结构图 (2) 4.实现过程 (3) 5.实验效果 (5) 6.代码分析 (6) 7.系统测试出现的问题和解决的方案 (7) 8.系统优缺点 (7) 9.心得体会 (8) 参考文献 (8)

双按键控制流水灯系统开发 1.课程设计目的: 本次课程设计目的主要是对之前所学习的STM32的某个实验进行更深入的学习与了解,弄懂引脚,端口等相关的配置,对实验原理和具体实现有一定的理解,能做到自己通过原理图和使用库函数等把功能实现出来。我选择的是EXTI-外部中断实验并加以整合,具有一定实用功能的系统,可以对外提供服务。 2.系统分析与设计: 本课程设计所定义的系统主要功能为,通过两个按键KEY1(PA0)、KEY2(PC13)可以实现对流水灯进行同步控制,即一个开关控制产生的灯的状态可以被另一个开关去改变,按键控制需要对两个按键的端口,引脚等进行相关配置,并在两个引脚的中断服务程序中完成对流水灯状态同步控制的操作。本还想通过使用SysTick(系统滴答定时器)功能对流水灯进行精确定时,但由于时间比较匆促,最终没有实现。 3.系统结构图: 图3-1

4.实现过程: 1、GPIO的输入模式有上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。GPIO 中的每个引脚可以通过配置端口配置寄存器来配置它的模式。每个引脚的模式由寄存器的4个位控制。 上拉/下拉输入模式:1000 浮空输入模式:0100 模拟输入模式:0000 2、STM32的所有GPIO都可以用作外部中断源的输入端。STM32的中断由中断控制器NVIC 处理。STM32的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表面它的优先级别越高。抢占属性会出现嵌套中断。 3、编写NVIC_Configuration()函数配置NVIC控制器的函数。 static void NVIC_Configuration(uint8_t IRQ) { NVIC_InitTypeDef NVIC_InitStructure; //将NVIC中断优先级分组设置为第1组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置中断源 */ NVIC_InitStructure.NVIC_IRQChannel = IRQ;//设置中断线 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//设置响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //对NVIC中断控制器进行初始化 } 4、调用GPIO_EXTILineConfig()函数把GPIOA、Pin0和GDIOC、PIN13设置为EXTI输入线。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 5、填写EXTI的初始化结构体,然后调用EXTI_Init()把EXTI初始化结构体的参数写入寄存器。编写EXTI_PA0_Config()函数完成各种需要的初始化。 void EXTI_Pxy_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline clock and AFIO clock */

嵌入式系统课程设计

《嵌入式系统设计与应用》课程设计 题目嵌入式系统的实践教学探讨 1.嵌入式系统设计与应用课程的内容概述 1.1 内容概述 本课程适用于计算机类专业,是一门重要的专业课程。它的任务是掌握嵌入式系统的基本概念;掌握嵌入式处理器 ARM 体系结构,包括ARM总体结构、存储器组织、系统控制模块和I/O外围控制模块;掌握ARM指令集和Thumb指令集;掌握ARM汇编语言和C语言编程方法;了解基于ARM 的开发调试方法。它的目的是了解和掌握嵌入式处理器的原理及其应用方法。 1)介绍嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应 用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入 式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基 本内容,使学生系统地建立起的嵌入式系统整体概念。 2)对ARM技术进行全面论述,使学生对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础 的嵌入式芯片设计的技术基础。 3)ARM指令系统特点,ARM 指令系统,Thumb 指令系统,ARM 宏汇编,ARM 汇编语言程序设计,嵌入式 C 语言程序设计。 1.2实践教学探讨 在IEEE 计算机协会2004年6月发布的Computing Curricula Computer Engineering Report, Ironman Draf t 报告中把嵌入式系统课程列为计算机工程学科的领域之一,把软硬件协同设计列为高层次的选修课程。美国科罗拉多州立大学“嵌入式系统认证”课程目录包括实时嵌入式系统导论、嵌入式系统设计和嵌入式系统工程训练课程。美国华盛顿大学嵌入式系统课程名称是嵌入式系统

嵌入式系统课程设计

嵌入式系统课程设计 学号:1070410014030 班级:通信10 姓名:刘豆

嵌入式系统在智能交通中的应用摘要:介绍了嵌入式系统及其操作系统,并将其系统和通用计算机系统作了比较,总结了嵌入式系统产品在ITS(Intelligent Traffic system ),智能交通系统应用中的工作稳定性高,环境适应能力强和设备独立性三个特点,且结合嵌入式产品在ITS中应用的这几个特点,探讨了嵌入式系统在智能交通系统中应用研究。最后,展望嵌入式系统在ITS(智能交通系统)中的广泛应用。 关键词:嵌入式系统;嵌入式操作系;ITS;数字信号 中图分类号: Application of Embedded System in ITS Abstract: This article mainly introduce embedded system and its operation system , the embedded system are compared with general computer system. And this article summarizes three characteristics about embedded systems’ production applied to ITS: the high working stabilities, the strong ability for environment and the independency of equipments .Combining with the application research of embedded systems in ITS。At last, the author prospects that embedded systems are used widely in ITS in the whole nation. Keywords; embedded system; embedded operational systems ; ITS ; digital signal 嵌入式系统如今在实际生活中有巨大应用,观察身边不难发现电子产品、智能家居等大多用嵌入式系统来实现。这篇论文举一个应用实例,即智能交通系统。一个智能交通系统(ITS)主要由交通信息采集、交通状况监视、交通控制、信息发布和通信5大子系统组成。各种信息都是ITS的运行基础,而以嵌入式为主的交通管理系统就像人体内的神经系统一样在ITS 中起至关重要的作用。嵌入式系统应用在测速雷达、(返回数字式速度值)运输车队遥控指挥系统、车辆导航系统等方面,在这些应用系统中能对交通数据进行获取、存储、管理、传输、分析和显示,以提供交通管理者或决策者对交通状况现状进行决策和研究。 1.嵌入式系统与嵌入式操作系统 1.1嵌入式系统 通俗来讲,嵌入式系统是带有操作系统的单片机系统;主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组。他的框架可分为5个部分:处理器、内存、输入/输出、操作系统与应用软件(如图1所示)。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。总体看来,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。软件角度来看,嵌入式系统具有不可修改性,系统所需配置要求较低&系统专业性和实时性较强等特点。 1.2 嵌入式操作系统 对于目前发展迅速的信息产品来说,其最关键的核心技术就是嵌入式操作系统。嵌入式操作系统EOS(Embedded Operating System)是一种支持嵌入式系统应用的操作系统软件。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序;另外,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

嵌入式课设

河海大学计算机及信息工程学院(常州)课程设计报告 题目基于uCOSII的LCD驱动 专业、学号 授课班号 学生姓名 指导教师 完成时间2013,06,25

课程设计(报告)任务书 (理工科类) Ⅰ、课程设计(报告)题目: 基于uCOSII的LCD驱动 Ⅱ、课程设计(论文)工作内容 一、课程设计目标 1、培养综合运用知识和独立开展实践创新的能力; 2、掌握基于uCOSII的LCD驱动编写开发过程; 3、掌握在UCOSII操作系统下添加LCD驱动程序的基本方法; 4、使用做好的驱动程序做一些简单的应用实例。 二、研究方法及手段应用 1、将任务分成若干模块,查阅相关论文资料; 2、分模块调试和完成任务。 三、课程设计预期效果 1、完成实验环境搭建; 2、在移植好的uCOSII工程中添加LCD的驱动程序; 3、学习在uCOSII下,LCD应用任务的简单编程实例,实现实验箱的CPU板上的D7、D8灯闪烁的同时,在LCD屏上也进行D7、D8灯的模拟闪烁。 4、在完成要求任务的情况下,添加其他模块。 学生姓名:彭华亮专业年级:自动化10级

目录 前言 ............................................ 错误!未定义书签。第一章课题目标及总体方案.. (3) 第二章系统设计 (3) 2.1系统及工具简介 (3) 2.1.1 EL-ARM-830实验箱 (3) 2.1.2 ADS v1.2集成开发环境 (4) 2.2系统功能实现 (4) 2.2.1 uCOSII内核移植 (4) 2.2.2 LCD驱动程序的编写 (6) 2.2.3 uCOSII操作系统下添加LCD驱动程序 (7) 2.2.4 测试程序的编写 (8) 第三章实验(测试)结果及讨论 (9) 3.1测试步骤 (9) 3.2注意事项 (9) 3.3测试结果 (10) 心得体会 (10) 参考文献 (12) 附录 (13)

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于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 日

嵌入式课程设计

嵌入式课程设计报告 学院信息电子技术 专业电子信息工程 班级13级 学籍号 姓名 指导教师 2016年0月00日

基于ARM9的无线智能家居控制系统 1.引言 当网络席卷整个社会,带来经济飞速发展的同时,也给人们的生活带来无限的惊奇。不断更新的生活方式,使得越来越多的人追求对生活的舒适度和享受度。智能家居作为新生力量呼之欲出,自然地走进了我们的生活,随之,引领新一代的数字家庭生活。 所谓“智能家居”(Smart Home),又称智能住宅。它利用先进的计算机嵌入式系统、通信技术、现代传感技术和网络技术,将家庭中的各种设备(如照明系统、安防系统、信息家电)通过家庭内部无线网络连接到一起。一方面,智能家居将使得使用它的用户能够更加方便、快捷和轻松的管理自己的家电设备,例如,用户可以通过平板电脑、智能手机和其他控制终端设备对家用设备进行远程操控和状态的实时监控,进行室内场景配置以及形成多个家电设备的联动功能等等;另一方面,智能家居内的各种设备不需要通过用户的操控就可以实现相互间的通讯,从而根据相关家电设备的不同的状态互动运行,为用户提供高效、便利、舒适与安全的智能家居生活。 2.系统设计 (1)硬件电路设计 文中提出的基于ARM9的无线智能家居控制系统主要包括ARM9核心控制模块,无线通信模块、LCD触摸屏模块和家居电器,另外还有传感检测,语音报警和电源等模块。系统总体结构模型图如图1所示。 图1系统总体结构模型图 其中ARM是整个系统的控制核心,通过GPRS和ZigBee无线通信网络收

发控制指令实现对家居电器进行综合监控,同时提供防火墙的功能,阻止外界对家庭内部设备的非法访问和攻击。 无线通信模块分为本地和远程两部分,本地通信主要通过新型的ZigBee无线通信技术实现系统与家居电器的通信,达到对其控制;远程通信是利用手机通过GPRS通信网络或利用计算机通过互联网实现人与控制系统的通信,进而达到对家居电器的远程监控。采用无线通信技术省去了布线使家居布局更加灵活,远程控制使家居电器工作更加贴近人们的工作和生活要求。 智能家居控制系统的具体功能包括:家居电器的综合监控、室内环境信息采集、自动报警、本地控制、远程控制、安全防盗等。 基本电路组成 1)主控芯片S3C2440A 本系统采用的是Samsung公司推出的16/32位RISC微处理器S3C2440A,它具有0.13μm的CMOS标准宏单元和存储器单元,它的杰出的之处是其处理器核心,该核心是由Advanced RISC Machines有限公司设计的ARM920T内核,ARM920T内核实现了MMU,AMBA BUS和Harvard高速缓冲体系结构,这一体系结构具有独立的16KB指令Cache和16KB数据Cache。 2)电源电路 电源是整个智能家居控制系统的能量之源,电源的稳定供电为系统得以安全、正确的运行提供了保障,本系统共需要两种电压5V和3.3V。为了提高终端设备内部的安全性并进一步减低系统的设计成本,本系统选用的市面上的12V、2A的开关稳压电源作为系统的基本供电输入,首先经过LM2576转换成5V,并经过滤波和稳压电路输出稳定的5V电压,为系统上需要5V电源的电路供电。其次,5V输出再经过LM1117D转换成3.3V,经过一定的滤波处理后为系统需要3.3V供电的电路供电,如图2所示。 图2 3.3V电压转换输出电路 3)复位电路的设计

嵌入式课程设计流水灯

流水灯编程 实验目的: 掌握GPIO端口的基本控制方法 掌握硬件电路仿真方法。 实验内容: 1、复习流水灯的工作原理。 2、按教材上 3、4节的内容或实验指导书2、1节的内容创建好项目,生成可执行文件。 3、阅读LED示例程序代码。 4、软件模拟,无误后下载到实验板上运行,观察效果。 5、通过硬件仿真的方式调试程序。分析LED_Init、main这2个函数中每一行代码的作用。 6、修改程序使得灯改变一次状态的时间间隔为0、02、0、01、0、1、0、3、0、5、1、2秒。 7、修改程序使得灯闪动的方向反向。 8、修改循环亮灯的程序,使每次亮灯的起始位置依次下移。 选做进阶版 1.用左边4个灯闪烁代表绿灯,右边4个灯闪烁代表红灯,8个灯 全亮代表黄灯。模拟交通信号灯运行(绿灯10秒,红灯20秒, 绿到红过渡时黄灯3秒) 2、将自己的学号编码用LED灯效果展示出来。 实验原理:

电路中有L0,L1,L2,L3,L4,L5,L6,L7共八个发光二极管,当引脚LED_SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。 A~H引脚连接STM32F108VB芯片的PE8~PE15,程序初始化时,对其进行初始设置。引脚LED_SEL为1时,发光二极管才工作,否则右边的数码管工作。注意,LED_SEL连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的IO不可用,需对AFIO_MAPR寄存器进行设置,设置其为IO可用。 实验过程及结果描述: 按实验内容的步骤一步一步的来。重点描述实验内容的6、7、8还有选修进阶的1、2、 要实现改变灯状态的时间间隔,只需改变delay_ms这函数的里面的参数即可,例如时间间隔改为0、02秒就将参数改为20,1秒就将参数改为1000,(delay_ms()函数里面参数的单位为ms)其它以此类推。通过参数的改变可以瞧到灯状态改变的时延相应的改变了。 改变灯的闪动方向则将light左移或者右移位数的值赋给light,例如循环一次左移一位,则light=light<<1,右移则就是light=light>>1;这里又涉及到当左移(右移)到最左(右)一位时,再次亮灯时的起始位置设置的问题,这里就可以设置当左移(右移)到最左(最右),设置一个判断语句当左移(右移)到左(右)端点时,将初始值赋给题目要求的位置即可。 实验结果:灯的移动方向改变。每次循环完一次之后通过改变赋给初

09嵌入式网络协议及其应用开发课程设计报告1

课程设计说明书 学生信息 系别计算机工程学院专业计算机科学与技术 班级姓名学号 课程设计信息 课程名称嵌入式软件开发课程设计 课程设计题目基于QT的直流电机设计 课程设计时间学期第 1~16 周 小组情况指导教师 批改情况 成绩评阅教师批改时间2012年5月 6 日2011-2012学年第2 学期

目录 1.课程设计内容 (3) 2.课程设计目的 (3) 3.背景知识 (3) 4.工具/准备工作 (3) 5.设计步骤与方法 (3) 5.1.步骤 1:设计直流电机控制界面 (3) 5.1.1. 步骤1.1:添加控件事件代码 (4) 5.2. 步骤2:编译程序 (5) 5.2.1. 步骤2.1:redhat主机下编译程序 (5) 5.2.2. 步骤2.2:在ARM板下测试直流电机界面–嵌入式下运行 (6) 6.软件测试截图 (7) 7.设计结果及分析 (7) 8.设计结论 (7) 9.问题及心得体会 (7) 10.对本设计过程及方法、手段的改进建议 (8) 11.任务分配 (8) 12.参考文献【1】C++ GUI Qt4编程(第2版) 兰切特 (Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人子工业出版社2008 (8) 13.课程设计评价(教师) (8)

课程设计报告 1. 课程设计内容 本课程设计的内容是设计一个基于QT的直流电机设计,支持电机正反转以及设置参数以控制转速。 2. 课程设计目的 考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。 3. 背景知识 1.嵌入式linux下驱动程序的基本编译方法 2.掌握直流电机控制基本原理 3.QT软件的应用 4. 工具/准备工作 硬件: 安装有QT的PC机一台 软件: WindowsXP操作系统 VMware Workstation 7.0 Red Hat QT 4.6.3 5. 设计步骤与方法 5.1.步骤 1:设计直流电机控制界面 利用QT Creator,ui文件来编写一个良好的用户交互界面:

嵌入式系统课程设计选题要求及题目

嵌入式系统课程设计—选题要求及课题 1、嵌入式系统课程设计时长两星期,要求学生分组进行课程设计,每组学生人数为2~3人(可在不超过3人的范围内由指导教师具体规定),报告雷同超过60%者,成绩都记不及格! 2、学生需要在附后的设计题目总表中进行选题,原则上需要在6月17号前完成选题,并开始课程设计工作! 附:嵌入式系统课程设计题目 ARM-Linux 嵌入式系统在农业大棚中的应用(温度、湿度和二氧化碳浓度是影响棚栽农作物生长的3 大要素。为了实现农业大棚中这3 种要素数据的远程实时采集,引入了当前嵌入式应用中较为成熟的ARM9 微处理器和Linux 嵌入式操作系统技术, 采用温度传感器PH100TMPA、湿度传感器HM1500 和二氧化碳浓度传感器NAP221A ,设计一种基于TCP/ IP 协议的嵌入式远程实时数据采集系统方案。从硬件设计和软件实现2 方面对该系统进行具 体设计。) 1.ARM系统在LED显示屏中的应用(利用ARM系统控制彩色LED显示屏) 2.ARM 嵌入式处理器在智能仪器中的应用(设计一种基于ARM 嵌入式处理器系统的智 能仪器的硬件和软件设计方案, 并结合uc/o s2II或者Linux嵌入式实时操作系统, 给出一套完整的任务调度和管理的方法, 最后用实例说明) 3.ARM系统在汽车制动性能测试系统中的应用(采用ARM系统构建一个路试法的汽车制 动性能测试系统) 4.ARM 嵌入式控制器在印染设备监控中的应用(针对拉幅热定型机,设计一种基于485 总 线的分布式监控系统。用ARM 嵌入式控制器实现主、从电机的同步运行和烘房温度的控制;在PC 机上用VB6. 0 设计转速和温度的监控画面;实现ARM、变频器和PC 机之间的数据通信。) 5.基于ARM系统的公交车多功能终端的设计(完成电子收费、报站、GPS定位等功能) 6.基于ARM9的双CAN总线通信系统的设计(设计一种基于ARM9内核微处理器的双路 CAN总线通信系统。完成系统的总体结构、部分硬件的设计,系统嵌入式软件的设计,包括启动引导代码U - boot、嵌入式L inux - 214118操作系统内核、文件系统以及用户应用管理软件四个部分。) 7.基于ARM9 和Linux 的嵌入式打印终端系统(嵌入式平台上的打印终端的外围电路连 接设计、嵌入式Linux 的打印机驱动程序开发和应用程序的开发) 8.基于ARM 的车载GPS 终端软硬件的研究(重点研究基于ARM 的导航系统的软硬件设

相关文档
最新文档