单片机范文10篇

时间:2023-03-28 18:03:09

单片机范文篇1

一般情况下,脉冲干扰这一项能够耐受2000V以上就算不错了(好像我国家电标准是1200V),有些可以达到3000V,于是很多人为此很得意。

单片机在高频脉冲干扰下程序运行是否正常,或者说抗干扰是否通过,有些人以程序不飞掉,或者说“死机”为标准,有些人以不复位并且程序正常运行为标准。很多情况下,芯片复位程序是可以继续运行的,表面上看的不是很清楚。我一般就看单片机在干扰下是否复位,复位了我就认为不行了。不复位并且程序正常运行当然比复位来说要好了。

好多人看到自己做的电路抗干扰达到2000V或者3000V就很高兴,实际上芯片的抗干扰并不一定就很好。这里我不能不说一下日本的标准,高频脉冲连续发出的形式。别小看一个连续和一个间歇的区别,实际上,大家如果有机会,用日本的标准测试一下你的芯片和电路,你就会发现,几乎和欧洲标准差别很大很大,采用日本标准你会很伤心,因为大多数单片机过不了!

日本的标准是1600V。上面我提到的十几家单片机:

意法的也就是ST的≥1800

三菱的≥1800

富士通和日立的≥1600V

nec的≥1500

东芝的≥1300V

摩托罗拉的≥1300

三星的≥1300

现代的≥800

microchip的≥700

国半的cop8≥500

avr和51系列≥500

这里没有给出数据的我没有测试过,但是知道EMC的一款28pin的设计上有缺陷(EMC自己人讲的);合泰的据说欧洲标准可以过3000V。

大家对照一下自己用的单片机,看看在什么档次。不过呢谁要是受了打击也不要太伤心,因为我对照过,也有日本标准在5—600V但是欧洲标准可以达到1500V的电路,同样一块板子;这样的情况我遇到好几次了。大多数情况下,如果过不了欧洲标准日本标准也过不了;过得了日本标准欧洲标准偶尔也会过不了。

需要说明的是,很多单片机在高频干扰脉冲下经常复位,但是程序运行好像没有受到影响,如果打到死机,还可以提高1—200V的,日本标准。欧标还会更高。

大家选单片机的时候仔细看一下资料,凡是复位时间在us级的采用日本标准“会死的很难看”,这就是cop8系列和avr系列怎么努力也达不到日本标准的1000V,avr最多到700V。

单片机的价格嘛,这里我就不用多罗嗦了,ST的最贵,其次是日本的和美国的,下来是韩国的,韩国之后是台湾的。

ST单片机贵在抗干扰性能上,抗干扰性能极好!而且带内置eeprom。Avr的flash+内置eeprom是很好的卖点。不知道大家知道不知道,其实国半也有很好用的flash,价格比avr稍低一点。但是内置eeprom不知道有没有。Msp430系列的特点是a/d,其实16位a/d的单片机大家如果想用便宜的,推荐台湾松汉的一款和三星的一款,价格比msp430的大多便宜。尤其是三星的,16位a/d+flash,超便宜!但是也有前提的,量!开发系统ST的,三菱的,三星的很贵,都在5—6000RMB以上。其他大多在1000到3000之间。

单片机结构方面,我觉得cisc结构的要比RISC结构的要好。Risc结构的指令少,除此之外我看没多少好处了,由此带来的不方便倒不少,为了一个简单的功能几条指令倒来倒去,倒出几十条指令的程序来;而且有的ram要分页,有的rom也分页。编程序跳来跳去,烦透了!cisc结构的指令多,但是也不是很难记,用多自然就记住了,并且结构比较整齐一些,不用操心分页的事情(就算有分页),程序想编到哪儿就到哪儿。

现在我基本只和使用三星和合泰的单片机。性价比好。如果大家要用到液晶驱动,我建议大家用这2家的就行了。合泰的flash不多,但是用特殊办法,一个片子也可以烧几次。三星合泰的单片机这一年半载来卖的很猛!除了带液晶驱动之外,抗干扰性能也不错。

相比较而言,三星的单片机比合泰的稍微要贵一些,而且开发系统死贵(但是你可以不用买,公司一般会借用给你——要受押金的,哼哼!)!但是三星的有几款单片机实在很好,9454大家用的人不少了吧?9228呢,也不错吧?但是我告诉你,还有比这2款更好的,flash+4*18液晶驱动+10bit的a/d。另外三星还有一款专门用于遥控器的芯片,64pin,4*32的液晶驱动,也很便宜,就算是用作液晶驱动芯片也划算,价格嘛,和2片液晶驱动芯片ht1621差不多的。

但是三星单片机也有不好用的地方,大多是精简指令,一个小功能要你把几条指令用好几遍。

单片机范文篇2

