ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:122.27KB ,
资源ID:6622197      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6622197.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式测控系统实习报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式测控系统实习报告.docx

1、嵌入式测控系统实习报告 嵌入式测控系统实习报告课题名称: 嵌入式测控系统 学 院: 电气信息工程学院 专 业: 测控技术与仪器专业 姓 名: 王yiyang 班 级: 测控093 学 号: 220号 指导教师: 武海ya 1、实习目的1)学习建立多任务系统2)熟练程序设计3)熟练运用borlandcc操作系统4)熟练运用visal c + 操作系统2、实习内容建立4个任务,其中任务1显示院系,任务2显示班级学号,任务3显示姓名,任务4显示当前日期和时间。3、程序设计#include #include #include #include #include #include #include #i

2、nclude E:ucos-iisoftwareucos-iiix86lbc45os_cpu.h#include E:ucos-iiSOFTWAREuCOS-IIEX1_x86LBC45SOURCEos_cfg.h#include E:ucos-iisoftwareucos-iisourceucos_ii.h#include E:ucos-iisoftwareblockspcbc45pc.h/* CONSTANTS*/#define TASK_STK_SIZE 512 /* Size of each tasks stacks (# of WORDs) */#define N_TASKS 4 /

3、* Number of identical tasks */* VARIABLES*/OS_STK TaskStkN_TASKSTASK_STK_SIZE; /* Tasks stacks */OS_STK TaskStartStkTASK_STK_SIZE;char TaskDataN_TASKS; /* Parameters to pass to each task */OS_EVENT *RandomSem;/* FUNCTION PROTOTYPES*/ void Task(void *data); /* Function prototypes of tasks */ void Tas

4、kStart(void *data); /* Function prototypes of Startup task */static void TaskStartCreateTasks(void);static void TaskStartDispInit(void);static void TaskStartDisp(void);/*$PAGE*/* MAIN*/void main (void) PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* Clear the screen */ OSInit(); /* Initialize u

5、C/OS-II */ PC_DOSSaveReturn(); /* Save environment to return to DOS */ PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-IIs context switch vector */ /* RandomSem = OSSemCreate(1); */ /* Random number semaphore */ OSTaskCreate(TaskStart, (void *)0, &TaskStartStkTASK_STK_SIZE - 1, 0); OSStart(); /* Start m

6、ultitasking */* STARTUP TASK*/void TaskStart (void *pdata)/#if OS_CRITICAL_METHOD = 3 /* Allocate storage for CPU status register */ /OS_CPU_SR cpu_sr;/#endif /char s100; /INT16S key; /pdata = pdata; /* Prevent compiler warning */ /TaskStartDispInit(); /* Initialize the display */ /OS_ENTER_CRITICAL

7、(); /PC_VectSet(0x08, OSTickISR); /* Install uC/OS-IIs clock tick ISR */ /PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */ /OS_EXIT_CRITICAL(); /OSStatInit(); /* Initialize uC/OS-IIs statistics */ /TaskStartCreateTasks(); /* Create all the application tasks */ /for (;) / /TaskStartDisp();

8、 /* Update the display */ /if (PC_GetKey(&key) = TRUE) / /* See if key has been pressed */ /if (key = 0x1B) / /* Yes, see if its the ESCAPE key */ /PC_DOSReturn(); /* Return to DOS */ / / /OSCtxSwCtr = 0; /* Clear context switch counter */ /OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */ /*$PAGE*/*

