人人范文网 范文大全

黄靖嵌入式系统实习报告

发布时间:2020-03-04 02:31:14 来源:范文大全 收藏本文 下载本文 手机版

嵌入式系统实习报告

课题: LCD显示秒表 班级: 计本12-3班 学号: 3110717215 姓名: 黄靖 指导老师: 金红老师

一、绪论

嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了第一款微处理器Intel 4004,其后各厂家陆续推出了许多8位、16位的微处理器,包括Intel 8080/808

5、8086,Motorola 的6800、68000,以及Zilog的Z80、Z8000等。以这些微处理器作为核心所构成的系统,广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。微处理器的广泛应用形成了一个广阔的嵌入式应用市场,计算机厂家开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要选择一套适合的CPU板、存储器板以及各式I/O插件板,从而构成专用的嵌入式计算机系统,并将其嵌入到自己的系统设备中。本次试验课题是基于UC/OS-II嵌入式操作系统进行的1602显示秒表设计。

二、嵌入式概述

1、何为嵌入式:

何谓嵌入式系统, 嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。 国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

而uC/OS-II由Micrium公司提供,是一个源代码开放、可移植、可固化、可裁剪、抢先式的多任务实时操作系统。它主要用于中小型嵌入式系统中,执行效率高,占用空间小,可移植性强,具有良好的实时性和可扩展性。

2、嵌入式历史:

从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。

嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。

最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。

从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。 其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。

90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。

3、现状:

今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息j家电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。

三、课题设计内容:

1、课题所需材料及工具

材料:1062LCD显示器、电路板、IAP15F2K61S2系统板、数据线、三个按钮、若干电线等

工具:USB串口驱动、Keil_uvision_

4、STC_ISP Ver6.82B等

2、课题设计要求及总体思路

要求秒表可以实现三个功能:秒表的显示功能,秒表的控制功能:开始、暂停、清零,秒表的LED闪烁功能。

总体思路:

1、查阅与课题相关的资料了解uC/OS-II嵌入式系统移植已有的主要技术方案,应用软件设计及系统调试的方法;

2、在IAP15F2K61S2单片机系统板上移植uC/OS-II嵌入式系统,完成系统调试。

3、完成对秒表的功能进行总体的设计和规划,根据自己的总体设计和规划进行软件设计,焊接电路。

4、系统功能调试。

3、uC/OS-II嵌入式系统的移植

uC/OS-II代码中大部分都是用C语言写的,但是涉及到数据类型的重定义、堆栈结构的设计、任务切换时状态的保存和恢复等问题的大部分代码由于与处理器有关,是用汇编语言实现的。移植所要做的工作,就是在不同的处理器上用汇编语言来改写与处理器有关的代码及其他与处理器特性相关的部分。

在uC/OS-II移植过程中涉及以上问题的代码都包含在文件 OS_CPU.H、OS_CPU.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代码的基础上围绕着这三个文件的改写展开。

OS_CPU.H的改写:其中主要定义了一些与编译器有关的数据类型、堆栈的生长方向、临界代码区的保护方式。因为不同的处理器有不同的字长,所以OS_CPU.H中需要针对具体的处理器字长重新定义一系列数据类型以确保系统的可移植性。特别需要注意的是MCS-51的栈宽度是8位的,所以将堆栈的数据类型声明为8 位无符号字符类型,即unsigned char OS_STK。第二,为了避免临界区代码被中断,在临界区操作时必须用C语言开放和关闭中断。对于51单片机,在中断控制中使用EA = 0关中断,EA = 1开中断。由于51堆栈自低地址往高地址生长,所以堆栈增长方向的设置必须更改。采用语句#define OS_STK_GROWTH 0。最后,由于MCS-51没有软中断指令,所以用程序调用代替,定义任务切换宏OS_TASK_SW( ) :#define OS_TASK_SW ( ) OSCtxSw ( )。

OS_CPU_C.C需要改写的六个钩挂函数分别是 OSTaskStkInit()

//初始化任务堆栈函数 OSTaskCreateHook() //任务创建钩挂函数 OSTaskDelHook()

//任务删除钩挂函数 OSTaskSwHook()

//任务切换钩挂函数 OSTaskStatHook()

//统计任务钩挂函数 OSTimeTickHook() //定时钩挂函数

OS_CPU_A.ASM需要改写的四个函数分别是: OSStartHighRdy() //运行优先级最高的就绪任务 OSCtxSw()

//任务级的切换函数

OSIntCtxSw()

//中断级的任务切换函数 OSTickISR()

//时钟节拍中断服务函数

移植过程要留意的问题:

当调用OSTaskCreate()或OSTaskCreateExt()创建一个新任务时,需要传递的参数是:任务代码的起使地址,参数指针(pdata),任务堆栈顶端的地址,任务的优先级。OSTaskCreateExt()还需要一些其他参数,但与OSTask­StkInit()没有关系。OSTaskStkInit()只需要以上提到的3个参数(task, pdata,和ptos)。在这个堆栈初始化函数中要清楚堆栈中都要保存哪些东西,要留多大的空间,这些都很重要,否则会发生很严重的错误。