Proteus软件界面友好,功能强大,直观性好,在教学中引入Proteus仿真软件,能弥补单片机理论教学的不足,使学生增强动手能力,培养学习兴趣,消除对本课程的畏惧感。下面以基于单片机的数码管静态显示数字“89C52”为例,介绍利用Proteus软件实现电路的硬件设计、软件调试与系统仿真,实现单片机控制电路的功能要求,完成对控制方案的验证。1硬件设计本例中的CPU采用AT89C51单片机,显示单元为5位数码管,其中采用单片机的2位I/O口来控制数码管的串行静态显示电路,将5位“89C52”的断码通过串行方式输出到5片74LS164移位锁存器的输出端锁存,并由5位数码管显示。学生根据实验题目的控制要求及所需元器件在Proteus仿真软件中设计出电路图。在此过程中,能帮助学生更进一步了解单片机及相关元器件的功能及引脚特点,巩固硬件知识。2软件设计(1)画程序流程图。学生根据实验控制要求,整理好编程思路,在实验册上画出程序流程图,即可在Proteus仿真软件上进行程序的编写。(2)编写源程序。本课程采用汇编语言教学,而Protues仿真软件自带汇编编译器,可通过源文件菜单创建“ASM”源文件,打开相应文件的SourceEditer即可进行程序编写,并编译成HEX文件。3系统调试与仿真将编译后生成的HEX文件载入到到单片机仿真系统中,通过调试菜单进行仿真机调试,即可看电路运行显示效果,5个数码管会从左到右依次显示字符“89C52”。在电路仿真过程中,单片机及相应芯片的每个引脚都有电平指示,红色代表高电平,蓝色代表低电平,编程者即可对程序做最基本的判断。当程序没达到预期效果时,可根据引脚电平的变化判断出程序出错部分。Proteus系统中具有全速、单步、设置断点等调试功能,当仿真结果与理论不相符时,学习者还可打开程序调试面板(8051CPUSourceCode)进行调试。

二、Proteus仿真软件在单片机教学中取得的教学效果

(1)教学质量有很明显的提高。在传统的理论教学方法下学生普遍觉得单片机入门难,一开始就失去了学习的信心。而将Proteus引入到单片机教学课堂后,学生自己亲自动手画电路图、编写程序、调试程序,在其中获得成功的喜悦。这很大程度上降低了单片机学习的抽象性,也增强了学生学习的信心和积极性,教学质量明显提高。(2)学生手脑结合,动手能力和创造能力明显提高。Pruteus仿真软件中的电路与实际硬件电路接近,仿真没问题即可直接根据电路图焊接电路板。如果在电路仿真上出了问题,学生可以通过调出示波器等仿真器测量波形等物理量,并对电路加以修改。在此过程中,学生也培养了设计电路、修改电路、调试电路的动手能力。

三、结束语

单片机范文篇3

摘要:本文设计一种智能电子解说系统,具有智能化、个性化、高音质、实用性强等特点。让游客按照设定的经典路线,选择景点或展位的讲解使每个观众不但得到每个展位、景点的完整信息,而且感受到高清晰、低噪声的音响效果,电子旅游解说系统的出现,使看起来简单的解说系统融入了科技的因素。

本文正是基于凌阳公司的SPCE061A单片机并采用A2000语音压缩算法对语音信号进行了压缩存储以及播放。由游客控制选择按键来播放语音,这样大大降低了外面的干扰,使每个观众不但得到每个展位、景点的完整信息,而且感受到高清晰、低噪声的音响效果。

关键词:旅游;电子解说;电子导游;凌阳单片机

1绪论

随着改革开放和经济的发展,旅游业也获得了长足的发展,节假日外出旅游已成为人们的首选。对大多数零散游客来说,希望有一种不受制于人的辅助导游手段,迫切需要一种携带方便、操作简便的电子语音导游器。

本文设计一种智能电子解说系统,选用了凌阳公司的SPCE061A单片机并采用A2000语音压缩算法对语音信号进行了压缩存储,经过这样处理合成后的语音音质良好,放音时间持久,而且机体积很小。

2凌阳单片机简介

SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机。该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。

凌阳音频压缩算法处理的语音信号范围是200Hz-3.4KHz的电话语音。根据不同的压缩比分为以下几种:SACM_A2000、SACM_S480、SACM_S240。SACM-A2000音频压缩算法的压缩比较小,编码速率可选择16kbit/s、20kbit/s、24kbit/s三种之一,具有高质量、高码率的特点,适于高保真语音或音乐。

3硬件系统设计

本系统的硬件部分主要实现路线的显示和景点语音的播放。根据景区景点设计一条经典路线,将沿途主要景点用高亮三色LED显示。红色表示还没有听过解说的最近的景点,黄色表示正在听取解说词的景点,绿色表示最后播放过解说词的景点。语音播放按键分为景点相应放音、暂停、继续放音、结束等。音频信号存储在凌阳语音储存芯片中。语音信号放大由凌阳公司开发的专门用于语音信号放大的芯片SPY0030A完成。整个系统的控制由凌阳单片机SPCE061A实现。具体硬件系统框图如图1所示。

4软件系统设计

本设计选用了SACM-A2000语音压缩算法对语音信号进行了压缩存储。再利用中断进行键盘扫描程序循环扫描按键,获取按键信息后和内置的操作码比较,用来确定播放相应的语音和显示相应的LED灯。景点的解说词事先利用凌阳内置提供的工具进行压缩和存储。

系统的主程序流程图如图2所示,假设主要讲解景点共4处,分别由KEY1~KEY4控制播放,KEY5是暂停播放、KEY6是继续播放、KEY7停止播放。开机时对系统初始化,包含对显示景点的初始化、对语音播放模块初始化、对键盘初始化等。在键盘初始化中设置时基频率为128Hz的中断,并打开中断。这是为在中断中扫描键盘,利用延时法去抖动,延时时间是响应多少次128Hz中断过程。在KEY1~KEY4键控制下播放景点解说词实际是提取相应景点的语音信息的起始存储地址,然后执行相应的语音播放程序。由于语音播放中断服务子程序必须放在TMA-FIQ中断源上,进入中断服务程序必须先保护寄存器,接着判断是不是TMA-FIQ中断。若是,还要判断是哪一段语音要播放,也就是要获取播放语音的起始地址。在TMA-FIQ中断调用F_FIQ_Service_SACM_A2000函数译码播放。