9、 INITIALIZE THE DISPLAY*/static void TaskStartDispInit (void) /* 1111111111222222222233333333334444444444555555555566666666667777777777 */* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 */ PC_DispStr( 0, 0, uC/OS-II, The Real-Time Kernel , DISP_FGND_WHITE + DISP_BG

10、ND_RED + DISP_BLINK); PC_DispStr( 0, 1, Jean J. Labrosse , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0 2 , , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr( 0, 3, EXAMPLE #1 , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 4, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispS

11、tr(0, 5, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 6, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 7, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 8, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 9, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispS

12、tr(0, 10, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 11, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 12, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 13, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 14, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_

13、DispStr(0, 15, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 16, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 17, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 18, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 19, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY)

14、; PC_DispStr(0, 20, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr(0, 21, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr( 0, 22, , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);/* 1111111111222222222233333333334444444444555555555566666666667777777777 */* 012345678901234567890123

15、45678901234567890123456789012345678901234567890123456789 */*$PAGE*/* UPDATE THE DISPLAY*/* static void TaskStartDisp (void) char s80; /sprintf(s, %5d, OSTaskCtr); /* Display #tasks running */ /PC_DispStr(18, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);/#if OS_TASK_STAT_EN 0 /sprintf(s, %3d, OSCPUUsage

16、); /* Display CPU usage in % */ / PC_DispStr(36, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);/#endif /sprintf(s, %5d, OSCtxSwCtr); /* Display #context switches per second */ /PC_DispStr(18, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE); /sprintf(s, V%1d.%02d, OSVersion() / 100, OSVersion() % 100); /* Disp

17、lay uC/OS-IIs version number */ /PC_DispStr(75, 24, s, DISP_FGND_YELLOW + DISP_BGND_BLUE); /switch (_8087) /* Display whether FPU present */ / case 0: / PC_DispStr(71, 22, NO FPU , DISP_FGND_YELLOW + DISP_BGND_BLUE); / break; / case 1: / PC_DispStr(71, 22, 8087 FPU, DISP_FGND_YELLOW + DISP_BGND_BLUE

18、); / break; / case 2: /PC_DispStr(71, 22, 80287 FPU, DISP_FGND_YELLOW + DISP_BGND_BLUE); / break; / case 3: / PC_DispStr(71, 22, 80387 FPU, DISP_FGND_YELLOW + DISP_BGND_BLUE); / break; / /*$PAGE*/* CREATE TASKS*/static void TaskStartCreateTasks (void) INT8U err; OSInit(); OSTaskCreate(Task, (void *)

19、0, &Task1TASK_STK_SIZE-1,1); OSTaskCreate(Task, (void *)0, &Task2TASK_STK_SIZE-1,2); OSTaskCreate(Task, (void *)0, &Task3TASK_STK_SIZE-1,3); OSTsakCreate(Task, (void *)0, &Task4TASK_STK_SIZE-1,4); /* TASKS*/void Task (void *pdata) INT8U x; INT8U y; INT8U err; for (;) OSSemPend(RandomSem, 0, &err); /

20、* Acquire semaphore to perform random numbers */ x = random(80); /* Find X position where task number will appear */ y = random(16); /* Find Y position where task number will appear */ /OSSemPost(RandomSem); /* Release semaphore */ /* Display the task number on the screen */ PC_DispChar(x, y + 5, *(

21、char *)pdata, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr( 0, 5, dianqixinxigongchengxueyuan cekongjishuyuyiqi , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr( 0, 6, 09_2 14 , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); PC_DispStr( 0, 7, maqingying , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY

22、); PC_DispStr( 0, 8, 2012-10-22 , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); OSTimeDly(1); /* Delay 1 clock tick */ 4、调试过程1、修改TSET.MAK的地址2、修改borlandc地址3、修改TEST的地址4、找到头文件地址5、 运行程序实习心得短暂的实习生活很快的结束了,短短的五天时间学到了不少东西,现在已经大四了,还有半年时间就要毕业了,所以格外珍惜这次机会。我已经决定考研了,所以时间比较紧张,但是我仍抽出时间学习嵌入式的一些基本原理。因为时间都是挤出来的,我不能因为考研而不参

23、加任何实习,毕竟实习的机会已经不多了,学一点是一点。虽然时间紧迫,但是在同学们的指导下,我还是学到了很多东西。书上看不懂的知识通过程序的验证,让我一目了然,印象深刻。刚开始接触的时候,比较不知所措,编译的时候出现了很多错误,让我不知从何做起。而且整个编译运行的过程比较复杂,总是出现失误,经过反复多次的练习,慢慢的熟悉了整个流程,做起来也比较顺手了,在后期大家的共同努力下,只有一个错误。大家非常的高兴,因为离成功不远了。最后在老师的指点下,我们及时的完成了任务,学习和掌握了很多难理解的知识。时间越紧张,我学的越努力,虽然很疲惫,但苦中有乐。实习过程中仍有很多知识点不明白。比如说在总任务下建立的四个小任务,在系统执行的过程中它是否依次返回主函数,然后再顺次执行。与C语言主函数的功能是否一致?在考核的最后一天我向老师请教了这个问题,老师给与了非常耐心细致的回答,解决了一直困扰我的小难题,在此表示非常的感谢!有机会一定要深入学习嵌入式,因为在很多专业书中都出现了相关的内容,可以看出它的价值是多么的重要。最后,祝老师工作顺利,健康如意!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1