单片机实训光强采集系统.docx_第1页
单片机实训光强采集系统.docx_第2页
单片机实训光强采集系统.docx_第3页
单片机实训光强采集系统.docx_第4页
单片机实训光强采集系统.docx_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计姓名:学院:班级:学号:摘要随着现代社会的发展,科技的数字化与信息化成为一种主流的趋势。介绍了一种光强实时监测系统,该统采用单片机STM8S003F3作为控制系统 ,通过光强采集芯片RTL8196芯片模块对光强数据进行采集,将光强值转换为电压值输出,传送到A/D转换模块,实现模拟信号的数字化,通过把数据传送给计算机主机,再由IAR软件编程实时显示出检测点的光强值,还可以设定光强的最大值与最小值,当光强高于最大值或低于最小值时进行报警,经测试,结果表明该系统反应灵敏,稳定可靠。另外光强数据采集系统是一个与光电器件和微机技术结合使用的,专门用来采集一维光强变化分布的曲线图样数据的模/数转换系统。它具有高灵敏度、低噪声、快速读出、高动态范围和宽光谱响应范围等特点,而且能够实时地显示出各种光强分布图谱。该系统采用硅光二极管作为光强传感器,来实现光能量对电压的转换,着重介绍了16位的A/D转换器以及其使用特性,并且给出了其时序图以及驱动程序,利用此系统可以对光强度进行精密的测量。串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,单片机串行通信的实际作用:一般用于和外部设备交换数据的,单片机一般充当控制器的角色,通过串口发送一定格式的数据来控制与之相连设备的动作,同时设备也会反馈回来一些自己的状态信息给单片机,供单片机进行判断,做出相应的控制。在光强采集系统中,将采集的光强通过A/D转换器,转换成电压的形式,通过串口通信,传送到计算机上。关键词:单片机,光强采集,数模转换,串行通信,IAR 目录第一章:引言61.1 课题背景61.2 环境光强采集的意义及技术发展61.3认识实习实践内容71.4 主要器件及功能81.4.1 RTL8196芯片:81.4.2 103电阻:81.4.3 STM8S003F3芯片91.4.4 Flash91.4.5晶振:11第2章 环境光强采集系统的设计方案142.1设计原理142.1.1终端模块的电源142.1.2152.2光敏电阻测温原理172.3 STM8S单片机介绍172.3.1 STM8S的芯片特点172.3.2 供电电源182.3.3时钟控制192.3.4中断控制器202.3.5 模拟 / 数字转换器202.4 电路介绍212.4.1下载程序部分硬件电路212.4.2 UART 通用异步收发器原理和功能简介22第3章 系统程序设计233.1 程序设计总体构想233.2ADC子程序233.3数据处理程序(附在后面)233.4 IAR软件的使用233.5新建工程243.6程序的下载253.6.1.打开软件253.6.2配置253.6.3程序的编译26第4章 系统调试和功能测试274.1系统硬件调试274.2系统软件调试294.3系统功能测试30第5章认识实习总结与心得体会305.1 实习总结315.1.1焊接材料:315.1.2实习中遇到的问题315.2 心得体会326.附录346.1程序346.2 文献37第一章:引言1.1 课题背景光在我们的生活中有着不可替代的作用,这个地球离不开光,没有了光,这个地球即将毁灭。光的作用太多了:光合作用,光分作用,反射作用,光藕作用,光媒作用6,折射作用, 光疗作用,光在生活中的作用,光的消毒作用,光的美容作用等等,它无时无刻不在我们的身边。 所以我们要研究光,通过采集光的强度来做一些事情,比如在农业上的提高光合作用,工业上,提高光能的利用率等等。在这个问题上,好像在我们的前辈没有深入的去研究这个课题。但这个课题对我们的社会有着很大的,很积极而又深远的影响,所以我们必须深入研究这个课题。近年来,光强数据采集及其应用受到了人们越来越广泛的关注,光强数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域,它是智能仪器仪表设计中不可缺少的一部分。光强数据采集,又称光强数据获取,是利用一种装置,从系统外部采集光强数据并输入到系统内部的一个接口。光强数据采集通常解释是从数据源收集、识别和选取数据的过程。数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非成熟人员进行操作,并且测试任务是由测试设备高速自动控制完成的。由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。大概在60年代后期,国内外就有成套的数据采集设备和系统多属于专用的系统。在面对如此的前人的基础上,我们应该开发和研究光强采集就变得不再那么的难,因为我们站在了巨人的肩上。说不定光强的采集系统将来可以运用到中国的军事上。20世纪80年代随着计算机的普及应用,数据采集系统得到了很大的发展,主要是通过单片机与软件相结合,利用串口通信等技术,实现数据的采集。20世纪90年代,数据的采集已经运用到了军事上了。可见数据的采集发展的快速,在这样的前提与背景下,我们应该加强光强的采集,研究光强的采集,这样可以使得我们当代的大学生没有与科技脱轨。1.2 环境光强采集的意义及技术发展意义:随着现代信息技术的飞速发展,光强检测系统在工业,农业及人们的日常生活中扮演者一个越来越重要的角色,它对人们的生活产生了巨大的影响,所以光强检测系统的设计与研究有着十分重要的意义,现在通用的数据采集卡一般多是PCI卡或ISA卡,这些存在一些缺点:安装复杂,价格昂贵,受计算机的插槽数量,地址,中断资源限制,可扩展性差。它的优点有高灵敏度、低噪声、快速读出、高动态范围和宽光谱响应范围等。通过光强的采集可以应用到农业,比如,当你采集的光强比较小时,你可以开灯给植物进行光合作用,使其达到更高的效率。另外在某些地方用来做安全报警,比如,当某地方发生火灾时,由于火灾现场有烟,导致采集的光比较弱时,可以采用自动报警。来提高安全性。光是人类生产生活必须的一种元素,它是一种能量的形态,它可以从一个物体传播到另一个物体,它不需要任何媒介。它在工业生产中,可以起到产品安全监测等作用。光强采集时嵌入式系统设计的基础上发展起来的,嵌入式系统起源于微型计算机时代,但是微型计算机的体积,价格,可靠性都没法满足广大的对象对嵌入式的要求。技术发展:嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑. 从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式包括硬件与软件。硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。它是通过软件来控制硬件来实现我们要实现的功能。1.3认识实习实践内容 本课题是基于单片机光强的采集系统的设计,其利用单片机是该系统的主要控制器。通过光敏电阻对光的特性,来采集到光的强弱,它转换成的电压的大小不一样,来实现采集光强的功能。光强采集电路是本次设计的主要内容,是整个单片机光强控制系统设计中不可缺少的部分。本系统根据光强采集部分功能进行光强采集,1.4 主要器件及功能1.4.1 RTL8196芯片:这是一个集成的片上系统的专用集成电路(ASIC)实现一个基本的L2 5端口以太网交换机和高性能的CPU。时钟速率可以高达400MHz。一个标准兼容的测试接口是CPU测试和软件开发支持。rtl8196c的提供五个端口(从0端口到端口4),五集成MAC和物理层收发器的每个端口可以配置为一个局域网或广域网端口。rtl8196c支持灵活的全双工流量控制和可选的半双工背压控制。全双工,标准IEEE 803.3x流量控制将使停顿能力只有UTP双方自动协商能力,使停顿能力。rtl8196c还提供了可选的强制模式下的IEEE 802.3x全双工流量控制。基于优化的内存管理,这是可行rtl8196c堵头。L2交换机特点:该rtl8196c包含1024入口地址查找表与10位四异或哈希算法的地址搜索和学习。每个条目提供自动老化和老化时间是300秒450秒。当以太网网络中的链路利用率低,易使两边的链接系统,以节省电力。绿色环保节能提供了链接和电缆长度的动态检测,并对检测到的电缆长度所需的功率动态调整。此功能提供了高性能的最低功耗。rtl8196c也实现了链路上的每个端口的基础上节约能源,大大减少功耗,当网络电缆断开。这款主要是用来做路由。RTL8196C芯片支持USB2.0,在部分终端模块上外接了一个USB接口无线网卡,Linux系统已经集成好该WIFI模块驱动,通过无线网卡连接局域网。该网卡分Station模式和AP模式两种,AP模式:Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由网桥工作在该模式下。我们可将AP模式简单理解为路由器;Station模式,类似于无线终端,Station本身并不接受无线的接入,它可以连接到AP,一般无线网卡即工作在该模式。我们可简单的说station模式就是网卡模式,它需要连接AP,而AP是被连接的。如果需要WIFI功能,在订购云终端模块时候,需要提出无线WIFI要求,云终端模块默认是不焊接无线模块,测试底板上将USB接口通过USB-A端子引出,该端口可以连接USB设备,比如3G网卡、USB转串口、U盘、活动硬盘等。1.4.2 103电阻:简单介绍:103电阻是一种贴片电阻,也叫片式固定电阻器,从Chip Fixed Resistor直接翻译过来的,俗称贴片电阻(SMD Resistor),是金属玻璃铀电阻器中的一种。是将金属粉和玻璃铀粉混合,采用丝网印刷法印在基板上制成的电阻器。耐潮湿, 高温, 温度系数小。可大大节约电路空间成本,使设计更精细化。注:贴片网络电阻 RCN 系列是在真空中溅镀上一层合金电阻膜于陶瓷基板上,加玻璃材保护层及三层电镀而成,可靠度高,外观尺寸均匀,精确且具有温度系数与阻值公差小的特性。电阻值:103电阻代表10k的电阻,第三位代表的是10的多少次方,即10*103。103电阻的特性:体积小,重量轻;适应再流焊与波峰焊;电性能稳定,可靠性高;装配成本低,并与自动装贴设备匹配;机械强度高、高频特性优越。 103电阻的误差:5%系列贴片电阻用3位数字表示:这种表示方法前两位数字代表电阻值的有效数字,第3位数字表示在有效数字后面应添加”0”的个数.当电阻小于10时,在代码中用R表示电阻值小数点的位置,这种表示法通常用有阻值误差为5%电阻系列中.1.4.3 STM8S003F3芯片STM8型号: STM8系列是意法半导体公司生产的8位的单片机。该型号单片机分为STM8A、STM8S、STM8L三个系列。STM8A:汽车级应用;STM8S:标准系;STM8L:超低功耗MCU。1.4.4 FlashFLASH 芯片是应用非常广泛的存储材料,与之容易混淆的是RAM芯片,我们经常在有关IT的文章里面谈到这两种芯片。由于它们的工作条件与方式不一样,决定它们性能和用途也有差异。RAM芯片失电后数据会丢失,Flash芯片失电后数据不会丢失,我们用失电来表示电源正常关闭,正常关闭电源是指通过控制一步步实现关闭电源后续电流传递的方式,当正常关闭电源才失去电量后续供应保障,并不代表断电这样的一个简单概念,由于RAM芯片可以瞬间断电,而Flash芯片不可以瞬间断电,所以不用断电这样的词语来表述这样的过程,由于瞬间断电FLASH芯片还是可能会出现丢失数据现象的,而且这个问题是及其频繁的,在至今的技术来说存储性能与效果暂不能超越SATA磁盘式硬盘记录,当然磁盘记录速度上没有SSD效果好,也有磁头不平稳转动导致磁盘刮坏盘体而丢失数据,但整体来说在丢失数据问题上相对比SSD的FLASH芯片技术更成熟。工作原理:这里简单介绍一下它们的工作原理。首先介绍一下计算机的信息是怎样储存的。计算机用的是二进制,也就是0与1。在二进制中,0与1可以组成任何数。而电脑的器件都有两种状态,可以表示0与1。比如三极管的断电与通电,磁性物质的已被磁化与未被磁化,物质平面的凹与凸,都可以表示0与1。Flash的储存结构 图2STM8S003F3芯片 图11.4.5晶振:全名叫晶体振荡器,是指从一块石英晶体上按一定方位角切下薄片(简称为晶片),石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。工作原理:计算机都有个计时电路,尽管一般使用“时钟”这个词来表示这些设备,但它们实际上并不是通常意义的时钟,把它们称为计时器(timer)可能更恰当一点。计算机的计时器通常是一个精密加工过的石英晶体,石英晶体在其张力限度内以一定的频率振荡,这种频率取决于晶体本身如何切割及其受到张力的大小。有两个寄存器与每个石英晶体相关联,一个计数器(counter)和一个保持寄存器(holdingregister)。石英晶体的每次振荡使计数器减1。当计数器减为0时,产生一个中断,计数器从保持寄存器中重新装入初始值。这种方法使得对一个计时器进行编程,令其每秒产生60次中断(或者以任何其它希望的频率产生中断)成为可能。每次中断称为一个时钟嘀嗒(clocktick)。晶振在电气上可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率为串联谐振,较高的频率为并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容为15p或12.5p,如果再考虑元件引脚的等效输入电容,则两个22p的电容构成晶振的振荡电路就是比较好的选择。应用:1通用晶体振荡器,用于各种电路中,产生振荡频率。2时钟脉冲用石英晶体谐振器,与其它元件配合产生标准脉冲信号,广泛用于数字电路中。3微处理器用石英晶体谐振器。4CTVVTR用石英晶体谐振器。5钟表用石英晶体振荡器。光敏电阻介绍:光敏电阻(注意:光电池室又称光敏电阻器)或光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。作用:光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性与人眼对可见光(0.40.76)m的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。设计光控电路时,都用白炽灯泡光线或自然光线作控制光源,使设计大为简化。 光敏电阻实物图 光敏电阻电路符号1u和10u电容 第2章 环境光强采集系统的设计方案 2.1设计原理 2.1.1终端模块的电源该模块采用+3.3V电源供电,电源范围为3.2V-3.4V,超过该电压范围会引起永久性损坏,模块恒定电流消耗为lOOmA有USB-WIFI模块时,其平均电流为200mA瞬间峰值电流会达到IA,建议采用输出电流为1.5A以上的DC-DC转换,不可应用常规LDO为模块进行供电,测试地板上有FR9886供电电路案例,可直接采用该电路方案,在模块的电源输入引脚(这些电源引脚为A5-7、B1-3、B12-13),建议添加lOOuF的电容以提供稳定的电源,降低电源纹波对系统的影响。在太阳能等电池供电场合,请注意电源的功耗和变换问题。2.1.2终端模块的USB和Ethernet接口是属于差分高速信号,所以在对外不嫌的时候,注意引线应该做等长处理,同时注意外部强干扰信号对其影响,终端模块对外只有一个主USB接口,若果板载有USB-WIFI模块,此时终端的USB接口已经被占用,外部的USB接口不能再接任何USB设备,如果有更多的USB设备需要添加,可以通过USB-HUB芯片来进行扩展,建议使用uPD720114来扩展USB接口。底板原理图图3焊接实物图 图42.2光敏电阻测温原理光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等半导体。通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。入射光消失后,由光子激发产生的电子空穴对将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到一定波长的光线照射时,电流就会随光强的增大而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。半导体的导电能力取决于半导体导带内载流子数目的多少。光敏电阻的原理图 图52.3 STM8S单片机介绍2.3.1 STM8S的芯片特点内核:高级STM8内核,具有3级流水线的哈佛结构,扩展指令集,存储器程序存储器:8K字节Flash;10K 次擦写后在55C环境下数据可保存20年。数据存储器:640 字节真正的数据EEPROM;可达30万次擦写RAM:1K字节它带有3级软件优先级设定的嵌套中断 ,带有32个中断的嵌套中断控制器,6个外部中断向量,最多27个外部中断,另外,32脚封装芯片上最多有28个I/O ,包括21个高吸收电流输出,非常强健的I/O 设计,对倒灌电流有非常强的承受能力。2个16位通用定时器,带有2+3个CAPCOM通道(IC,OC 或 PWM),高级控制定时器:16位,4个CAPCOM通道,3个互补输出,死区控制和灵活的同步带有8位预分频器的8位基本定时器 。8位的STM8内核在设计时考虑了代码的效率和性能。 它的6个内部寄存器都可以在执行程序中直接寻址。共有包括间接变址寻址和相对寻址在内的20种寻址模式和80条指令。为了避免由于软件故障导致的对Flash程序存储器和数据EERPOM的意外擦写,芯片提供了写保护功能。写保护分为两个等级。第一级写保护叫做MASS Memory Access Security System,存储器操作安全保障系统)。MASS始终有效并保护主要的Flash程序存储器,数据EEPROM和选项设置字节。如果需要执行IAP,可以向控制寄存器中写入MASS关键字序列去掉写保护,然后应用程序就可以向数据EEPROM写入数据,或者修改主程序存储器或者设备选项设置字节。 为了进一步保护一些特殊的UBC存储器区域,可以打开二级保护2.3.2 供电电源应用程序可以进入四种不同的低功耗模式来实现有效的电源管理。用户可以配置成任意模式,在最低的功耗、最快的启动和可用的唤醒源之间达到最佳的平衡。 等待模式:在此模式下,CPU停止工作,但是外设仍在运行。可以用内部中断、外部中断、或复位来唤醒。 参考源开启的活跃停机模式:在此模式下,CPU和外设时钟停止工作。自动唤醒单元按照设定好的间隔时间产生内部唤醒。主电压参考源保持供电,所以电流的消耗比参考源关闭的主动暂停模式较大,但是唤醒时间更短。可用内部AWU中断,外部中断或者复位来唤醒。 参考源关闭的活跃停机模式:此模式除了主电压参考源断电以外,其它皆与参考源开启的主动暂停模式相同,所以唤醒时间较长。 这里我们选用3.3v供,通过一个变压器把电压变成3.3v。电源供电模块 图62.3.3时钟控制时钟控制器将来自不同振荡器的系统时钟(fMASTER)连接到内核和外设,它也为低功耗模式管理时钟的选通,并确保时钟的可靠性。 特点:时钟分频:为了在速度和电流消耗之间找到一个最佳的平衡点,可以通过一个可编程的预分频器来调整CPU和外设的时钟频率。安全的时钟切换:通过一个配置寄存器,可以在运行的时候安全地切换时钟源。新的时钟源准备好之前时钟信号不会被切换。这个设计能够保证无故障地切换时钟。时钟管理:为了减少功耗,始终控制器可以关闭内核、每个外设或存储器的时钟。主时钟源:4个不同的时钟源可用来驱动主时钟1MHz到24MHz高速外部晶振(HSE,High Speed External crystal)最高至24MHz的高速外部时钟(HSE,user-ext)16MHz高速内部RC振荡器(HSI,High Speed Internal RC oscilattor)128KHz低速内部RC(LSI,Low Speed Internal RC) 启动时钟:复位之后,单片机默认运行在内部2MHz时钟下(HSI/8)。一旦代码开始运行,应用程序就可以更改预分频比例和时钟源。 时钟安全系统(CSS,Clock security system): 这个功能可以用软件打开。一旦HSE时钟失效,CSS可以自动地将主时钟切换到内部RC(16MHz/8),并且可以选择产生一个中断。 可配置的主时钟输出(CCO,Configurable main clock output):应用程序可以控制输出一个外部时钟。2.3.4中断控制器带有3级软件优先级设定的嵌套中断带有硬件优先级的32个中断向量包括TLI中断在内的,最多37个外部中断分布在6个中断向量上陷阱(trap)和复位中断2.3.5 模拟 / 数字转换器模数转换器最重要的参数是转换的精度与转换速率,通常用输出的数字信号的二进制位数的多少表示精度,用每秒转换的次数来表示速率。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。原理公式: ; ; ;正常情况下,电压间隔数N=2M,M为ADC模块的精度的位数。模数转换器的转换结果图 图72.4 电路介绍2.4.1下载程序部分硬件电路 2.4.2 UART 通用异步收发器原理和功能简介 第3章 系统程序设计 3.1 程序设计总体构想本程序设计的总体构想是化整为零的方法,把一小块一小块功能写出来,然后再把这些小的程序合到一起,然后通过编程软件把这些小程序都实现,最终把那个大程序自然就实现了。首先,应该把电路的各个原件以及它的电路的每一块的功能都了解,然后再用编程知识将它们联系以来,最后实现软件与硬件的相互结合。3.2ADC子程序 ADC_CR1=0x01; for(i=10;i0;i-); /delay(); for(i=5000-50*ADC_DRH;i0;i-) PD_ODR &=0x10; /delay(); for(i=5000-50*ADC_DRH;i0;i-) PD_ODR |=0x10; temp=(unsigned int)ADC_DRH; UART1_Sendint(temp);3.3数据处理程序(附在后面)3.4 IAR软件的使用IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C+编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。IAR是搞嵌入式开发的编译软件,它适合于STM8编程,用它来实现硬件与软件相结合的一款非常好用的软件,而且这块软件非常简洁,从安装到使用没有复杂的步骤,非常适合于初学者。嵌入式IAREmbeddedWorkbench是一个非常有效的集成开发环境(IDE),它使用户充分有效地开发并管理嵌入式应用工程。作为一个开发平台,它具备任何在用户每天的工作地方所想要的特性。软件的特点:嵌入式IAR提供一个框架,任何可用的工具都可以完整地嵌入其中,这些工具包括:高度优化的C/C+编译器;汇编器;一个强大的编辑器和一个工程管理器;另外该调试器是一个具有世界先进水平的高级语言调试器。文本编辑器:集成化的文本编辑器可以并行编辑多个文件,并具有时兴编辑器所期望的所有编辑特性,包括无限次的撤销/重做和自动完成。另外它还包含针对软件开发的特殊功能,比如关键字的着色(C/C+汇编和用户定义等)、段缩进、以及对源文件的导航功能。还可识别C语言元素(例如括号的匹配问题)。3.5新建工程Step1:选择主菜单的FileNewWorkspace命令,然后开启一个空白工作区窗口。Step2:选择主菜单ProjectCreate New Project选择Empty project。点击OK。最好新建一个文件夹,用于放置所有的生成文件。选择保存路径后,点击保存,新工程建立完毕。Step3:filenewfile编辑代码save文件名可以自己起,但后面一定要加”main.c”,保存为C文件Step4:右击工程名,将写好的程序添加进去AddAdd Files,也可以用AddAdd“main.c”添加入工程。Step5:右击工程名,点击OptionGeneral OptionsDevice选择对应芯片Step6:继续设置LinkerOutput文件名.txt(这步很键)fomatwk_ad_begin。Step7:上述步骤全部设置好以后保存,点击“make”对程序进行编译,如有错误检查修改。如没有进行下面步骤。3.6程序的下载首先要安装JLink驱动,再通过IAR通过JLink下载程序到Flash中指定的地址中去。3.6.1.打开软件3.6.2配置3.6.3程序的编译第4章 系统调试和功能测试 4.1系统硬件调试 对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,板上是否存在问题,例如是否有明显的裂痕,有无短路、开路等现象。如果有必要的话,可以检查一下电源跟地线之间的电阻是否足够大。然后就是安装元件了。相互独立的模块,如果您没有把握保证它们工作正常时,最好不要全部都装上,而是一部分一部分的装上(对于比较小的电路,可以一次全部装上),这样容易确定故障范围,免得到时遇到问题时,无从下手。一般来说,可以把电源部分先装好,然后就上电检测电源输出电压是否正常。如果在上电时您没有太大的把握(即使有很大的把握,也建议您加上一个保险丝,以防万一),可考虑使用带限流功能的可调稳压电源。先预设好过流保护电流,然后将稳压电电源的电压值慢慢往上调,并监测输入电流、输入电压以及输出电压。如果往上调的过程中,没有出现过流保护等问题,且输出电压也达到了正常,则说明电源部分OK。反之,则要断开电源,寻找故障点,并重复上述步骤,直到电源正常为止。接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下,上电时也是按照上面的步骤,以避免因为设计错误或/和安装错误而导致过流而烧坏元件。寻找故障的办法一般有下面几种:测量电压法。首先要确认的是各芯片电源引脚的电压是否正常,其次检查各种参考电压是否正常,另外还有各点的工作电压是否正常等。例如,一般的硅三极管导通时,BE结电压在0.7V左右,而CE结电压则在0.3V左右或者更小。如果一个三极管的BE结电压大于0.7V(特殊三极管除外,例如达林顿管等),可能就是BE结就开路。信号注入法。将信号源加至输入端,然后依次往后测量各点的波形,看是否正常,以找到故障点。有时我们也会用更简单的办法,例如用手握一个镊子,去碰触各级的输入端,看输出端是否有反应,这在音频、视频等放大电路中常使用(但要注意,热底板的电路或者电压高的电路,不能使用此法,否则可能会导致触电)。如果碰前一级没有反应,而碰后一级有反应,则说明问题出在前一级,应重点检查。当然,还有很多其它的寻找故障点的方法,例如看、听、闻、摸等。“看”就是看元件有无明显的机械损坏,例如破裂、烧黑、变形等;“听”就是听工作声音是否正常,例如一些不该响的东西在响,该响的地方不响或者声音不正常等;“闻”就是检查是否有异味,例如烧焦的味道、电容电解液的味道等,对于一个有经验的电子维修人员来说,对这些气味是很敏感的;“摸”就是用手去试探器件的温度是否正常,例如太热,或者太凉。一些功率器件,工作起来时会发热,如果摸上去是凉的,则基本上可以判断它没有工作起来。4.2系统软件调试对于这个程序编译有问题,或者执行的时候崩溃了,或者是下载到单片机中不好使,不稳定,都要进行程序的调试。注意调试的方法,比如下断点,走单步调试,一步一步走看程序的问题到底出现在什么地方。首先进行配置,在Driver下拉列表中选择合适的驱动,其中Simulator是纯软件仿真驱动,适合与应用程序前期简单逻辑货一般运算程序调试。其他均为硬件仿真驱动,需要相应的硬件配合。调试的时候,选择chipcon。菜单按键代表:Go:全速运行Break:终止运行Reset:复位Stop Debugging:退出调试器Step Over:单步执行一条C语句或汇编指令,不跟踪进入C函数或者汇编语言子程序Step Into:跟踪执行一条C语句或汇编指令,跟踪进入C函数或者汇编语言子程序Step Out:启动C函数或汇编语言子程序从当前位置开始执行,并返回到调用该函数或子程序的下一语句Next Statement:直接运行到下一条语句Run to Cursor:从当前位置运行到光标指定处Autostep:弹出对话框用于设定自动单步执行的方法Refresh:更新存储器、寄存器、观察和局部变量窗口的显示信息AIR软件调试程序的快捷键:1、显示行号:在代码段点击右键,找到Options-Editor,将右面的Show Line Numbers 勾选上就可以了。2、注释的快捷键:Ctrl+K;取消注释:Ctrl+Shfit+K3、Ctrl+Shfit+空格,可以使用IAR提供的内部代码的编写,如if语句。4、格式化源码 CTRL + T5、程序花括号的配对内容查找。CTRL + B 则自动的把这段内容 反色的选中。6、自动缩进选中某些行,然后 使用 CTRL + SHIFT +I ,可以实现自动的缩进7、Ctrl+Shfit+空格,可以使用IAR提供的内部代码的编写,如if语句。8、自动往后选中某些行,然后 使用 TAB键,可以实现自动的后退4.3系统功能测试看板子上的小灯亮不亮,看能不能接受到数据并显示出来。如果这两个功能都实现了的话,代表这个系统好使。如果灯不亮的话,代表系统不好使,则要进行硬件调试或者软件调试。第5章认识实习总结与心得体会 5.1 实习总结5.1.1焊接材料:(1)电烙铁:由于焊接的元件多,所以使用的是外热式电烙铁,功率为30w,烙铁头是铜制。(2)吸锡工具,镊子,螺丝批等必备工具。(3)锡丝:由于锡它的熔点低,焊接时,焊锡能迅速散步在金属表面焊接牢固5.1.2实习中遇到的问题在焊接板子的之前,没有了解焊板子应该注意哪些问题:1.如果有原理图,请先看好原理图的连接路径;2.找一个合适的板子,并准备好所需的器件;3.将器件在电路板上排布好,空间要合理利用。焊板子不要虚焊,漏焊,焊好以后注意检查路径连接是否有误,然后接电源测试功能。4.比如,烙铁应该什么拿,什么位置什么方向更适合你,你应该拿到烙铁时,去那一块废旧的板子试一试的焊功,找一找感觉。5.在焊板子之前,你应该了解每一个原件长什么样,应该焊接在什么地方,有没有方向。千万别搞错了,一旦发现自己搞错了,不要慌,千万不要硬把它拔下来,这样会把原件和板子一起弄坏的。比如我在焊板子的时候,所先我焊接的是8196,在对其引脚的时候,由于一开始没对齐,导致引脚与贴片有一定的错位,幸好错位不是很大,但是我在修理8196时,我拿的平头烙铁,从右往左刮,使得错位变的很大,另外把其中一个引脚给刮下来来了,导致这块芯片不好使了,另外我在焊东西的时候我用的锡非常多,经常导致两个相邻的东西短路,然后又要很麻烦的刮锡。而且,这样焊接的不好看。另外焊接贴片电阻的时候一点要,先在贴片上加一点焊锡,然后焊接。学习单片机程序的开发说到底,就要靠勤学,多练,多积累。单片机的开发也不例外,只有在把握了单片机的基础知识后,才能谈创造。所谓这些基础知识把握的好坏并不能从你的单片机课程考了多少分来判定,而是要看你自己到底在开发板上调试过多少小型的源程序,又是否真正把握了这些源程序。这些源程序可以是看了别人写的准确的源程序,自己动手在实验板上调试并进行修改;也可以是参照别人程序自己又有了新思路,然后再重新写过。写程序正如盖屋子,不要指望屋子的一砖一瓦都自己去做,别人已经把盖房的原料做好,你只要拿来,直接使用或稍作修改,就可以用来盖你的屋子了,假如一切都自己去做,那么也许你一辈子都不可能住上这栋新居子。编程序也是这样,有了一些基本的源程序,参加全国电子大赛或编写大型的软件就像搭积木一样,你最多只要稍作修改就行了。假如没有这些平时的积累,一切都是茫然。买一块开发板,就是买一个平台,“有了平台,你便可以轻松的爬上别人的肩膀”。有了单片机的实验平台,你才能去试验更多的程序,才能积累更多的模块化的小的源程序,积累更多的单片机开发的经验和思路,才能踏进单片机开发的大门。这只是我多年学习单片机的一点心得,当年也走过了一些弯路,现在只是把我的真实的想法主意告诉更多的朋友,但愿你们在学习单片机的道路上少走些弯路。5.2 心得体会通过此次实训,我学到了很多,也懂得了很多,从一无所知到现在的将具有能够自己独立焊板子,并且实现该单片机的功能,感触良多。此程序基本可以完成任务要求的部分功能,能够点亮小灯。通过学习STM8,使我们对STM8有了比较深刻的认识,我们基本上是在51系列单片机理解与研究STM8并且实现STM8一些简单的功能,继电器等模块,也可以了解的中断等功能知识。本实验是运用STM8单片机中的采集光强接收模块,实现板子与电脑的数据传递。通过本实验,我们了解了基本光强的原理以及实现,在实验中,我们遇到了很多的问题,但是在老师的耐心指导下,以及同学的不懈努力帮助下,我客服了难题,最终完成任务,然而我们在实验中也暴露出一些问题,如实验耗时过长,焊坏了一块板子,这些都是值得我们反思的,比如,在这个实训中,我们没有团队的合作,我感觉这一点不太好,因为以后找工作,更看重的是我们团队的合作能力,对此,个人认为,以后做试验方式可以是团队合作而不是个人单独完成。总之,本次实验对于我们还是有收获的,学习单片机不是很容易,但我们会坚持的做下去。这个为期三周的单片机实训真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。随着电子技术的发展,特别是微信单片机的产生,而且嵌入式的高速发展,给人们的生活带来了很大的变化,一开始我拿到STM8时,感觉它好难,不知道从何开始学起,也不知道整个学习过程是怎么过来得。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一 点收获也没有。 最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。在老师的精心指导下,程序基本编写成功,这是努力的结果,在享受我的成果之时,不得不感慨单片机的重要性与高难度性,所以为期三周的STM8单片机课程设计没有浪费我们的时间,而是让我们学到了很多知识, 也让我们对单片机有了更深一步的了解,虽然最后结果是出来了可这与老师的精心指导是分不开的他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。还有我们应该提高查资料的能力,在这次实训中,我一开始有很多资料没有查到,比如8196芯片的资料我查了好久都没有查到。另外,在实习之前,我们要对所用STM8这个单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。另外,我感觉我的C语言知识学的不错,但是由于我不懂硬件,我还是不会或者说感觉很吃力在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论