5制作

录制的语音文件在播放前需转换为SACM_A2000格式的压缩文件。语音压缩可以使用凌阳语音压缩工具(CompressTool)完成。该压缩工具支持.wav格式的语音压缩,但要求压缩语音资源属性为8kHz,16位,单声道。

6结论

经过测试,电子语音导游器的性能达到了设计目标,具体如下:各景点语音解说资料、开机欢迎语音信息播放正常,声音清晰;各按键功能正常,各LED管显示正常。凌阳公司的SPCE061A的结构特点及其相关的开发平台,为我们开发带语音特色的产品方案带来了很大的方便,本系统仅是SPCE061A的一个基本应用,体现了SPCE061A多种资源对产品开发的极大支持,同时体现了其的语音特色。

参考文献

单片机范文篇4

单片机的特点主要有:高集成度,体积小,高可靠性;控制功能强;低电压,低功耗,便于生产便携式产品;易扩展;优异的性能价格比。目前,单片机的应用领域主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域,单片机的应用更是不言而喻。

二、单片机开发中的几个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。

1、如何减少程序中的bug。对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。

2、如何提高C语言编程代码的效率。用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。

3、如何解决单片机的抗干扰性问题。防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。

4、如何测试单片机系统的可靠性。当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;ESD和EFT等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。

综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。

参考文献:

[1]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版社,1990

[2]蔡美琴等.MCS-51单片机系统及其应用.北京:高等教育出版社,1992

[3]孙涵芳.MCS-51/96系列单片机原理及应用.北京:北京航空航天大学出版社,1996

单片机范文篇5

本设计采用MicrochipPIC16C54单片机,选用南通光电器件厂GR40101红外发射二极管和GD1611硅PIN型光敏二极管作为红外发射和接收器件,舟山海山电器有限公司生产的微型电机QDB-30-3.0作为泵液晶驱动。系统采用单键模式完成暂停、设定泵液量等功能。电路采用节电方式设计,待机电流小于100μA,并可提供微型电机所需的500mA负载电流,可监测电池电压,欠压报警。系统原理如图1所示。

图中TX(红外发射管)、R1、R5、Q4组成红外发射电路,单片机RA1口输出一定频率的脉冲控制三极管Q4的通断,从而控制红外发射管TX的发射频率。由单片机RA3口为发射电路提供电源,是为了节能。当RA1口将要发射脉冲时,RA3口置高,发射电路加电。RX(红外接收管)、R2、R11、R12、R13、R16、Q6、C3组成红外接收电路,RX接收红外脉冲,整形后由Q6放大。接收电路必须严格控制放大倍数,确保红外反射接收距离在10cm左右。接收电路电源由单片机RB1口提供,在发射脉冲后,将RB1口置高。R6、R7、R8、Q3组成电池电压监测电路,当电源电压降到一定值时,Q3截止,单片机RB3口为高电平,欠压报警。D2、D3、R9、R10、Q1、Q5组成电机供电电路,提供微型电机所需的3V电压、500mA负载电流,当需驱动电机泵液时,由单片机RB2口输出低电平,Q发射极为电机供电。D1、C4、Q2、R3组成电机控制电路,泵液时先为电机供电,然后单片机RA2口输出高电平驱动电机运转。LED为工作状态指示灯,单一按键SW为多功能键,可完成设定泵液量、暂停、手动泵液等功能。

2软件设计

本电路硬件设计通过控制各单元电路供电达到节能的目的,软件上利用PIC单片机的休眼、看门狗溢出唤醒特性以及对发射脉冲个数的控制进一步降低能耗,使其待机电流小于100μA,4节4号碱性电池可提供15000次以上的使用次数或200天以上的使用时间。程序流程如图2所示。

程序开始先对单片机各端口初始化,并设置好看门狗溢出时间,程序工作一个周期后,自动进入休眠模式,由看门狗溢出唤醒单片机进入下一周期。进入一个工作周期前,首先判断是电池上电第1次工作,还是看门狗溢出唤醒单片机。如果是电池上电第1次工作,指示灯应给出指示,并对泵液量进行设定。进入工作周期后要判断按键是否按下,若按下按键,则判断是手动泵液还是暂停泵液器工作,这两者靠按键时间长短决定。

红外收发程序对提高泵液器抗干扰能力、降低泵液器能耗起着关键作用。经过实验选定一个发射脉冲频率使其对外界光干扰不敏感。为了最大限度地降低能耗,程序对发射脉冲的个数和方法进行设计,先发2个试探脉冲,若接收到,则按选定频率连续发60个脉冲,然后判断接收方收到的脉冲数是否在允许的范围内,是则泵液,否则进入休眠模式;若接收方未收到试探脉冲,则直接进入休眠模式。每次泵液器工作后,都检查电池电压,若发现电压低,立即由指示灯给出报警,提示更换电池。

单片机范文篇6

单片机的特点主要有:高集成度,体积小,高可靠性;控制功能强;低电压,低功耗,便于生产便携式产品;易扩展;优异的性能价格比。目前,单片机的应用领域主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域,单片机的应用更是不言而喻。

二、单片机开发中的几个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。

1、如何减少程序中的bug。对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。

2、如何提高C语言编程代码的效率。用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。

3、如何解决单片机的抗干扰性问题。防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。

4、如何测试单片机系统的可靠性。当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;ESD和EFT等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。

综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。

