• 2.78 MB
  • 31页

2016级_工程导论课程考核项目报告书(模板).docx

  • 31页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'项目开发报告书(工程导论考核)题目:基于应用开发板的程序设计与调试课程名称:_工程导论学生姓名(学号):XXX、XXX、XXX、XXX组长姓名(学号):XXX专业班级:2016级网络XXXX班指导老师:秦智31/31 2016年10月26日31/31 目录目录21.绪言31.1设计背景31.2需求分析31.2.1市场分析31.2.2设计目标31.3本文主要工作42.开发工具和实践板42.1开发工具42.1.1C51集成开发环境——KeiluVision442.1.2USB转串口驱动——USB-to-SerialCH43042.1.3程序下载器——STC-ISP42.2实践板52.2.1原理图52.2.2STC12C5A60S2芯片介绍63.分析设计83.1功能设计分析8n间隔1S流水灯8n中断加一计数并显示8n测量温度并显示8n双机SPI通信温度互换显示8nLCD显示屏8nTMP75温度传感器9nIIC总线通信9nSPI高速串行通信93.2总体设计1031/31 4.流程设计与实现104.1基于板子的SPI、IIC、TMP75的驱动程序104.1.1SPI104.1.2IIC124.1.3TMP75144.2间隔1S流水灯164.3中断加一计数并显示174.4测量温度并显示184.5双机SPI通信温度互换显示195.程序测试215.1间隔1S流水灯215.2中断加一计数并显示215.3测量温度并显示215.4双机SPI通信温度互换显示21总结21参考文献221.绪言1.1设计背景2009IBM论坛上,IBM大中华区首席执行官钱大群,公布了名为“智慧的地球”的最新策略。此概念提出后,在世界范围内引起轰动。自温总理提出“感知中国”以来,物联网被正式列为国家五大新兴战略性产业之一,在国内受到了全社会极大的关注。而作为物联网三大关键技术的嵌入式系统技术31/31 是综合了计算机软硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。如果把物联网用人体做一个简单比喻,传感器相当于人的眼睛、鼻子、皮肤等感官,网络就是神经系统用来传递信息,嵌入式系统则是人的大脑,在接收到信息后要进行分类处理。我们所开发的四个程序正是基于以及体现了嵌入式系统技术,具有很强的技术性和实践性,简易功能性和应用性——有简单的控制LED灯的操作、中断信息处理任务、控制LCD屏幕显示、温度传感器的操作、底层双机通信等等。1.2需求分析1.2.1市场分析嵌入式系统技术的应用,把传感器嵌入和装备到电网、供水系统等各种物体中以收集信息,然后将“物联网”与现有的互联网整合起来快输传送数据,在这个网络当中存在能力强大的中心计算机群能够对网络内的人员、机器、设施实现实时的管理和控制,如此人类可以更加精细和动态地管理生产和生活,达到“智慧”状态,提高资源利用率和生产力水平,改善人与自然间的关系——这里我们看到了有对传感器的控制、对设备设施甚至人员的管理控制、对数据的传送和处理,我们所开发的程序也正包含着对这些技术的认知、锻炼。1.2.2设计目标n在开发板上有若干LED显示器,设计流动点亮LED的程序,间隔1秒。n在开发板上有一个中断按钮,设计一个中断计数服务程序,每按动按钮一次计数器加1,将数字在多功能触摸屏上显示出来。n在开发板上有一个基于I2C总线接口的温度传感器,设计一个温度感知程序,并将温度信号在多功能触摸屏上显示出来。n在开发板上有多个通讯端口,设计一个两板间的通讯程序,将两板上的温度信号互相交换,将数字在多功能触摸屏上显示出来。1.3本文主要工作简要列出四个要求程序所要达到的效果目标,简单介绍开发用到的工具和板子,详细说明程序的流程设计和实现,展示测试结果。31/31 2.开发工具和实践板2.1开发工具2.1.1C51集成开发环境——KeiluVision4KeiluVision4是美国KeilSoftware公司(ARM公司之一)出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。2.1.2USB转串口驱动——USB-to-SerialCH430由于我们采用板子与通用计算机平台USB接口通信,故需要一个USB转串口的驱动把USB接口转换成透明并行总线来用。2.1.3程序下载器——STC-ISPSTC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。2.2实践板2.2.1原理图顶板31/31 底板2.2.2STC12C5A60S2芯片介绍31/31 STC12C5A60S2/AD/PWM系列单片机的资料实在太多,这里只介绍基本或者用到的。它是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;2.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);3.工作频率范围:0-35MHz,相当于普通8051的0~420MHz;4.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节;5.片上集成1280字节RAM;6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;8.看门狗;9.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;10.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器;11.31/31 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟。寄存器结构如下:12.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3),中断优先级如下:13.工作温度范围:-40-+85℃(工业级)/0-75℃(商业级);14.封装:PDIP-40,LQFP-44,LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口;15.SPI:提供一个高速串行通信SPI接口,设计采用模式如下(SS线可去):31/31 3.分析设计3.1功能设计分析n间隔1S流水灯四个LED灯连在板子通用I/O口P4.0-P4.3上且低电位有效,需要控制P4.0-P4.3口清零;时间间隔1S选用板载定时器T1模式1实现。n中断加一计数并显示调用触摸屏显示函数显示当下计数值;一旦按中断按钮即调用中断服务程序计数加一。n测量温度并显示调用温度传感器温度读取函数;再调用触摸屏显示函数显示所得温度。n双机SPI通信温度互换显示发送方先调用温度传感器温度读取函数并调用触摸屏显示函数显示己方温度;31/31 再调用SPI发送方通信函数发起数据交换;最后处理交换后所得数据并调用触摸屏显示函数显示即为接收方温度值。接收方独立执行调用温度传感器温度读取函数;独立执行调用触摸屏显示函数显示己方温度;独立执行处理交换后所得数据并调用触摸屏显示函数显示即为发送方温度值;而一旦发送方发起数据交换即进入SPI接收方通信中断函数(中断号9)执行接收数据然后向SPDAT写入当下温度值(作为下次数据交换的数据)。根据以上功能、架构设计,还需要设计以下的底层驱动:nLCD显示屏比较复杂,使用直接提供的驱动函数,列举必要的几个函数:voidClearScreen(u16bColor);voidTFT_Init(void);voidTFT_PutStr(unsignedshortx,unsignedshorty,char*p,unsignedintfColor,unsignedintbColor);voidTFT_PutChar(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor);nTMP75温度传感器温度读取函数:由IIC总线控制,根据手册说明,包含以下操作——IIC传输TMP75地址,31/31 R/W清零,确定指针寄存器写入数据操作;IIC传输写入TMP75指针寄存器的操作温度寄存器的对应数据;IIC传输TMP75地址,R/W置位,确定温度寄存器读取数据操作;IIC主机接收高八位数据;IIC主机接收低八位数据;返回接收的温度数据值。nIIC总线通信根据I2C总线通信协议以及使用TMP75的需要,只需要编写:IIC开始函数,使CPU给出IIC通信开始信号;IIC停止函数,使CPU给出IIC通信终止信号;IIC传输数据函数,让CPU传送操作TMP75的地址和指令;IIC读取数据函数,控制CPU接收TMP75传输来的数据(从机TMP75接收到指令以后自主传输温度数据不需要CPU的干预)。nSPI高速串行通信SPI发送方通信函数:数据写入SPDAT;循环判断状态位查看是否发送结束;SPI状态寄存器SPIF位写1清零;返回SPDAT即为接收到的数据。SPI接收方通信中断函数:数据传输次数标志取反;SPI状态寄存器SPIF和WCOL位写1清零;如果标志为1,SPDAT接收的数据存入tempr_h,调用温度读取函数读取当下温度,向SPDAT写入温度数据高八位;如果标志为0,SPDAT接收的数据存入tempr_l,向SPDAT写入温度数据低八位。31/31 3.2总体设计备注:Main()等虚线部分工程中没有实现。4.流程设计与实现4.1基于板子的SPI、IIC、TMP75的驱动程序4.1.1SPI发送方初始化:SPCTL=0xfd;//CPU_CLK/16,时钟前沿为下降沿,后沿采样,主模式,最低位在前,SPI使能31/31 SPSTAT=0xc0;//SPDAT.7和SPDAT.6写11,可以将中断标志清零。注意是写1才清零发送函数:接收方初始化:SPCTL=0xed;//CPU_CLK/16,时钟前沿为下降沿,后沿采样,从模式,最低位在前,SPI使能SPSTAT=0xc0;//SPDAT.7和SPDAT.6写11,可以将中断标志清零,写1清零31/31 IE2|=0x02;//允许SPI中断EA=1;//开总中断接收函数:31/31 4.1.2IIC初始化:P1M0|=0x08;//00001000P1M1&=(~0x08);//11110111//使得p1^3位高阻态输出scl=1;delay(1);sda=1;delay(1);起始函数与结束函数:传输数据函数31/31 接收数据函数:31/31 4.1.3TMP75初始化:IIC_init();IIC_start();IIC_wr_B(TMP75_address);//寻址IIC_wr_B(TMP75_cmd_CONFIG);//写入指针寄存器,TMP75_cmd_CONFIG=0x01,写入配置寄存器31/31 IIC_wr_B(0x6a);//配置,R1R0=11分辨率12位0.0625;F1F0=01,故障队列4;POL=1,ALTER脚高电位有效IIC_stop();温度读取函数:31/31 4.2间隔1S流水灯LED灯引脚及定时器T1寄存器:led1..4=P4_0..3T1T0TMOD:GATEC/~TM1M0GATEC/~TM1M0TCON:TF1TR1TF0TR0IE1IT1IE0IT031/31 31/31 4.3中断加一计数并显示31/31 4.4测量温度并显示31/31 4.5双机SPI通信温度互换显示发送方:31/31 接收方:31/31 5.程序测试5.1间隔1S流水灯初始状态从左往右点亮31/31 最后又回复初始状态5.2中断加一计数并显示初始状态31/31 按一次按许久松开31/31 5.3测量温度并显示31/31 5.4双机SPI通信温度互换显示总结暑期前一个星期完成所有程序,开学前五天写文档,总历时近两个星期吧,终完成了这期艰辛而富有成效的工程实践。这期是基于所给的C51板子编写四个要求程序,除去了LCD的驱动编写,前两个程序就简单直接了;第三个程序用到了IIC通信,如果不是参考学长写的程序我想又必将遇到一个艰难险阻的坎,虽然觉得原理好理解但毕竟理解参考程序都觉得自己写必然会调试不知许久;在编写SPI通信时真是卡壳好久,一直没弄清查询方式通信的不同步,换用中断以后一马平川。31/31 每每课外我们都有许多交流,比如交流设计想法分享经验。交流分享对我们设计灵感和经验增长是颇有裨益的。经过这次,也深刻明白为达效果写程序之前定要考虑设计尽可能多的实现方法,选择一种做下去以后发现调不通要懂得回头,选择另一种方法。这次的经历就是鲜明的例子。做中断加一时,开始选择下降沿触发方式,发现按一次会加几个数,哪怕延时,发现问题以后换成电平触发方式就很稳定;但在写SPI时,按查询方式由于不同步一直调不通时却还一直坚持结果白白浪费时间。参考文献[1]单片微型计算机原理及接口技术郑郁正主编高等教育出版社2013.3[2]成都信息工程学院物联网工程工程实践模板文档:姓名_学号_工程实践报告(模板)2014.6.26[3]STC12C5A60S2中文手册最新版2010.11.13[4]百度百科KeiluVision4、USB转串口驱、STC-ISP等词条31/31'