4、课题程序功能设计及代码

如下图所示,整个秒表以STC15为核心,按下停止键或启动键控制秒表的停止和开始,清零键负责清零,同时反映给STC15,再经过处理显示在1602液晶显示器上,进行计时:

LCD1602液晶显示器启动键key1STC15停止键key3清零键key2

系统设计图:

系统总的原理图如上图所示,按下暂停、启动和清零按键,秒表开始计时或清零并显示在LCD1602液晶显示器上 。

功能流程图:

开始单片机、LED初始化trueIf(key==0)false定时器开启TR1=1定时中断计数值累加屏幕显示定时器关闭TR1=0结束 主要函数代码:

void main(void)

//主函数

{ OSInit();

//初始化uc/os-||

InitTime0();

//定时器初始化

OSTaskCreate(Task1,(void*)0,&Task1Stk[0],4);

//任务1 OSTaskCreate(Task2,(void*)0,&Task2Stk[0],1);

//任务2

OSStart();

//开始多任务调度 } void Task2(void *ppdata) reentrant

// 任务2,LED闪烁, { ppdata=ppdata; while(1)

{

P55 = ~P55;

OSTimeDly(OS_TICKS_PER_SEC);

}

} void Task1(void xdata * ppdata) reentrant

//任务1,三个按键功能以及字幕的显示 {

ppdata = ppdata;

TR1=0; count=0;

//中断次数

while(1) {

init();

//1602初始化

if(key1==0)

//开始

{

TR1=1;

//定时器开启

}

if(key3==0)

//暂停

{ TR1=0;

//定时器关闭

}

if(key2==0&&TR1==0)

//清零

{ zong=0;

//时间清零

}

lcd_pos(0x46);

//显示的地址

Display_int(zong/60);

//显示分钟

lcd_date(\':\');

//显示

Display_int(zong%60);

//显示秒

lcd_pos(0x00);

//字符输出地址

Display_string(time); //输出”times start:”

OSTimeDly(OS_TICKS_PER_SEC/40);} }

//中断函数

void Time1() interrupt 3

//定时器T1的中断编号为1 { TH1 = (65536-50000)/256;

//定时器T0高8位重新赋初值0.05s TL1 = (65536-50000)%256;

//定时器T0低8位重新赋初值

count++; if(count%20==0 )

//调整数字变化速度

{

zong++;// } }

void Display_int(int a){

//显示

int tmp[2]={0,0}; int t = 0;

while(a!=0){

tmp[t++] = a%10;

a = a/10; }

t=2; while(t>0){

lcd_date(\'0\' + tmp[--t]); } } void Display_string(char *str){

int i = 0;

while(str[i] != \'\\0\'){

lcd_date(str[i++]);

} }

5、系统测试结果

程序烧写进IAP15F2K61S2单片机,stc15上的LED灯不断闪烁,单片机控制1602显示,可显示出”times start: 00:00”字样。当按下key1键,计数启动。当按下key2键,计数暂停。当按下key3键,计数置0,重新等待计数(必须计数暂停后才能清零)。初步完成计数功能。

6、作品实物图

四、总结体会

在三周的时间内我们完成了LCD显示秒表的制作,该秒表由三个按钮控制完成三个功能进行计时,分别是:开始、暂停、清零,可通过1062显示频显示。

先查找资料进行了解,然后根据资料收集制作材料,之后在老师的指导下对程序进行设计,最后是电路焊接,系统调试。经过努力终于完成了秒表的制作。

三周时间的实习,不仅让我能力得到了锻炼、开阔了眼界、了解了嵌入式是怎样应用的,也让我深刻意识到自己的不足。三周实习最大的收获是让我学到了: 在对一样事物不了解时,主动去查找资料解决。困难不是我们主要的阻碍,关键是个人思想问题,只要你内心思想重视并付出行动,总会有回报的。曾有一位医生因对嵌入式起了兴趣,就自己查找资料竟然短短几天内做出了成果。这说明了一切。

参考文献: 【1】 祁红岩编著.MCS51单片机实践与应用(基于C语言).机械工业出版社 【2】 孙育才 孙华芳著.MCS-51系列单片机及其应用(第五版)

黄靖嵌入式系统实习报告

嵌入式系统实习报告

中国民航大学嵌入式系统实习报告

嵌入式实习报告

嵌入式系统设计报告

北华大学嵌入式系统实习报告

嵌入式系统

移动数据库应用,嵌入式系统。生产实习报告

嵌入式毕业实习报告

嵌入式培训实习报告

黄靖嵌入式系统实习报告
《黄靖嵌入式系统实习报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档