参考文献:

[1]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版社,1990

[2]蔡美琴等.MCS-51单片机系统及其应用.北京:高等教育出版社,1992

[3]孙涵芳.MCS-51/96系列单片机原理及应用.北京:北京航空航天大学出版社,1996

单片机范文篇7

关键词:能力导向;单片机;应用实践;实践教学

单片机的优势包括功能强、可靠灵活、成本低廉以及面向控制等,因此在工业控制、仪器仪表、家用电器以及电子通信等领域得到广泛的应用。单片机教学课程是一门硬软件结合,技术实践性十分强的专业课程,实践教学在其中占有重要地位。因此,各个学校都在研究分析应该怎样施行以能力为导向的单片机应用实践教学,并保证实践的质量与效果。本文主要基于此,研究分析以能力为导向的单片机应用实践教学。

一、单片机教学现状

当前单片机传统教学现状存在一些问题,其主要体现于以下方面:(1)教学内容与课堂教学形式单一,教学内容过于侧重理论知识的完整具体,而忽视了实践内容环节,以至于理论知识与实践操作相脱节。(2)实践教学体系中的内容十分单一,大多是验证性的实验,并没有过多涉及单片机应用系统设计与开发等方面的实践教学。(3)实训内容教学环节缺乏综合性、工程性与创新性,以至于学生不知道应该怎样去设计方案、选择模块以及设计电路。总结来讲,传统单片机应用教学偏向于“知识本位”,过于重视知识教学的系统完整性,忽视了实践教学的重要性,且教学内容单一,教学方法落后,不利于学生单片机应用能力的培养。因此,需要采取有效措施来解决这一状况,实现以能力为导向的单片机应用实践教学模式[1]。

二、以能力为导向的单片机应用实践教学具体措施

(一)重构能力为导向的教学内容。就教学内容与教学方式单一多元化不足的问题,可以开展以能力为导向的教学内容重构工作。教师可通过结合教学内容理论与具体实践案例,来丰富教学方法,以此激发学生的学习兴趣与积极性。同时,教师还应当给学生普及单片机应用领域的相关新技术信息,以拓展学生的知识视野与知识面[2]。例如,教师上第一节课时可以先给学生观看一些科研项目、竞赛或者毕业生设计制作的单片机作品(如语音数字温湿度计、多路抢答器、智能小车控制器等),吸引学生的注意力,并以此激发学生对单片机学习的兴趣与热情。然后,教师在介绍单片机最小系统与I/O接口的时候,可以搭配《键盘控制霓虹灯效果》的这一实际例子,让学生尽早接触有关于单片机应用系统设计的内容。最后,教师还可以给学生普及一些新技术内容,如:I2C总线、SPI总线、单总线结构以及STM32控制器等。在教学时,教师一定要明确自己的教学目标,清楚自己要培养学生怎样的能力,然后采取具体有效的实践教学方法,来培养学生的硬件设计、软件设计、电路设计以及综合应用能力等。(二)从实际项目入手培养学生应用实践能力。以能力导向的实践教学开展可以从实际项目入手,将其贯穿于整体单片机教学环节中,引导学生熟练掌握理论知识、锻炼实践应用能力以及提升项目技能水平。例如,教师可以指导学生先从LED闪烁灯这一简单项目开始操作,期间只负责引导而不参与其中,充分开发学生的实践动手能力。等到学生能完美制作出LED闪烁灯之后,在逐步增加难度,让学生尝试完成模拟十字路通灯、多功能LED数字等。通过此教学方式,让学生能够在由简至难的项目递进实践操作中,熟练了解与掌握单片机硬件结构、I/O接口使用、语言指令汇编、语言程序设计方法、中断/定时器系统应用等知识与能力。在逐步完成这些项目后,学生看到自己完成的成果,会感到十分满足,并由此激发单片机学习的兴趣与积极性,提升教学效果与质量。(三)制定多形式考核方式以巩固学生能力。为了实现能力为导向的单片机应用实践教学目标,学校应当改革和完善课程考核方式,使课程考核能符合“学以致用”的原则[3]。具体考核方式建议如下:第一,为了方便考察学生的合作互助能力,可以在项目中将学生分为2—3人的小组,不同的项目部分由不同的学生负责,来共同完成这一考核项目。第二,可以让学生依据自己的实际情况,通过提交完整仿真电路、制作硬件实物以及撰写实践设计论文等方法来进行考核。以此达到考核学生综合应用实践能力的目的,并能通过考核巩固学生能力,确实落实多形式单片机应用能力考核方式。

三、结论

总而言之,想要确实培养学生的单片机应用能力,施行以能力为导向的单片机应用实践教学是十分有必要的。本文首先分析了传统单片机教学存在的问题,然后在此基础上提出了重构能力为导向的教学内容;从实际项目入手培养学生应用实践能力;制定多形式考核方式以巩固学生能力这三种具体实践教学措施。通过这些措施,能有效创新改革教学方式、教学内容以及考核方式,实现“学以致用”的教学目的,与培养学生的学习兴趣、项目动手能力以及合作意识。

参考文献:

[1]史学梅.单片机应用型人才培养教学改革探索[J].吉林省教育学院学报,2017,33(06):86-88.

[2]马小红,张东波.面向创新能力培养单片机实践教学改革[J].教育教学论坛,2016(35):93-94.

单片机范文篇8

关键词:单片机;串行通信;总线;计算机;接口

