嵌入式开发实践指南 报告1
适用场景:嵌入式系统开发测试、电子工程课程设计
报告要点:ARM定时器计数功能实现、LED数码管显示控制、信号放大整形电路设计
行文逻辑:设计系统原理框图→搭建电源模块→实现信号放大整形→完成ARM定时计数→显示频率数值
此次设计我们采用以LM3S2100为微控制器,并通过硬件和软件两方面设计,结合6位LED数码管,放大整形电路,来实现频率计在嵌入式系统中的开发与应用。
本次课程设计其主要目的是通过这学期所学的ARM知识,来实现频率计的功能,本次设计我们利用了定时计数器的功能,对输入的信号进行实时的、高精度的频率测量,并通过6位LED数码显示管显示测量结果。论文中阐述了相关的硬件原理与应用方案,并在此基础上叙述了软件设计最终结合硬件和软件完成了本次设计。
关键词:LM3S2100、频率计、LED数码显示管
1 绪论
频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
本频率计将采用定时、计数的方法测量频率。测量范围在9kHz以下的方波,时基宽度为1us,10us,100us,1ms。用ARM芯片实现自动测量功能。
基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对方波的频率进行自动的测量。
1.1本次设计任务
一.设计题目:ARM为内核的频率计
二.主要功能:用ARM的定时器/计数器的定时和计数功能,外部扩展6位数码管,要
求累计每秒进入ARM的外部脉冲个数,用LED数码管显示出来,或是
用上位机显示。
三.设计要求:用protel画出最小系统和外围扩展电路。显示部分可用LED数码管或是
上位机显示。要求小组成员分工明确。
1.2设计基本原理
所谓频率,就是周期性信号在单位时间(1s)内变化的次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数为N,则其频率可表示为
被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号的频率相同。当1s信号来到时,被测脉冲信号进入芯片相关的,计数器开始计数,直到1s信号结束时,停止计数。若在1s时间内计数器计得的脉冲数为N,则被测信号频率fX?Nhz。
2 设计理念及设备
2.1设计理念
说到用单片机设计[2]的`频率计,这里说一下单片频率计ICM7216D。单片频率计ICM7216D是美国Intersil公司首先研制的专用测频大规模集成芯片。它是标准的28引脚的双列直插式集成电路,采用单一的+5V稳压电源工作。它内含高频振荡器、10进制计数器、7段译码器、位多路复用器、能够直接驱动LED显示器的8段段码驱动器、8位位码驱动器。其基本的测频范围为DC至10MHz,若加预置的分频电路,则上限频率可达40MHz或100MHz,单片频率计ICM7216D只要加上晶振、量程选择、LED显示器等少数器件即可构成一个DC至40MHz的微型频率计,可用于频率测量、机械转速测量等方面的应用。还有,PTS2600是英国研制的一款微波频率计,该频率计可以测量频率高达26GHz的信号,而价格才只有几万元,可谓是物美价廉。PTS2600虽然是一个低价格的微波频率计,但它能在四个波段有很好的灵敏度测量40Hz到20GHz的频率。也可以用它来测量高达26GHz的频率,只是灵敏度稍稍低了一些。日常工作中,用它来测量
VF/VHF/UHF频段的频率,也十分方便和准确。PTS2600使用一个12位数字的LCD液晶显示屏来显示所测得的频率、闸口时间(分辨率相关)、菜单功能以及频率表的测量结果。所有这些数值都是同时显示在一个屏幕上的。PTS2600的机箱采用高标准的铝质材料制成,各模块安装在下方有钢板支承的母板上。模块相对独立,维修方便,主要通过更换模块进行。 我国利用相检宽带测频技术设计的高精度频率计也非常具有突破性和实用性。该项新技术及仪器是针对已有测频技术的特点及存在问题,推出完全新颖的检测精度高、便于实施且设备构成又比较经济的一种新技术及仪器。
2.2设计所用设备和器材
(1)电源模块
(2)放大整形电路(三极管9014和74LS00)
(3)ARM开发板LPC2131
(4)LED数码显示管
3 硬件设计方案
3.1设计系统原理框图及介绍
图1 原理框图
由上图知,一个被测信号经过放大整形再进入ARM开发板,然后经过1S的定时捕获得出频率值,再经由6位LED数码显示管显示出数值。
3.2电源
电源模块——参考电压源为系统芯片如A/D、D/A转换IC或外设提供参考电压,电路如图2。
嵌入式开发实践指南 报告2
适用场景:嵌入式开发调试、硬件接口测试
报告要点:配置UART模块参数、调试超级终端连接、实现多位数相加功能
行文逻辑:连接设备→配置UART→调试通信→编写程序→验证结果
学习lm3s9b92的串口通信
学习应用超级终端调试串口
学会应用UART有关的库函数
二、实验设备
计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条
三、实验原理
Stellaris系列ARM的UART具有完全可编程、16C550型串行接口的特性。Stellaris系列ARM含有2至3个UART模块。
该指导书在第一部分的1.2节中说明,该开发板使用了FT2232芯片实现usb到串口的转换。并设置在芯片的B通道上使用虚拟COM接口(VCP)。虚拟串行端口(VCP)与LM3s9b92上的UART0模块连接。在安装FTDI驱动程序后,windows会分配一个串行通信端口号到VCP通道,并允许windows应用程序(如超级终端)通过USB与LM3s9b92上的UART0进行通信。 利用Windows超级终端调试UART的方法
对于该开发板,使用的是USB虚拟的COM端口,无须使用DB9连接器。因此下面讲解一下如何利用Windows附带的超级终端来调试UART接口。
Windows附件里的“超级终端”是个非常实用的应用程序,可以用来调试电脑的COM串行口,也能很好地支持通过USB虚拟的COM口。以下是超级终端配置COM端口的过程:
四、实验要求
采用超级终端作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:既可以采用轮询的方式也可以应用中断。
五、实验步骤
1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。
2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "grlib/grlib.h"
#include "drivers/kitronix320x240x16_ssd2119_8bit.h"
#include "drivers/set_pinout.h"
#include "systemInit.h"
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART0); // 使能UART模块
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA); // 使能RX/TX所在的GPIO端口 GPIOPinTypeUART(GPIO_PORTA_BASE, // 配置RX/TX所在管脚为
GPIO_PIN_0 | GPIO_PIN_1); // UART收发功能
UARTConfigSet(UART0_BASE, // 配置UART端口
9600, // 波特率:9600
UART_CONFIG_WLEN_8| // 数据位:8
UART_CONFIG_STOP_ONE | // 停止位:1
UART_CONFIG_PAR_NONE); // 校验位:无
UARTEnable(UART0_BASE); // 使能UART端口
}
void uartPuts(const char *s)
{
while (*s != "")
{
UARTCharPut(UART0_BASE, *(s++));
}
}
main(void)
{
char c,a[12];
int sum=0,num=0,i;
// jtagWait( ); // 防止 JTAG 失效,重要!
clockInit( ); // 时钟初始化:晶振, 6MHz
uartInit( ); // UART 初始化
uartPuts("输入格式 m+n= ");
for (;;)
{
c = UARTCharGet(UART0_BASE); // 等待接收字符
if(c>="0"&&c<="9")//判断收到的是否为字符{
num=num*10+c-"0"; //将收到的字符转换为整形储存 }
else if(c=="+"){ //接收第二个数 sum=sum+num;
num=0;
}
else if(c=="=") //输出
{
sum=sum+num;
num=0;
for(i=0;sum!=0;i++)
{
a[i]=sum%10;
sum=(sum-a[i])/10;
}
for(i--;i>=0;i--){
UARTCharPut(UART0_BASE, a[i]+"0"); }
UARTCharPut(UART0_BASE, " "); }
if (c == " ") // 如果遇到回车
{
UARTCharPut(UART0_BASE, " "); // 多回显一个换行}
}
}
3、 书写实验报告,要求附上程序流程图。
六、实验心得
比较轮询方式与中断方式
嵌入式开发实践指南 报告3
适用场景:单片机开发前技术准备、嵌入式系统培训考核
报告要点:焊接开发板模块、编写数码管显示驱动、实现rs485多机通信
行文逻辑:认识单片机结构→搭建开发板模块→编写驱动程序→实现功能模块
一、认知实习经历
(一)单片机的背景及应用
单片机是计算机技术发展史上的一个重要里程碑,标志着计算机正式构成了通用计算机系统和嵌入式系统两大分支。
单片机软硬件结合、体积小,容易嵌入到各种应用系统中。得到广泛应用且其体积小、成本低,嵌入到工业控制单元、机器人、智能仪器仪表、汽车电子系统、武器系统、家电系统、办公自动化设备、金融电子系统、玩具、个人信息终端及通讯产品中。
它功能齐全,应用可靠,抗干扰潜力强;简单方便,易于普及。单片机技术是易于掌握技术。应用系统设计、组装、调试已经是一件容易的事情,工程技术人员透过学习可很快掌握其应用设计技术;发展迅速,前景广阔。短短几十年,单片机经过4位机、8位机、16位机、32位机等几大发展阶段。尤其是集成度高、功能日臻完善得单片机不断问世,使单片机在工业控制及工业自动化领域获得长足发展和超多应用。目前,单片机内部结构愈加完美,片内外围功能部件越来越完善,向更高层次和更大规模的发展奠定坚实基础。
单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点一般微机根本做不到。又由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必备外围扩展电路,就能够灵活的构成各种应用系统,如工业自动监测监视系统,数据采集系统,自动控制系统,智能仪器仪表等。
(二)认识stc11f32xe单片机的基本结构和原理
stc11f32xe单片机是由一个8位cpu,4kb程序存储器,一组特殊功能寄存器,4个输入输出口(即p0p1p2p3),一个全双工串行口,2个16位定时器/计数器,5个中断源等部分组成,各功能部件透过片内单一总线连成一个整体,集成在一块芯片上。共有40个引脚,采用双列直插的封装形式,每个引脚都有其特定功能。
(三)搭建开发板的各个模块
学习单片机的前一个星期就是在设计好的电路板上用电烙铁和锡丝把每个电阻、电容、芯片、开关、插槽、按键、数码管等部件焊接到板子上。由于要锻炼动手实践潜力,刚开始焊接电源模块时,出现虚焊、短路等各种状况。由于刚接触,不太熟练,不能轻车熟路的驾驭烙铁,但是随着模块的慢慢搭建,锡焊技术已明显好转,就美观度而言和其他电子设备上的焊接技术能够相媲美了。
经过一个星期的焊接,单片机开发板的每一个模块已基本完成,经过对各个模块的检查测试,全部透过后我自我的单片机开发板就完成了。
(四)编写驱动程序,实现对各个模块的操作
(1)、数码管显示
单片机开发板搭建完成后,写的第一个驱动就是0—f在数码管上的显示。涉及到的两个芯片分别是:74vhc595d和74ls138,前者实现对8段数码管的段选,后者控制位选,两者结合实现数码管对不一样数字的显示。
单片机模板用的是共阳极的数码管,建立数组保存数码表,然后透过段选和位选对每个数组元素进行显示。
第一次接触keil软件,不仅仅要学习如何建立工程,还要掌握基本的引脚控制。在网上查询资料和观看单片机教程的过程中学会了如何写驱动,经过接近两天的自我学习,我的第一个驱动——数码管显示程序出炉了,很高兴。然后便是把写好的程序生成。hex文件烧到单片机当中,数码管便可显示。
(2)按键操作
我们所用的矩阵键盘与网上通用的键盘略不相同,(我们采用的是3x6,而通用的开发板多采用4x4键盘)但是思想相同。键盘的引脚分别用了p0口和p2^5引脚。
首先实现单击,即按每一个键显示不一样的键值。调试透过后再实现双击和组合键。
按键的关键是先对行赋值(或对列赋值),若对行赋值(列赋值),则对列进行检索(行进行检索)。当有按键被按下,相应的列(或行)拉为低电平。
在用数码管显示按键的状态时,由于595 io的引脚和按键第三行用的都是p2^5引脚,数码管显示有时出现问题,与程序中间的延时时光有关。不太好控制。
(3)温度测量
温度的测量主要用到ds18b20,透过对ds18b20芯片个参数的控制便可驱动该芯片,把结果显示在数码管上。
ds18b20芯片操作包括读操作、写操作以及对其的初始化。在读操作时把读的结果与10相除得温度的十位,取余数得温度的各位(在室温下实验)。
(4)时钟控制
时钟的显示主要是透过对ds1302进行控制,能够实现时、分、秒、年、月、日的显示,并且有漏电保护功能。同样把时分秒显示在数码管上,透过按键再切换到年月日。
在给ds1302初始化时,如果写保护关,则有漏电保护功能(即断电重连后,时钟会自动记录断电的这段时光,并顺着此时光继续计时。)
(5)rs485通信
用rs485实现多机通信,编写通信协议实现一台主机和多台从机进行通信。在进行该模块设计时,由于平台搭建的有点问题,使得rs485的电压拉不到工作电压。然后把问题反映给了我们的两位指导老师,经过他们的一番测试,最终找到问题的所在:是因为一个电阻的原因。当然在观看老师对电路的检测中受益匪浅。也对多功能电压表的应用更为了解。
(6)x屏显示
x屏是x的点阵lcd,能够显示x行汉字。用x屏实现计算器、阅读器、推箱子和足球射门等功能。这四个程序设计全是基于x屏和对按键的检测,用按键来控制各个功能,并在屏上图形化显示。
在对计算器的设计要实现0——999之间的四则运算,尤其是除法运算还涉及到浮点数。阅读器主要是上下换行和左右翻页,由于要存储一段文字在寄存器中,文字不能太长,否则会超过程序寄存器的大小而不能进行构建。
推箱子是透过数组0和1实现小人和箱子的走与停。足球射门透过产生随机数来控制球的方向的任意性。
二、总结
两个x的暑期很快结束了,总体上来说感觉很充实,没有白白浪费暑假时光,也充实了自我的知识储备,获益匪浅。
当然很感谢xx老师和xx老师,他们放下自我的假期,在酷暑中坚持没两天一到,为我们解答学习过程中的疑问。还有就是系里的支持,为我们带给凉爽的学习环境,会议室配有空调,在学习的同时不用经受酷暑的考验。虽然我们的学习场所很简陋:桌椅是我们从5栋教学楼搬的,电源插座是刚刚搭建的,和在普通教室上自习的同学来比我们是幸福的。
实习前虽说已经大二结束,但是对我们的专业嵌入式方向始终不甚明白,纵然专业导论课已经谈过,但是总感觉迷茫与空洞。书本上的知识也学了不少,像电路,数字逻辑,组成原理等一些课,但是这些课始终是书本知识,得不到实际的应用。透过这次的亲自动手设计到编写驱动设计程序,最后切身体会到在开发产品中要用到哪些知识。依然记得实训刚开始时,大家都很兴奋,因为我们要自我动手焊接自我开发板的每一模块,从电源模块开始着手。
“书到用时方恨少,事要做时方知难”,一点也不假,感觉焊接就应不难,不就把锡点到电器元件引脚上不就行了,但是真正拿着烙铁去焊时,手是抖动的,烙铁也不打听话……淡然这只是刚开始时,经过多次的练习慢慢的得心应手。怪不得社会上的公司招聘都提到:有工作经验者优先。是啊,干过的总比纸上谈兵的强的多,公司不需要对你培训,能够直接工作给公司带来效益。
焊接电路板的时光很短,这只是简单的技术活,不需要逻辑上的思考。接下来就是用我们焊接好的开发板开始我们的单片机之旅。由于单片机课程还没开,我们不得不从网上查资料,看教程弥补自我基础知识的匮乏。还记得自我写的第一个程序,驱动数码管。
虽然看着焊接好的开发板很好看,但是要写程序点亮它就不那么容易了,第一感觉就是无从下手。老师推荐我们从网上看前人的驱动程序,然后比着写,由于使用的单片机不一样,电路的设计不一样,在看网上程序时务必要明白其原理,否则还是无法借鉴过来,就这样第一个驱动程序花费了我两天时光才把数码管点亮。开发的过程是痛苦的,但是结果是令人无比兴奋的。看着自我点亮的数码管心里个性高兴。
接下来的日子就是每一天对着电脑编写程序,然后下载到单片机中进行检测,查看能否运行。有时花费了一天的时光编写的一个程序下载单片机中竟然运行不了或者显示错误,心里真的个性失望;有时为了一个驱动程序想了一天还是一无所获,会个性烦躁……但是看到其他同学都在专心的研究,自我也就安慰自我别灰心,要坚持。就想中说的一样不抛弃不放下,所以自我也不能放下自我。然后又重新打起精神,投入到学习当中,就是在这样的一次次的自我暗示中,在和同学们一齐拼搏一齐学习。
还记得在进行多机通信时,由于要把所有的单片机连接在一齐,大家不得不默契配合,一齐想办法,编写协议“众人拾柴火焰高”,很快一个主机程序,从机程序就出炉了。
经过一个暑假的认知实习我学到的不仅仅是知识,还有职责心、信心、恒心以及团队合作潜力。我想无论是在学校还是以后踏入社会这些都必不可少。我认识到了我所学知识的重要性。知识犹如人的血液。人缺少了血液,身体就会衰弱,人缺少了知识,头脑就要枯竭。
这次的单片机培训应用到的不仅仅是单片机知识,还有以前的课程,所以知识的积累也是十分重要的。这次亲身体验让我有了深刻感触,这不仅仅是一次实践,还是一次人生经历,是一生宝贵的财富。在磨练自我的同时让自我认识了很多,使自我未踏入企业就已经对企业有了必须的了解。
透过这次的实习,我对自我的专业更清楚的认知,以前一向不清楚嵌入式的具体应用,不明白以后毕业了该干什么。但透过这次的实习,我对嵌入式有了更清楚地认识,对单片机有了更清晰的理解。我认识到做什么都要有职责心,只有抱着认真负责的态度才能把任务完成。而程序员更是对耐心和细心有很高的要求。
实习的过程不仅仅仅是一个认知的过程,更是一个反思的过程。学习到新知识固然可喜,但能否用新知识对旧只是加以反思,这是关键的关键。
嵌入式开发实践指南 报告4
适用场景:arm开发环境搭建、嵌入式项目实训
报告要点:液晶屏电路设计、uc/os-ii内核移植、串口通信程序编写
行文逻辑:准备实验环境→设置串口接收→打开实验例程→编译链接工程→下载运行程序
一、嵌入式系统开发与应用概述
在今日,嵌入式arm 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式arm 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,arm 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。本章节就是将你领入arm 的学习大门,开始嵌入式开发之旅。以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个it领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征, 目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。现在许多嵌入式处理器也是从早期的pc 机的应用发展演化过来的,如早期pc 诸如trs-80、apple ii 和所用的z80 和6502 处理器,至今仍为低 端的嵌入式应用。在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。嵌入式处理器目前主要有am186/88、386ex、sc-400、power pc、68000、mips、arm 等系列。
在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的rom/eprom/flash/eeprom、sram、接口总线及总线控制逻辑、定时/计数器、watchdog、i/o、串行口、脉宽调制输出、a/d、d/a 等各种必要的功能和外设。
二、实习设备
硬件:embest edukit-iv实验平台、ulink2仿真器套件、pc机
软件:mu;vision ide for arm集成开发环境、windows 98/20__/nt/xp
三、实习目的
1.初步掌握液晶屏的使用及其电路设计方法;掌握s3c2410x处理器的lcd控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uc/os-ii中;通过实验掌握液晶显示文本及图形的方法与程序设计。
2.了解s3c2410x处理器uart相关控制寄存器的使用; 熟悉arm处理器系统硬件电路中uart接口的设计方法:掌握arm处理器串行通信的软件编程方法。
3.掌握有关音频处理的基础知识;通过实验了解iis音频接口的工作原理;通过实验掌握对处理器s3c2410x中iis模块电路的控制方法;通过实验掌握对常用iis接口音频芯片的控制方法。
4.了解mu;c/os-ii移植条件和内核基本结构;掌握将mu;c/os-ii内核移植到arm9处理器上的方法和步骤。
四、实习要求
通过对mu;c/os-ii移植实验、mu;c/os-ii lcd显示实验、串口通信实验、iis音频实验、液晶显示实验的学习,并将各部分内容合并,最终得出实习结果,实习要求在键盘上输入学号,在液晶显示屏上显示相应的学生信息。学生信息包括显示每个人的照片和姓名系别等,并用键控设置学生输出的顺序,输入学号就显示那个学生的信息,然后过一段时间就顺序循环播放。
移植mu;c/os-ii内核到arm处理器s3c2410,在ide中观察其运行状况编写s3c2410x处理器的串口通信程序;监视串行口uart1动作;将从uart1接收到的字符串回送显示。将从uart1接收到的字符串回送显示。
通过使用embest edukit-iv实验板的彩色液晶屏(800x480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uc/os-ii系统中实现位图显示。在uc/os-ii中建立五个任务tast1和tast2,其中tast1顺序熄灭四个led,延迟一会在顺序点亮四个led。tast2在lcd屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。过使用embest edukit-iii实验板的256 色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:画出多个矩形框;显示ascii字符;显示汉字字符;显示彩色位图。
五、实习步骤
1. 准备实验环境
使用ulink2仿真器连接embest edukit-iv实验平台的主板jtag接口;使用embest edukit-iv实验平台附带的交叉串口线,连接实验平台主板上的com2和pc机的串口(一般pc只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买usb转串口适配器扩充);使用embest edukit-iv实验平台附带的电源适配器,连接实验平台主板上的电源接口。
2. 串口接收设置
在pc机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。(注:超级终端串口的选择根据用户的pc串口硬件不同,请自行选择,如果pc机只有一个串口,一般是com1)
3. 打开实验例程
1)打开实验程序
2)运行mu;vision ide for arm软件
3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件readme.txt,详细阅读并理解实验内容。
4)工程提供了两种运行方式:一是下载到sdram中调试运行,二是固化到nor flash中运行。用户可以在工具栏select target下拉框中选择在ram中调试运行还是固化flash中运行。下面实验将介绍下载到sdram中调试运行,所以我们在select target下拉框中选择uart_test in ram。
5)接下来开始编译链接工程,在菜单栏“projiet”选择“build target”或者“rebuild all target files”编译整个工程。
6编译完成后,在输出窗口可以看到编译提示信息,比如“".sdramuart_test.axf" - 0 error(s), 1 warning(s).”,如果显示“0 error(s)”即表示编译成功。
7)拨动实验平台电源开关,给实验平台上电,单击菜单栏debug->start/stop debug session项将编译出来的映像文件下载到sdram中,或者单击工具栏按钮来下载。
8)下载完成后,单击菜单栏debug->run项运行程序,或者单击工具栏按钮来全速运行程序。用户也可以使用进行单步调试程序。
9)全速运行后,用户可以在超级终端看到程序运行的信息。
10)用户可以stop程序运行,使用mu;vision ide for arm的一些调试窗口跟踪查看程序运行的信息。 注:如果在第4)步用户选择在flash中运行,则编译链接成功后,单击菜单栏flash->download项将程序固化到norflash中,从实验平台的主板拔出jtag线,给实验平台重新上电,程序将自动运行。
六、实习体会
在嵌入式系统中,除了课本上的基础知识外,还学会了软件编程的基本思路,掌握了液晶屏的使用及其电路设计方法;掌握有关音频处理的基础知识;掌握液晶显示文本及图形的方法与程序设计。
通过这次设计,掌握了液晶显示实验、mu;c/os-ii移植、mu;c/os-iilcd显示的工作原理及串口通信实验的工作过程,学会了使用仿真软件embest edukit-iv实验平台及ulink2仿真器套件,并学会通过应用软件仿真来实现各种通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。虽然花了很长时间编写软件程序设计,但这一切还是理论上的。希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。总体来说,这次实习我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。通过这次实习通信系统的设计,使我更加清楚以后的发展及学习的方向。
最后感谢老师这个学期的指导和帮助!
嵌入式开发实践指南 报告5
适用场景:嵌入式系统开发测试、单片机程序调试
报告要点:上位机串口通信开发、单片机温度采集程序设计、大棚环境参数监控实施
行文逻辑:分析需求→设计系统→开发程序→测试功能→总结经验
实验报告
学院(系)名称:计算机与通信工程学院
第1页 共9页
第2页 共9页
第3页 共9页
第4页 共9页
第5页 共9页
篇五:net实训报告
net实训报告
实验项目:大棚温度控制
班级:嵌入式101
姓名:000 学号:20
指导老师:周永明、欧阳欣 实训日期:20xx年7月1-6日
目 录
1.前言
2.实验目的 3.实验要求 4.实验内容 5.实验过程 6.实验总结
一、前言
visual c++.net是microsoft的下一代visual c++语言。visual c++一
直是用于创建高性能的windows和web应用程序与web服务的最佳语言。微软公司将visual c++与其他开发语言及工具相比后,将其比喻成“旗舰”语言,因此,学习利用visual c++.net进行windows程序开发是很有必要的。
《单片机接口技术与程序设计应用实训》课程是配套开设的
《单片机接口技术》与《程序设计》课程而专门设立的实训课程。其
主要目的是通过模拟开发“蔬菜大棚温度控制系统”,学习掌握单片机控制系统和上位机程序开发的一般过程,进一步掌握单片机接口技术,进一步提高学生的开发调试能力,使学生掌握电子应用系统开发的思维方法以及具有初步的开发能力
二. 实训目的
《单片机接口技术与程序设计应用实训》课程是配套开设的《单片机接口技术》与《程序设计》课程而专门设立的实训课程。其主要目的是通过模拟开发“蔬菜大棚温度控制系统”,学习掌握单片机控制系统和上位机程序开发的一般过程,进一步掌握单片机接口技术,进一步提高学生的开发调试能力,使学生掌握电子应用系统开发的思维方法以及具有初步的开发能力。
三.实训要求
1.分析理解蔬菜大棚温度控制的需求。
2.理解蔬菜大棚温度控制系统的组成与工作过程。 3.上位机程序开发。 4.单片机程序开发。
四.实训内容
主要内容:
开发蔬菜大棚温度控制系统上位机与下位机软件部分,具体来说包括以下具体内容:
(1) 理解蔬菜大棚温度控制系统的构成:通过分析系统需求,理解蔬菜大棚温度控制系统的构成,
理解蔬菜大棚温度控制系统的工作过程。
(2) 理解pc机(上位机)与单片机(下位机)的通信协议:通过对蔬菜大棚温度控制系统工作过
程的分析,理解掌握上位机与下位机之间的通信协议规定。
(3) 开发上位机软件:上位机软件的开发主要包括串口通信的开发、界面开发、数据库开发(附加
功能,本次可选作)。
(4) 单片机程序的开发:温度采集、与上位机的串口通信。
蔬菜大棚温度控制系统的构成
蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度太低,蔬菜就会被冻死或则停止生长,所以要将温度始终控制在适合蔬菜生长的范围内。如果仅靠人工控制既耗人力,又容易发生差错。为此,在现代化的蔬菜大棚管理中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要。
a 、蔬菜大棚温度控制系统的功能要求
1、该系统需要能对大棚环境温度进行采集和显示(包括pc机端和单片机端)
2、能通过pc机端远程设定蔬菜的生长期适宜温度
3、当大棚的环境温度参数超过设定的下限值时控制电热棒加热,当温度参数超过设定的上限时则控制风扇工作降温。
4、农业管理人员可以随时查询采集过来的温度信息(以动态曲线方式显示)
5、一台pc机控制多个大棚
b、蔬菜大棚温度控制系统的构成
c、蔬菜大棚温度控制系统工作过程
1、管理人员在pc机上位机软件设置要控制的大棚编号和温度上限和下限值,通过串口发送出去。
2、相应大棚的单片机控制器接收数据存储温度上限和下限值,根据采集的温度传感器信号确定要执行的动作
3、每隔一定的时间单片机控制器需要将温度信息发送至pc机端,由上位机软件将温度数据存储到数据库中
单片机端程序设计
1、需要实现的功能 与pc机的串口通信 对温度数据的采集 led显示温度数据
嵌入式开发实践指南 报告6
适用场景:电子工程实训计划制定、ARM开发环境配置准备
报告要点:焊接电路板测试、编写ARM控制程序、调试硬件系统
行文逻辑:安排实习时间→明确实习目的→执行实习内容→介绍芯片特性→分析硬件原理
ARM嵌入式系统综合设计
一、实习时间和地点安排
1、实习时间:xxxx年12月03 日 —— xxxx年12月14日,共两周的时间。
2、每天的实习时间安排:
上午:8:30——11:30
下午:13:30——15:30
3、实习地点:校内。
二、实习目的
1、掌握电子元器件的焊接原理和方法。
2、掌握ARM7 LPC2132控制程序的编写方法。
3、掌握调试软件和硬件的方法。
三、实习内容与要求
1、根据设计要求焊接好电路板并测试焊接无误。
2、绘制流程图并编写程序。
3、编译通过后,将程序下载到LPC2132进行调试。
4、调试成功后编写实习报告。
四、LPC2132芯片介绍
LPC2132最小系统图及其介绍
概述
LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16 位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、64kB、512 kB 的嵌入的高速
Flash 存储器。128 位宽度的存储器接口和独特的加速结构使 32 位代码能够
在最大时钟速率下运行。对代码
规模有严格控制的应用可使用 16 位 Thumb?
模式将代码规模降低超过 30%,而性能的损失却很小。
较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和 POS 机。宽范围的串行通信接口和片内 8/16/32kB 的 SRAM 使 LPC2131/2132/2138 非常适用于通信网关、协议转换器、软 modem 、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。多个 32 位定时器、1 个或 2 个 10 位 8 路 ADC 、10 位 DAC 、PWM 通道和 47 个 GPIO 以及多达9 个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。
特性
1、小型 LQFP64 封装的 16/32 位 ARM7TDMI-S 微控制器。
2、8/16/32kB 片内静态 RAM 。
3、片内 Boot 装载软件实现在系统/在应用中编程(ISP/IAP )。扇区擦除或整片擦除的时间为400ms ,1ms 可编程 256 字节。
4、EmbeddedICE?RT 和嵌入式跟踪接口可实时调试(利用片内 RealMonitor软件)和高速跟踪执行代码。
5、1 个(LPC2132/2132 )或2 个(LPC2138 )8 路 10 位 A/D 转换器共包含 16 个模拟输入,每个通道的转换时间低至 2.44us 。
6、1 个 10 位 D/A 转换器,可提供不同的模拟输出(LPC2132/2138 )。
7、 2 个 32 位定时器/计数器(带 4 路捕获和 4 路比较通道)、PWM 单元(6 路输出)和看门狗。
8、实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。
9、多个串行接口,包括 2 个 16C550 工业标准 UART 、2 个高速 I2C 接口(400 kbit/s )、SPITM 和 SSP(具有缓冲功能,数据长度可变)。
10、向量中断控制器。可配置优先级和向量地址。
11、多达 47 个 5V 的通用I/O 口(LQFP64 封装)。
12、 9 个边沿或电平触发的外部中断引脚。
13、 通过片内 PLL 可实现最大为 60MHz 的 CPU 操作频率,PLL 的稳定时间为 100us。
14、片内晶振频率范围:1~30 MHz。
15、2 个低功耗模式:空闲和掉电。
16、可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
17、通过外部中断将处理器从掉电模式中唤醒。
18、单个电源供电,含有上电复位(POR )和掉电检测(BOD )电路:-CPU
操作电压范围:3.0~3.6 V (3.3 V+/ - 10%) ,I/O 口可承受5V 的最
大电压。
结构概述
LPC2132包含一个支持仿真的 ARM7TDMI-S CPU 、与片内存储器控制器接口
的 ARM7 局部总线、与中断控制器接口的 AMBA 高性能总线 (AHB )和连接片内外设功能的 VLSI 外设总线 (VPB ,ARM AMBA 总线的兼容超集)。
LPC2131/2132/2138 将 ARM7TDMI-S 配置为小端(little-endian )字节顺序。 AHB 外设分配了 2M 字节的地址范围,它位于 4G 字节 ARM 存储器空间的最顶端。每个 AHB 外设都 分配了 16k 字节的地址空间。LPC2131/2132/2138 的外设功能 (中断控制器除外)都连接到 VPB 总线。AHB 到 VPB 的桥将 VPB 总线与 AHB 总线相连。VPB 外设也分配了 2M 字节的地址范围,从 3.5GB 地址点开始。每个 VPB 外设在 VPB 地址空间内都分配了 16k 字节地址空间。
片内外设与器件管脚的连接由管脚连接模块控制。该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。
ARM7TDMI-S 处理器
ARM7TDMI-S 是通用的 32 位微处理器,它具有高性能和低功耗的特性。ARM 结构是基于精简指令集 计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。
由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下 ,一条指令进行译码,并将第三条指令从存储器中取出。
ARM7TDMI-S 处理器使用了一个被称为 THUMB 的独特结构化策略,它非常适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用。
在 THUMB 后面一个关键的概念是“超精简指令集”。基本上,ARM7TDMI-S 处理器具有两个指令集:标准 32 位 ARM 指令集 、16 位 THUMB 指令集
THUMB 指令集的 16 位指令长度使其可以达到标准 ARM 代码两倍的密度,却仍然保持 ARM 的大多 数性能上的优势,这些优势是使用 16 位寄存器的 16 位处理器所不具备的。因为 THUMB 代码和 ARM 代码一样,在相同的 32 位寄存器上进行操作。THUMB 代码仅为 ARM 代码规模的 65%,但其性能却相当于连接到 16 位存储器系统的相同 ARM 处理器性能的 160%。
片内 FLASH 程序存储器
LPC2131/2132/2138 分别含有 32kB、64kB 和 512kB 的FLASH 存储器系统。该存储器可用作代码和数据的存储。对 FLASH 存储器的编程可通过几种方法来实现:通过内置的串行 JTAG 接口,通过在系统编程(ISP )和 UART0 ,或通过在应用编程(IAP )。使用在应用编程的应用程序也可以在应用程序运行时对FLAH 进行擦除和/ 或编程,这样就为数据存储和现场固件的升级都带来了极大的灵活性。如果LPC2131/2132/2138 使用了片内引导装载程序(bootloader ),32/64/512kB 的 Flash 存储器就可用来存放用户代码。 LPC2131/2132/2138 的Flash 存储器至少可擦除/编程 10,000 次,保存数据的时间长达 10 年。 片内静态 RAM
片内静态 RAM (SRAM )可用作代码和/ 或数据的存储,支持 8位、16 位和32 位的访问。LPC2131/2132/2138 含有 8/16/32kB 的静态RAM 。 LPC2131/2132/2138 SRAM 是一个字节寻址的存储器。对存储器进行字和半字访问时将忽略地址对准,访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位 0 和 1,半字访问时将忽略地址位 0 )。因此,有效的读写操作要求半字数据访问的地址线0 为 0(地址以0、2 、4 、6、8、A 、C 和 E 结尾),字 数据访问的地址线 0 和 1 都为 0 (地址以0、4 、8 和 C 结尾)。该原则同样用于片外和片内存储器。SRAM 控制器包含一个回写缓冲区,它用于防止 CPU 在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到 SRAM
的最后一个字节。该数据只有在软件请求下一次写操作时才写入 SRAM (数据只有 在软件执行另外一次写操作时被写入 SRAM)。如果发生芯片复位,实际的SRAM 内容将不会反映最近一 次的写请求(即:在一次“热”芯片复位后,SRAM 不会反映最后一次写入的内容)。任何在复位后检查 SRAM 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write )操作来保证最后的数据在复位后被真正写入到 SRAM。
LPC2132管脚分布
五、硬件原理图
其中K1-K6为六个按键,分别对应清零键、减号键、第二个数字键、等号键、加号键和第一个数字键,接到I/O口的P0.08-P0.13脚。P0.00-P0.07号脚接段码,分别是G、F、E、D、C、B、A、DP。三个数码管的位选通端接到P0.28-P0.30三个管脚上,用于选通数码管。
ULN2803应用电路介绍
ULN2000、ULN2800是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A电路是美国Texas Instruments公司和Sprague公司开发的高压大电流达林顿晶体管阵列电路,文中介绍了它的电路构成、特征参数及典型应用。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。ULN2000、ULN2800高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,ULN2000、ULN2800系列就是美国Texas Instruments公司、美国Sprague公司开发的高压大电流达林顿晶体管阵列产品。它们的系列型号分类如表1所列,生产2000、2800高压大电流达林顿晶体管阵列系列产品的公司与型号对照表如表2所列。在上述系列产品中,ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。美国Texas Instruments公司、美国Sprague公司生产的ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。以下介绍该电路的构成、性能特征、电参数以及典型应用。2000、2800高压大电流达林顿晶体管阵列系列中的其它产品的性能特性与应用可参考ULN2003A。本设计的驱动电路如图所示:
在本实习
中的应用