随着自动化技术、计算机技术和网络通信技术的飞速发展和广泛应用,论文工业过程的智能化、自动化监测与控制系统的应用日益广泛.单片机系统由于其抗干扰性能较好被大量应用到工业过程控制的各个领域。因为工业现场环境较恶劣,单片机系统在使用过程中通常会出现一些设计时想不到的新情况、新问题,这就需要进一步修改和完善.因此,有必要设计一套单片机综合实验系统,根据工业现场反馈的各种问题,随时对系统中的功能模块进行实验研究和分析,解决工程实际问题.本文设计的这套单片机综合实验系统具有自动采集多路模拟量、对采集的数据进行处理和显示、根据设定的参数自动调节和控制输出、与计算机进行远距离数据通信等功能.

1系统组成及工作原理

综合实验系统主要由以下几部分组成:89C51单片机及其仿真系统,温度、压力等模拟量传感器及其接口电路,A/D转换模块,数据存储模块,按键控制模块,日历时钟模块,看门狗电路模块,FP—GA模块,液晶显示模块,通信模块及上位计算机,其组成框图如图1所示.系统采用89C51单片机作为主控芯片,A/D转换模块将多路模拟信号转换为数字信号;外部数据存储模块为该系统采集的数据提供存储空间;按键控制模块向CPU传回键值,用来设置和调节系统参数;日历时钟芯片不仅可以给系统提供准确的时间,而且为系统提供掉电保护功能;看门狗电路模块为系统提供了精确复位和低电压监控功能,一旦系统出现故障或程序跑飞,它就可以在超时周期之后使CPU复位,提高系统的整体可靠性和抗干扰能力.FPGA模块是现场可编程逻辑门阵列,通过编程可将它作为多种数字逻辑器件使用;LCD液晶显示模块可以同时显示多行字符及自造图形,主要用来显示采集到的数据、系统时间等;兼容RS485和RS232两种协议的全双工串行通信接口,可以与上位计算机进行远(约1200m)近(约15m)距离的数据通信[1];上位计算机将接收的数据进行存储、显示、绘制模拟曲线、打印曲线和数据文件,按照用户的具体要求作进一步的数据分析和处理,同时发送控制参数,对被测对象的温度、压力等进行控制和调节.

2系统硬件设计

2.1单片机仿真系统

单片机仿真系统可以模拟CPU在仿真机上运行用户程序(程序和数据存储器借用仿真机的),也可以连接外部电路来实现动态监测与控制功能.仿真机一般都具有单片机的基本功能部件,如CPU、RAM、用户程序存储区、键盘等;具有单步、设置断点(以便随时观察内部各RAM、特殊功能寄存器的数据变化)、连续运行用户程序的功能[2].

监控程序放置在仿真机内,要仿真的CPU器件位于仿真机外仿真线的端头,毕业论文更换不同的仿真头和CPU,该机可以仿真8031、89C2051、89C51等类型的单片机,该机的调试软件可以直接编辑汇编源程序.通过仿真机进行编程和调试减少了对芯片的频繁写人、擦除和修改操作,只有当程序调试顺利通过才将程序写入芯片,编程方便且节省时间.

2.2传感器的选择及信号变送电路的设计

传感器作为系统的感知器件,直接影响着系统的精度和稳定性.本实验系统中,温度传感器选用精度高,线性度好,使用方便的LM335传感器;压力传感器选用标准应变式压力传感器,它具有精度高、响应速度快、分辨率高等特点.传感器接El电路的设计采用了模块化设计方法,设计了温度、压力等专门接口电路,直接与上述各种传感器相连.由于从传感器输出的模拟电信号非常微弱,需对这些模拟信号进行放大,同时为了确保信号不失真,选用了线性度好、抗干扰能力强的高精度运放OP07,其特点是输入失调电压较高、温漂较小、开环电压增益较高、共模抑制比较大,它输出的模拟信号经10位A/D转换器TLC1543转换成数字信号后,送人89C51进行处理.

2.3通信模块的设计

计算机(PC)串行通信端口是RS232负逻辑电平,该实验系统上既有RS232接El,又有RS485接口,可以通过RS232总线进行点对点通信,也可以通过RS485总线进行多机通信_3],RS485总线上最多可挂接32个综合实验系统,总体布局如图2所示.所以实现计算机和该实验系统之间的近距离通信,通过RS232接口即可;若要实现计算机和该实验系统之间的远距离通信,则必须将RS232电平转换为RS485电平后,才可将实验系统挂接在RS485总线上.RS232-RS485电平转换原理如图3所示,通过MAX485的差动输入(A、B)与RS485总线相连进行信号的收/发,由于RS485总线上只能进行半双工通信,所以MAX232和MAX485之间除了接收和发送线外,还有一个信号线来控制MAX485的接收使能(RE)和发送使能(DE),在PC与RS232相连的这一侧,通过PC的请求发送(RTS)来控制.

2.4串行总线I*2C

I*2C总线是PHILIPS公司开发的一种简单、双向二线制串行总线[4].它只需两根线(串行时钟线SCL和串行数据线SDA)就能完成挂接在总线上的若干个IC器件与微处理器之问的数据交换.该实验系统采用具有IC总线接口的看门狗芯片CATll61和可编程实时时钟芯片PCF8563,由于单片机89C51自身没有IC总线接口,所以采用软件合成IC总线与它们相接.

IC串行总线与并行总线的最大区别在于:并行总线有地址总线,CPU通过地址总线访问从器件;而IC总线利用数据传送中的前几个字节传送地址信息,所以占用CPU的口线大大减少[5].随着智能化测控仪器日趋小型化和集成化,IC串行总线正在逐步取代传统的并行总线..5抗干扰设计

工业监控现场工作环境一般较差,干扰较严重,为了保证系统可靠工作,必须解决抗干扰问题.针对工业监控现场可能产生的干扰、干扰来源、传播途径等,采用了软硬件方法对系统进行抗干扰设计.硬件抗干扰设计主要包括:对电源噪声进行滤波、大功率驱动电路接口进行光电隔离、集成电路芯片的VCC与地之间并连电容、优化电路板的布线、看门狗监控等;软件抗干扰设计主要包括:软件陷阱、软件自恢复、数字滤波、求平均值等.

对于数据输入通道的干扰,采用软硬件结合的方法进行滤波.当存在随机干扰而使被测信号中混入了无用成分时,硕士论文首先经过一个时间连续的RC滤波电路,再经A/D变换成二进制数字量后,进行数字滤波.因为硬件滤波能很好地抑制高频干扰,而对低频干扰的滤波效果却较差;而软件数字滤波算法对低频干扰具有较好的抑制能力.

在控制强电设备的开关量输出通道中,为防止现场强电磁干扰或工频电压通过输出通道反串到监控系统,采用了光电隔离技术.因为光信号的传输不受电场、磁场的干扰,可有效地防止干扰信号因耦合而进入系统,达到电气隔离的效果.

3系统软件设计

系统软件包括单片机软件和PC机软件.单片机软件采用模块化结构,利用MCS一51汇编语言编写.根据要实现的功能,该软件由主程序以及数据采集、A/D转换、数据通信、日历时钟编程、键盘中断调控、液晶显示、D/A转换、数码管显示等程序模块组成.下面以加热炉的炉温控制为例,给出系统程序流程图如图4所示.

PC机软件的主要功能是对单片机系统采集的数据进行存储、处理、动态模拟显示、报表绘制、打印输出等.PC机软件采用VisualBasic6.0编写,医学论文PC机与单片机之间的实时通信程序主要是通过计算机的串行通讯口进行数据的实时采集和双向通信,此外,PC机程序还将单片机采集过来的数据按照用户的具体要求进行动态显示、数据统计、生成报表和数据文件等,并对不同情况下得到的数据进行对比分析,总结出变化规律.

4实验结果与分析

为了测试该系统的实时性,将5台综合实验系统与工业计算机组成分布式多机通信系统,单片机串口工作方式1(传送一帧信息10位),波特率2400bps,一帧数据采用5个字节(其中数据占2个字节是因为A/D转换结果是10位)的格式,如表1所示.5台实验系统各采集一次数据给PC机传送时,理论上连续发送速率为2400/(10*5*5)===9.6次/s.经过测试发现,计算机在120ms后收到了5台综合实验系统发送的共250位数据,实际发送速率约为8次/s,这是因为有状态转换和等待时间;为了测试系统的可靠性和稳定性,将调试好的程序写入单片机芯片,使系统连续运行,120h后观察系统仍然在按设定的流程工作,没有出现死机现象.该系统经过多次改进和实验验证后,据此设计了工业加热炉炉温控制系统并在工业现场安装使用,结果系统能连续正常工作(工业计算机故障除外),测量随机误差为±0.01℃,控制结果满

足了实际要求.

5结论

该综合实验系统不仅能为以单片机为核心的系统前期探索研究提供一种方便的实验装置,而且能在远离工业现场的实验室解决工业应用中的实际问题.实验结果表明该系统可以将许多分散的实验项目整合在一起进行研究和分析,节约资源,降低成本;实验数据正确率高,通信实时性强,系统工作可靠;单片机串行网络构成的分布式通讯系统灵活性强,易于扩充,其基本原理适用于工业现场的分布式数据采集、检测及控制系统,具有很大的实用价值.

参考文献:

[1]李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版,2001.

LIChao-qing.DataCommunicationTechnologyofPCandSCM[M].Beijing:BeijingUniversityofAero—nauticsandSpaceflightPress,2001.(inChinese)

[2]杨文龙.单片机原理及应用[M].西安:西安电子科技大学出版社,1993.

YANGWen—long.PrincipleandApplicationofSCM[M].Xi’an:Xi’anUniversityofElectronicsTechnol-ogyPress,1993.(inChinese)

[3]高红红.矿区专用铁路调度监督系统的研制[J].现代电子技术,2005,21:84.GAOHong-hong.ResearchandDevelopmentofDis—patchandSupervisionSystemofMineRailway[J].ModernElectronicsTechnique,2005,21:84.(inChinese)

单片机范文篇9

经过分析学生的就业情况和对相关企业的调研,我们发现传统单片机课程的教学内容已不符合社会对中职生的要求。传统的中职单片机课程的教学内容基本采用高等院校单片机课程的压缩版,把大部分的教学课时安排在掌握单片机的内部结构和软件编程上。而现实的情况却是:软件编程需要学生具有良好的抽象思维能力,这对现在的中职生来说难度偏大;学生毕业后只有极少数人从事单片机软件编程工作;而对中职生更为实用的以单片机为控制核心的电路系统的安装调试与故障诊断排除,反而安排的教学课时不多。我校单片机课程改革前的情况基本也是这样。在学期初,先安排6个课时让学生在电子线路实训室完成整个实训电路板的焊接和调试,接下来的课时都安排在计算机机房进行一个个具体项目的软件编程学习与训练。在每个项目的硬件电路原理、软件指令分析中,我们会采用proteus虚拟仿真辅助教学,尽量使教学内容形象、直观。但教学效果也不太理想,大部分学生在课程结束都还是不能掌握简单程序的编写。我校就业办统计的数据显示,近4年来,我校每年约300人的电子类毕业生中,从事单片机软件开发的不超过10人。为适应企业对中职人才需求的变化,我们对单片机课程内容进行大幅度的革新。从2011级开始,我们把这门课拆分为一门必修课和一门选修课。必修课中,大幅度削减软件编程的内容,只要求学生掌握对I/O端口的编程控制;重点学习单片机电路的安装调试和故障诊断排除;把课程拓展为大单片机课程,以单片机作为控制核心,融入模电、数电、传感器、显示器等内容。选修课中,全校只开设一个班,主要加强单片机的软件编程,对单片机感兴趣、学习能力较强的学生可以选修,给学生进一步学习提升的机会,也为培养优秀学生参加单片机技能竞赛提供支持。

2构建基于项目制作的理实一体化教学模式

将课程的知识体系打散,把知识点、技能点融入到各个具体的项目中;让学生在“做”这些项目制作的过程中,通过自己的动手体验,从而掌握相应的知识与技能,达到“学”的目的。以此实现理论教学与实践教学的紧密融合,激发学生的学习积极性,让学生在“做中学、学中做”。在必修课中,按照实用、有趣的原则,我们设计了6个项目,如下表1所示。我们把单片机课程的知识点、技能点融入到以上项目中。比如,项目四贪吃蛇游戏机,包括的知识点、技能点如下:知识点:(1)按键、LED点阵、蜂鸣器的结构及工作原理;(2)矩阵键盘电路、LED点阵驱动电路、蜂鸣器驱动电路的工作原理。技能点:(1)按键、LED点阵、蜂鸣器的质量检测;(2)矩阵键盘电路、LED点阵驱动电路、蜂鸣器驱动电路的安装调试和故障诊断排除;(3)STC-ISP软件的使用。我们就是通过这些生动、有趣的制作项目来调动学生的学习积极主动性,让学生在愉悦的精神状态中完成项目任务的安装、调试与故障检修,并从中掌握相应的知识与技能,养成良好的职业安全习惯。

3研制配套的实训装置

为实现以上的项目,我们研制了相应的实训装置。实训装置包括两大部分:单片机实训电路板和小车底盘。实训电路板需学生安装调试,每人一套,归学生所有。这样学生在课室、宿舍都可以进行实训操作,无形中增加了实训时间,扩大了实训空间。出于经济考虑,部分贵重元件和小车底盘则由学校在教学过程中提供给学生使用。为提高实训电路板使用的灵活性,我们设计的实训电路板采用积木式、模块化设计,学生不仅可以用这些模块完成课程设定的项目任务,还可以利用它们制作自己感兴趣的小产品。我们的实训电路模块包括:最小系统模块、4独立按键模块、6矩阵按键模块、两位数码管显示模块、8×8LED点阵模块、LCD1602显示模块、温度测量模块、继电器模块、蜂鸣器模块、小车驱动模块、小车循迹模块、小车测速模块以及小车底盘一个。小车底盘采用带两减速电机底盘,上面介绍的驱动模块、循迹模块、测速模块分别独立安装,然后组装到小车底盘合适的位置中;其他所有的模块都安装在一块电路板上。这电路板上的每个模块都可独立工作,接口用插针引出,模块与模块之间采用杜邦线连接。

4改革传统的考核评价方式

传统单片机课程都采用理论考核方式,在期末时组织笔试考试。这种只重视理论知识、忽视实践技能的考核方式,和我们的实际教学过程以及人才培养目标是相悖的。现在我们课程考核采取过程与结果并重,知识与技能并重的思路,学生课程成绩的计算公式如下:课程成绩=平时考核成绩×60%+期末考核成绩×40%。学生平时考核成绩即课堂制作项目的考核成绩;期末考核则采用理实一体的考核方式,在实训室进行考试,期末试卷包括理论(50%)、实操(50%)两部分。基于成本的考虑,我们的期末实操考核采用学生平时用的实训电路板进行,主要考核学生元件检测,电路联接、测量与调试的能力。

5结语

单片机范文篇10

很多单片机的应用中都需要同时执行很多任务,对于这样的应用,我们可以利用实时操作系统来灵活地安排系统资源。RTX51是美国Keil公司开发的一种小型的应用于MCS51系列单片机的实时多任务操作系统,它可以工作所有8051单片机以及派生家族中,简化了复杂的软件设计,缩短了项目周期。我们实践中用RTX51来开发单片机软件。设计单片机控制的GPS接收板软件,取得了很好的效果。

2RTX51介绍

RTX51有2个模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一个子集,可以很容易地运行在8051系统上,而不需要外部RAM(DXATA)。RTX51完全模式有4个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以从内存池中申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。RTX51对系统硬件的要求如表1所列。

2.1RTX51任务

RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。RTX51支持最大16个标准任务。

RTX51任务状态:

①运行(RUNNIGN)——当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。

②就绪(READY)——等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。

③阻塞(BLOCKED)——等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。

④删除(DELETED)——没有开始的任务处于删除状态。

⑤任务切换——RTX51包含一个事件驱动的任务切换机制,它能够按照任务的优先级进行切换,也就是抢占式多任务系统;另外还有一个可选的时间片轮转切换任务模式,在时间片轮转模式下,同级别的任务是按照时间片分别占用CPU的。RTX51任务有4个优先级:0、1、2可以分配给标准任务,优先级3是为快速任务保留的。每个任务都可以等待事件的发生,而并不增加系统的负担;任务可以等待消息、信号、中断、超时事件或者它们的组合。任务切换是按照一定规则进行的,包括:进入到“就绪”状态的优先级高的任务先执行;如果“就绪”状态的几个任务是同一个优先级,那么最先进入“就绪”状态的先执行。

RTX51任务切换图如图1所示。

2.2RTX51事件

◇超时(timeout):挂起运行的任务指定数量的时间周期。

◇间隔(interval):类似于超时,但是软件定时器没有复位,典型应用是产生时钟。

◇信号(signal):用于任务内部同步协调。

◇消息(message):适用于RTX51Full,用于信息的交换。我们可以把一个消息交送到一个特定的邮箱。消息由2字节组成,可以是用户按照自己的需求定主的数据,也可以是指向数据的指针。如果邮箱的消息列表满,而且是中断发送消息,这个消息将会丢失;如果是任务发送消息,那么任务将会进入到等待状态,直到邮箱重新有了位置可以接收这一条消息。邮箱是按照FIFO的原则来管理消息的,如果几个任务都在等待接收消息,那么最先进入等待接收队列的将接收消息。一个邮箱最多可以存储8条消息。当邮箱满的时候,最多只能有16个等待任务。

◇中断(interrup):适用于RTX51Full,信号量用于管理共享的系统资源。通过使用“令牌”,允许在同一时刻只有一个任务使用某些资源。如果几个任务申请访问同一个资源,那么首先提出申请的将允许访问,其它的任务进入等待队列,直到第1个任务操作完毕,下一个任务才能继续。

Os_wait()函数挂起一个任务来等待一个事件的发生。这样可以同步2个或几个任务。它的工作过程如下:当任务等待的事件没有发生的时候,系统挂起这个任务;当事件发生时,系统根据任务切换规则切换任务。

2.3RTX51中断处理

RTX51完全模式提供2种方法来处理中断:一种是C51的中断函数,另一种是RTX51的断。它又可以分为快速任务中断和标准任务中断。对于中断函数这种方法,它同时也可以在不使用RTX51的情况下使用,当中断发生的时候,程序就跳到了相应的中断函数,它和正在运行的任务是互相独立的,中断的处理是在RTX51系统之外,和任务切换规则没有关联。对于任务中断的方法,不管使用快速是标准任务来处理中断,如果中断发生,等待中断的任务就从“等待”状态进入到就绪状态,并按照任务切换规则进行切换。这种中断处理是完全集成在RTX51的内部,硬件中断事件的处理和信号、信息的处理是完全相同的。在系统响应中断使能寄存器,这样才能遵守任务的切换规则并保证中断程序的无误进行。必须注意中断使能寄存器是由RTX51完全控制的,禁止用户手动的修改。

3应用实例

以下给出RTX51在单片机控制的GPS接收板上的应用。

(1)系统硬件组成

单片机W77E58,快速8051内核、32KBROM、1KB的XDATARAM,符合使用RTX51的硬件要求;键盘、GPS定位模块、液晶显示模块。

(2)系统软件构成

软件运

行环境KEILuVision26.20集成开发环境加上RTX51完成版。任务KEY-BOARD,监测键盘的情况,如果有按键按下,把按键的编码发更新到邮箱1,外部中断1等待接收GPS数据,并把数据存储起来,向DISPLAY任务发出信号。任务DISPLAY根据接收到的不同的信号和消息,进行处理。任务SEND-OUT,把接收到的数据进行处理,并发送出去。任务VOICE进行语音输出。

系统硬件、软件结构如图2所示。

下面给出简写的源程序:

#include<RTX51.h>//包含RTX51头文件

#defineDISPLAY0

#defineSEND_OUT1

#defineKEY_BOARD2

#defineVOICE3

voidmain(void)

{initsystem();//系统初始化

osstartsystem(DISPLAY);//启动RTX51

}

voidtask0(void)_task_DISPLAY

{os_set_slice(1000);//设置时间片大小

os_enable_isr(0);//允许外部中断0

os_creat_task(SEND_OUT);//启动SEND_OUT任务

os_creat_task(VOICE);//启动VOICE任务

for(;;){

switch(os_wait(K_SIG+K_MBX+1,255,&keyboard))//等待接收信号和键盘消息,分类处理

{display1();break;

caseEVENT_MBOX;//当从邮箱接收到数据的时候switch(keyboard)

{case''''1'''';

os_send_signal(SEND_OUT);//向任务SEND_OUT发送信号

os_send_signal(VOICE);}//向任务VOICE发送信号

…;}

…;}

}

voidtask1(void)_task_SEND_OUT//处理发送数据任务

{while(1)

{os_wait(K_SIG,255,0)//等待信号

operation_send();

}

voidtask3(void)_task_VOICE

{while(1){

os_wait_signal(K_SIG,255,0);//等待语音处理信号

voice();}

}

voidinterrupt(void)interrupt2using1

{read_gps_data(p_gps_data);//接收数据

isr_send_signal(DISPLAY);//向DISPLAY任务发信号

}

#pragmaREGISTERBANK(2)//使用寄存器组2

voidtask2(void)_task_KEYBOARSD_priority_3//设置为快速任务

{os_attach_interrupt(0);//绑定任务和外部中断0

while(1){

os_wait(K_INT,255,0);//等待中断的发生

KEY=iic_read_keyboard();

os_send_message(1,KEY,0);}//将键盘编码发送到邮箱1

}

4结论