stc单片机范文

时间:2023-04-09 23:37:47

导语:如何才能写好一篇stc单片机,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

篇1

【关键词】液体点滴速度;单片机

1.引言

随着医院管理系统趋向于电子化、网络化,如何利用计算机与现代控制技术提高医疗器械的自动化成为目前主要应用方向之一。静脉输液是临床医学中一个重要的治疗手段,传统的输液过程都是由监护人员手动控制液体点滴速度,造成了监护人员和病人的诸多不方便,也不利于病区的综合管理。本系统应用自动化控制技术实现了对液体点滴速度的监控,该智能液体点滴监控仪可以对多床位进行远程、集中、分床监测,并针对不同病人需不同的输液速度而自动控制点滴数。护士可在护士室监控若干病房的输液情况,而自动调整滴数,减轻护士的工作量,实现医院护理自动化。而且在紧急情况下,可以向总控制台发出报警。监护人员也可以通过远程通信,监控病人输液的整个过程,并对液滴速度进行设置等。

2.系统总体框图

本系统以stc89C52单片机为核心,由光电传感器组成数据采集部分,由步进电机作为驱动部分,采用键盘输入,利用LCD作为显示器。利用串口,实现了主单片机和多个从单片机之间的多机通信,一个主站控制多个从站的有线液体点滴速度监控系统(见图1)。

3.系统硬件设计

1)数据采集

发光二极管发射的平行光束穿过茂菲氏滴管投射到光敏三极管的感光面上,在没有液滴滴落时,光敏三极管接收到的光照度最大,产生的光电流也最大,当有液滴滴落时,由于液滴的形状特性,使平行光束发散,投射到光敏三极管上的光照度将减弱,从而使光敏三极管产生的光电流减小,形成脉冲(见图2)。

2)驱动部分

采用NMOS管IF530构成如图所示的驱动电路。该电路的特点是无反向电流泄放电路,最大驱动电流达1安培。为了避免开机瞬间由于NMOS管全部导通对步进电机造成损坏,在单片机I/O口和MOS管之间加74HC04构成的反相器,以改变驱动逻辑(见图3)。

4.系统软件设计(见图4)

5.系统算法的选择

步进电机采用模糊控制与PI控制结合的算法。当点滴速度设定值与实际值的差值较大时,使用模糊控制,按照差值的符号决定电机运行方向,电机速度固定。当差值较小时,使用PI控制,电机速度均匀变化而无上下震荡现象,能准确定位。参数整定采用试凑法。

6.总结

本系统可方便地实现对单点和多点输液注射过程进行监控与管理,从而改善了工作条件,极大地减少了监护人员的工作量和由于监护不当造成的医疗事故,具有工作稳定、响应速度快、操作简便等优点,在医疗卫生领域中具有广泛的应用前景。

参考文献:

[1]宋雪丽.基于单片机系统的液体点滴速度监控装置设计[J].电脑开发与应用,2007/05.

[2]王紫婷.智能液体点滴速度监控仪[J].自动化与仪器仪表,2004/05.

篇2

【关键词】STC89C52;舵机控制;串行通讯;PWM波

一、小型自控飞艇舵控系统简介

舵机是小型自控飞艇执行机构中最主要的执行部件,能否快速、准确地完成对舵机的控制直接关系到飞艇的自主控制效果。因此,舵控系统成为小型飞艇自主飞行控制系统中最重要的组成部分之一,它的主要功能是接收艇载计算机发出的控制指令,实现对控制指令的采集、分析和处理,并根据控制指令向舵机输出连续可调的舵控信号,操纵艇上各舵机完成预定动作。

二、舵控系统硬件设计

本飞艇舵控系统以多片STC89C52单片机为核心,配合电源模块、驱动芯片及多路转换开关等在一块印制电路板上实现预定功能。

舵控系统主控芯片选择STC89C52单片机,它具有8KB的并行可编程非易失性FLASH程序存储器,并可对器件串行在系统编程(ISP)和在应用中编程(IAP)。数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定,128×8位内部RAM,32可编程I/O线,4组8位I/O口,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。

电源模块采用78xx系列端稳压集成电路,它是线性三端稳压器件。利用该器件只需极少的器件便可构成高效稳压电路,为MCU稳定可靠的工作提供强有力的保证。

此外,为增强信号的驱动能力,在输出之前采用74LS245作为信号驱动芯片;串口电平转换采用Max232芯片。

三、舵控系统软件设计

1.软件总体结构

舵控系统各单片机程序均在Keil C51环境下采用C语言编写。为了保证系统的实时性及快速性,软件编写采用了主程序+任务+中断的结构。

在三部分程序中,以主单片机1的外部中断最多,包括串口中断、与主单片机2的握手中断以及艇载计算机看门狗的外部中断,这几个中断的优先级排列顺序是:艇载计算机看门狗中断>串口中断>握手中断。主单片机1接收到艇载计算机通过RS232串口发来的信息帧后,首先进行帧识别,提取出前m个字节的数据,加上帧头帧尾后由P1口发送给主单片机2;并将第m+1个字节数据作为开关量通道控制信号由P2口输出,用作系统控制备用。

主单片机2程序的主要任务是通过其P1口接收上位机传来的数据,提取各控制信息,在相应控制指令的前面加上地址,依次由串口发送给下位舵控单片机。

舵控单片机的主要任务是识别控制指令和地址指令,并根据收到的控制指令(舵机占空比信号)产生PWM波控制艇上舵机。

该系统软件设计中的关键问题包括以下几个方面:

(1)控制信号流程中数据帧的接收识别;

(2)舵控系统中主从单片机之间的多机通信;

(3)PWM波舵控信号的软件产生方法。

2.软件设计中的关键问题

(1)数据帧的串口接收及识别技术

采用了中断服务程序就地帧识别技术,其优点在于数据接收后立即进行帧识别,省去了对缓冲区的管理工作,减少了存取次数,因而节省了大量的时间,极大地提高了接收程序的实时性。同时错帧和断帧被自动丢弃,不再占用资源。

(2)单片机多机通讯

在舵控系统设计中,各部分间的通讯是设计的重要内容,其中主要包括单片机与上位PC机间的通讯和单片机与单片机之间的通讯。在舵控系统中,主单片机1与上位PC机通讯是通过单片机自带的一路异步串行通讯接口完成的;而主单片机1通过其P1口向主单片机2传输数据,

此系统中,主单片机2作为主机,m个舵控单片机作为从机,在主机与从机的通讯过程中,串口控制寄存器中SCON中的SM2位发挥了重要作用。当其中一个舵控单片机的SM2位为1时,该单片机只接收地址帧,对数据帧不理睬;而当SM2位为0时,该单片机接收所有发来的消息。具体通信过程如下:①首先将主、从单片机工作方式选为模式3,所有从机的SM2位开始置1,处于只接收地址帧状态。②主机接收主单片机1发来的数据帧,从中提出数据部分(m个字节的指令对应m个舵控单片机),根据序号在控制指令字节前加上一个字节的地址信息。然后主机依次通过串口向下发送各舵控单片机的地址字节和数据字节。发送一帧地址信息,包含8位地址,第9位为1,表示发送的帧为地址帧。③从机接收地址帧后,进入中断,将发来的地址与自身比较;地址一致的从机就是被寻址的从机,它清除SM2位,接收主机发来的所有后续帧信息(数据信息)。未寻址的所有其他从机仍维持SM2=1,对主机发来的数据帧不理睬,直到发来新地址帧;之后在下一次中断时被寻址的从机接收主机发来的数据信息(第9位为0)。

需要注意的是,如果对已经寻址的从机再发送地址帧,则该从机SM2=1,恢复初始状态,和其他从机竞争。

(3)舵控信号PWM波的产生

对飞艇舵机的控制最终是通过舵控单片机产生PWM波来实现的。通常,产生PWM波不外乎硬件和软件两种方法。考虑到舵控单片机计算任务不大,本系统中采用软件产生PWM波的方法。下面以定时器0产生PWM波为例,说明通过软件产生PWM波舵控信号的实现方法。

在程序中,由串口中断接收上位机发s送的脉宽指令,继而通过改变入口参数a来调整PWM波的脉宽,并确保脉宽输出在正常范围之内。通过该方法产生PWM波切实可行,简单有效,可以广泛应用于舵机控制信号的产生中。

参考文献

[1]张晴,袁晓梅,罗凯.基于PWM信号遥控机器人的设计与制作[J].数字技术与应用,2010(10).

[2]冯晓伟,王雷阳,李正生.多路舵机控制PWM发生器的设计与Proteus仿真[J].现代电子技术,2011(11).

篇3

关键词:机械手;STC单片机;Modbus;单片机控制

一、引言

本题目是我校2015大学生大创新项目“单片机机电控制及工控网络应用”的一个组成部分,其设计内容是:用STC单片机控制一台4轴机械手的运动,且单片机的串口与PC电脑通过Modbus网络协议进行通信,PC端则通过运行组态画面对单片机进行实时监控,详见图1机械手实物图。

在图1中,机械手的水平移动由直流电机经齿轮组减速驱动双螺线螺杆,在直流电机轴的另一端安装有光电码盘,以检测电机的角位移。螺杆的转动带动其上的滑块作X轴水平运动。在滑块上安装有一台三坐标机械手,其底盘旋转(A轴),手臂摆动(B轴),夹爪开合(C轴)分别由三只数字舵机S1501驱动。整个机械手由一片STC12C5A32S2单片机控制。该单片机的串口经MAX485与PC进行通信,以Modbus RTU协议实现主从联网。

二、控制电路设计

4轴机械手的控制电路如图2所示。

在图2中,STC12的P1.3/CCP0引脚用于接收与直流电机同轴安装的码盘的光电脉冲信号,并把PCA0设置为对该引脚上升/下降双边沿触发中断的工作方式,每当PCA0中断发生,就根据电机转向对码盘脉冲数加1或减1操作,由此确定出滑块(即X轴)的当前位置。P1.4/PWM1引脚的作用是向直流电机驱动电路发出PWM脉冲,实现直流电机的PWM调速。该PWM脉冲是通过把STC12的PCA1通道设置为8位PWM输出方式来实现的。此外,在X轴两端的极限位置,各安装有一个光电开关,其信号分别接入P3.2/1NT0和P3.3/1NT1引脚。两引脚的下降沿脉冲输入能够触发STC12的1NT0、1NT1中断。P0.0、P0.1、P0.2引脚用于向机械手底盘舵机、手臂舵机和夹爪舵机发出控制信号。STC12的P3.0、P3.1引脚通过MAX485芯片实现TTL/RS485转换,转换后的信号再接到FT232模块的A、B端,经FT232模块把RS485信号转为PC电脑的USB信号。STC12的P3.7引脚用于MAX485的收/发控制。

三、PC组态监控设计

PC端采用uscada组态软件进行上位机监控设计。在用uscada设计监控画面前,要配置串口设备(即从机)的参数和数据区,并进行模拟量和状态量管理。首先,应把串口通信协议设置为Modbus RTU,设置从站地址,该地址应与STC单片机自设的Modbus站址一致。然后再对串口设备数据区进行设置。uscada为从站设备配备了4种类型的数据区:Discrete Input,即DI,离散量输入;Input Registers,即AI,输入寄存器 ;Coil,即DO,线圈输出;Holding Registers,即AO,保持寄存器。在uscada这4个区设置的变量应与在单片机XRAM中DI、AI、DO、AO型变量区设置的变量相对应,但名称可以不同。主从机通信时,单片机的Modbus RTU函数将按照这种 对应关系处理变量。设置好从站的数据区后,就可以 定义模拟量和状态量,并进行监控画面设计。图4为4轴机械手组态监控画面图。

在图4的画面中,分别对机械手的X、A、B、C轴设置了数字框图元,用以显示各轴坐标值,各轴数字框图元右侧的阀门图元用于设定该轴的坐标值。机械手有手动/自动两种工作方式,由图中的档位开关图元进行转换。手动方式下,机械手按图4中左侧各轴坐标设定值进行动作。自动方式下,机械手以手动方式的设定值为起点,以图4中右侧的设定值为终点,进行自动往复循环动作。画面中,滑块起点和终点是DI型变量,手动/自动档位开关是DO型变量,X轴当前位置为AI型变量,其它为AO型变量。当主机与从机通信后,画面即显示出各变量的当前值。

uscada具有串口通道通信数据实时监视功能,图5为主从机通信数据实时监视窗口图。本系统的Modbus RTU从站函数能够处理Modbus 01,02,03,04,05,06,15,16功能码。

四、结语

本文所设计的4轴机械手,首先,具有一个由直流电机驱动的水平移动轴,与全部采用舵机驱动的机械手相比,增加了运动方式和控制方式的多样性,并用到了STC增强型单片机的多种片内资源,是更好的单片机教学与实践模型。其次,本机械手能够通过Modbus工控网络与PC机联网,在PC端通过设计组态画面实现对机械手的实时监控,这就把单片机的学习与实践提升到了网络应用的层面。再次,由于利用了STC单片机丰富的片内资源,并通过上位机监控实现人机交互,这就使得系统的控制电路简单,且uscada为永久免费的组态软件,所以使用本设计方案,能够经济的组建具有工控网络应用的单片机实践教学系统。

参考文献

篇4

>> 基于STC89C58RD+的拼车计价系统的设计 基于单片机的MP3播放器设计 基于单片机的MP3播放器 基于STC89C51单片机的篮球计时计分器设计 试论STC89C52单片机 基于STC89C52单片机的微波自动节能报警器 基于STC89C54单片机投珠机的设计 基于STC89C52单片机的红外遥控灯设计 基与STC89C52单片机智能印章机的设计 基于STC89C52RC单片机的智能小车设计 基于STC89C52单片机的舵机控制系统设计 基于单片机STC89C52的电阻测量系统设计 基于STC89C52单片机与LabVIEW控制的智能小车设计 基于STC89C52单片机的数控电流源设计 基于STC89C52单片机的ATM系统设计与实现 基于STC89C52单片机的智能窗设计 基于STC89C52单片机控制的智能灭火系统设计 基于STC89C52单片机的智能循迹小车设计 基于STC89C52单片机的防火卷闸门控制器设计 基于STC89C51单片机全自动洗衣机控制器设计 常见问题解答 当前所在位置:

关键词:STC89C58RD+单片机;MP3;CH375芯片;VS1011E芯片

DOI: 10.3969/j.issn.1005-5517.2013.6.015

随着人们对便携式音乐播放器要求的提高,MP3播放器以其较小的体积和较好的音质受到广大音乐爱好者的青睐。起初,MP3文件由电脑来播放,后来互联网的发展促进了MP3播放器的产生,同时MP3播放器也发生了一系列的变化,其更加小巧精致,更人机化和情趣化。现在市场上MP3的款式越来越多,功能越来越丰富,但现有MP3播放器大多是将解码器

与存储器一体化的。这种设计使MP3播放器方便携带,但也带来了问题:一是存储容量不易扩展;二是不利于MP3播放器在其他领域的应用。将播放器与存储器分离是MP3播放器目前发展的一个方向[1-3]。本系统采用STC89C58RD+单片机,结合USB接口芯片CH375、解码芯片VS1011E、Nokia5110液晶等设备设计并实现MP3播放器,该系统以USB-HOST方式读取U盘的MP3文件并将其解码播放,同时具备读取音乐标签,U盘电子书和贪吃蛇游戏等功能。

系统总体设计

数据读取模块

单片机读取MP3数据模块包括STC89C58RD+单片机、USB接口芯片CH375和MP3格式数据存储U盘三部分。

STC89C58RD+单片机

系统采用STC89C58RD+单片机,该单片机是美国STC公司设计,国内宏晶公司生产的新一代51增强型单片机,引脚和指令系统均与51单片机兼容。它具有加密性强、超强抗干扰、超低功耗、在系统可编程、内含MAX810专用复位电路等特点[4]。

该单片机采用MCS51内核,其内含32KB的FLASH和1 6 K B的EEPROM,同时内含1KB的内部SRAM存储空间。因而可用于音频数据处理和显示数据处理需要进行较大数据缓冲的情况下。该单片机最高可工作于33MHz时钟,本系统中,它工作在30MHz时钟下,能满足系统对数据带宽的要求。

CH375接口芯片

CH375是一种通用USB总线接口芯片,其内部集成PLL倍频器、数据缓冲区、主从USB接口SIE、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器和通用的固件程序等[5]。它有USB-HOST和USB- SLAVE两种方式,其中USB-HOST方式支持各种常用的USB全速设备,外部单片机、MCU、DSP可以通过CH375按照相应的USB协议与USB设备通信,这是由于在本地端,CH375具有读、写、片选控制线以及中断输出四条控制总线和八位数据总线,可以方便地挂接到单片机等控制器的系统总线上。CH375芯片内部各部分的功用如下:①PLL倍频器用于将外部输入的12MHz时钟倍频到48MHz,作为USB接口SIE时钟。②数据缓冲区用于缓冲USB接口SIE收发的数据。③主从USB接口SIE用于完成物理的USB数据接收和发送。④被动并行接口与异步串行接口用于与外部单片机交换数据。⑤URT串行接口用于代替并行接口与外部单片机交换数据。⑥命令解释器用于分析并执行外部单片机提交的各种命令。⑦控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件的编程,降低了开发难度。⑧通用的固件程序实现USB传输的相关协议。

系统采用VS1011E芯片对MP3音频进行解码。VS1011E音频解码芯片为VS10XX系列的第三代产品,是芬兰VLSI Solution Oy公司生产的单片MP3/WMA/MIDI音频解码芯片,其内部结构如图3所示。它包含一个高性能、低功耗的DSP处理核(VSDSP),5KB的指令RAM,0.5KB的数据RAM,串行的控制和数据输入接口,四个通用I/O口,一个UART口,一个可变采样率的ADC,一个立体声DAC以及音频耳机放大器。芯片可工作于12.288~14MHz或24.576~28MHz时钟下。可用于解码MPEG1&2Layer1,2,3以及MPEG2.5Layer3格式、和WAV等格式文件[6]。

VS1011E芯片工作流程

VS1011E芯片工作时,首先将M P 3或WAV格式音频文件通过SDI总线送入芯片内部并解码。解码后,如果SCL_ AIADDR!=0,则执行应用区代码(代码地址由相应的地址寄存器提供),然后再按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,将数据送到低音和高音优化器进行音效处理,之后再将数据通过音量控制单元备份到音频FIFO中。音频FIFO用于保持数据,并将数据作为采样率转换器和DAC的输入。采样率转换器可将所有不同采样率转换成CLKI/512信号送给DAC,再由DAC按位依次产生立体声模拟信号,然后由系统将这些信号送到耳机功放。VS1011E的工作流程如图4所示。

实现VS1011E芯片控制协议

VS1011E芯片与主机进行数据和控制信息的通信需要利用工作于从模式的SPI串行总线,通过串行数据接口(SDI)传送音频数据,通过串行控制接口(SCI)传送控制数据。VS1011E的SPI接口具有VS1002新模式(SM_ SDINEW=1)和VS1001兼容模式(SM_ SDINEW=0)两种工作模式。当SM_ SDISHARED=1时,数据信号和控制信号的传送共用xCS作同步信号;SM_SDISHARED=0时,则分别采用 xDCS和xCS为同步信号。作为从机工作模式,VS1011E可通过一个信号线DREQ指示是否允许主机传送数据。当DREQ为高时,VS1011E至少可以接收32KB的SDI数据或SCI控制命令。下面以VS1002模式简单分析SPI协议:

(1)SDI数据协议线

xDCS为同步控制线,低电平时激活,可输入数据,高电平时结束当前操作,以使串行接口处于等待状态,当SM_SDISHARED=1时,由xCS替换该引脚。SCK为时钟线,由主控芯片提供时钟。SI为数据输入线,可在SCK上升沿采样输入SI数据。

(2)SCI控制命令线

xCS为同步控制线,低电平时激活,高电平结束当前操作,以使串口处于等待状态,同时使SO输出线为高阻态。SCK(复用)为时钟线。SI(复用)为控制命令输入,可在SCK上升沿采样输入SI数据,若xCS被拉低,则在SCK的第一个上升沿写入数据线的第一个数据位。SO为数据输出线,当主控制器读VS1011E内部控制寄存器状态时,可在SCK下降沿输出数据,如果当前为写操作,MJH SO为高阻态。

VS1011E芯片与单片机的接口电路

系统软件设计

图7为MP3播放器的软件流程。采用C51语言对本系统单片机的软件设计进行编写,源程序共分单片机驱动CH375程序、单片机控制VS1011E实现音频解码程序及按键与显示驱动程序三个部分。为了简化程序设计,采用从官方网站下载CH375的API函数库“CH375HF4.LIB”文件对CH375模块部分程序进行编写。由于单片机的硬件资源比较有限,在硬件调试过程中,当出现传送频率较高的MP3文件时可能会造成声音失真,因此为了保证MP3文件播放流畅,在系统开发过程中应优化程序。

系统启动后,先进行初始化,然后等待U盘插入,再通过CH375芯片将U盘中的MP3文件传送至单片机内部RAM缓冲。单片机是通过SPI总线方式读出音频信息的,并将MP3的码流信息送入到VS1011E芯片中,通过 VS1011E芯片及其内含的高质量立体声DAC和耳机驱动电路,实现MP3文件的播放功能。在按键的控制下,通过Nokia5110中菜单选项的选择,实现对MP3文件选择及音量控制等功能;播放时,显示在Nokia5110上的信息包括MP3文件名称、播放进度和音量等。经过运行测试,该系统可正常流畅地播放出320kb/s的高音质MP3文件,而且其功耗比较低,使用500mA锂电池可连续正常播放十小时。

参考文献:

[1] 王道乾,刘定智,等.基于ARM处理器的MP3播放器分析与实现[J].计算机工程与设计,2007,(07)

[2] 徐英欣.基于ARM的多通道专业MP3播放器设计[J].微计算机信息,2008,(14)

[3] 宋艳红,孙涌.基于FS7821的磁带式mp3播放器设计[J].电脑知识与技术,2008,(S2)

[4] 王海涛,蒋德云,等.一种基于单片机STC89C58RD+的称重显示控制器[J].机电工程,2008,(06)

篇5

Abstract: This article introduces ZIGBEE data transmission under the control of STC microcontroller, points out the ZIGBEE data transmission error problem caused by mismatching of data transmission mode and SCM rate, and provides a reliable solution.

关键词: ZIGBEE;数据传输;STC单片机

Key words: ZIGBEE;data transmission;STC microcontroller

中图分类号:TP274 文献标识码:A 文章编号:1006-4311(2013)32-0205-02

基金项目:四川省科技支撑计划项目;项目编号:2012SZ0158。

作者简介:韩贵杰(1973-),男,甘肃平凉人,教研室主任,技术八级,研究方向为天线、自动控制。

0 引言

随着电子技术的高速发展,人们对数据的获取和过程的控制需求逐渐提升,无线传感网络因为其自身的优势备受关注。ZIGBEE技术作为无线传感网络中的一员,以其超低功耗、抗干扰等优点在无线传感网络领域发挥着巨大的作用。本文采用顺舟SZ05系列嵌入式无线通信模块,此模块具有通讯距离远、抗干扰能力强、组网灵活、性能可靠等优点;可以实现点对点、一点对多点、多点对多点的设备间的数据透明传输;可以组成星型、树型、蜂窝型网状网络结构。

1 顺舟SZ05-ZIGBEE概述

SZ05系列无线通信模块分为中心协调器、路由器和终端节点,这三类设备均有其特殊的网络功能。SZ05-ZIGBEE无线通信模块接口标准规范、采用标准2.54双排插针,标准的RS-232和TTL两种收发接口,配置方式有超级终端配置模式和计算机网关配置模式。

2 SZ05-ZIGBEE和STC单片机的硬件连接

SZ05-ZIGBEE接口规范,与STC单片机连接线路简单,如图1。

由图1可以看出,SZ05-ZIGBEE和STC单片机只需通过串口相连即可,连接线少,不受单片机型号限制。

3 SZ05-ZIGBEE和STC单片机数据传输问题及解决办法

SZ05-ZIGBEE和STC单片机硬件连接如图1所示,并且不因型号而改变。SZ05作为收发模块,数据传输时常见问题为数据传输错误,当数据接收端和发射端的波特率一致时(单片机和SZ05的波特率设置一致),那么数据传输错误的症结就在于数据发送的方式和单片机的速率匹配问题了。当需要发送多个字节时,常见的收发模式有以下两种:①逐个字节连续发送,接收端逐个接收逐个处理。②多个字节打包发送,接收端一起接收一起处理。两种收发模式的流程图如图2、图3所示。

STC单片机有1T、6T、12T 时钟,不同的时钟在上述的两种收发模式下传输数据的方式各不相同,例如STC12C5A60S2(1T)以模式A或者模式B传输数据均无误,可是STC89C51(12T)以模式A传送数据时就会传输错误,这是因为模式A中发送数据和模式B发送数据没有本质上的区别,均是逐个字节发送,而接收数据时模式A是在接收到一个字节之后,会去处理已经接收的数据,12T时钟的单片机由于处理数据的速度有限,这样就会丢掉后面若干个数据,继而导致传输数据错误。12T时钟的单片机传输数据时,收发两侧的数据接口波形图如图4所示。

从图4中可以看出,收发两侧的波形图明显不一致,数据传输必然错误。对于这类因为发送方式和单片机速率而导致的数据传输错误问题,解决的办法是根据单片机速率选择合适的发送方式。通常如果发送的数据为一个字节,那么利用模式A均可发送成功,不必考虑单片机的速率;如果发送的数据较多(若干个数据),那么就要根据单片机的速率来选择了,1T时钟下选择模式A或者B均可,12T时钟下选择模式B。

4 结论

对于STC单片机控制下的SZ05-ZIGBEE数据传输错误这一问题,本文给出了详细的分析和解决办法。不同时钟的单片机在传输数据时要根据传输数据的大小和单片机的速率选择合适的数据收发方式,这样可以减少系统中ZIGBEE的调试难度和时间。

参考文献:

[1]上海顺舟网络科技有限公司.SZ05-ZIGBEE产品使用手册.

[2]孙茂,陈利学.Zigbee技术在无线传感网络中的应用[J].传感器技术,2008(2):192-194.

篇6

【关键词】射频识别;单片机;读写器

射频识别系统通常由电子标签和读写器两部分组成,通常被识别物品的具体信息被存储在电子标签当中,而电子标签一般情况下被放在被识别物品上,通过非接触的方式,射频读写器可以很容易的获取到所存储的信息[1]。读写器可以对接收的电子标签的信息进行调制解码,然后通过计算机和网络,将读出的标签信息进行信息传输和管理[2-3]。STC12C5A60S2系列的单片机具有超强抗干扰能力、可用低频晶振、低功耗、可远程升级、可送STC-ISP下载编程器、内部集成高可靠复位电路等优点[4],基于上述优点,本文选用STC12C5A60S2系列的STC12LE5A32S2作为射频读写器的主控制器。

1 射频读写器总体设计

射频读写器的硬件组成框图如图1所示。

为了增加读写模块的通用性和可扩展性,在硬件设计时遵循模块化的设计思想。整个读写模块主要由四大部分组成。

1.1 主控MCU

主控单片机主要用于射频读写芯片和RF收发芯片的控制操作。本文选用STC12C5A60S2系列的STC12LE5A32S2做为主控制器。

1.2 射频读卡模块芯片

射频读写芯片,一方面该模块负责接收主控单片机的控制信息,另一方面主要完成与电子标签的通信操作。本文选用 TX125系列非接触IC卡射频读卡模块。

1.3 RF收发模块

RF收发模块的作用是为数据包处理、数据换冲、突发数据传书、清洗信道评估、连接质量指示和电磁波技法等一系列工作提供广泛的硬件支持。本文选用CC1100做为RF收发模块的主控芯片。

1.4 RS232接口模块

本设计选用RS232异步通讯接口。台式电脑上一般都有这种接口配置,这种配置做为台式电脑的基本配置而存在。综上所述,射频读写器的总体结构框图如图1所示。

图1 射频读写器硬件组成框图

2 射频读卡器各个模块设计

2.1 STC12LE5A32S2应用线路图

晶振电路:如果是外部时钟频率在33MHz以上的情况,这时就直接可以使用外部有源晶振,反之则使用R/C振荡器时钟(室温情况下5V单片机为:11MHz~15.5MHz,3V单片机为8MHz~12MHz),XTAL1和XTAL2脚浮空;在外部时钟频率在27MHz以上的情况下,使用标称频率就是基本频率的晶体,但不要使用三泛音的晶体,否则如参数搭配不当,就有有可能会出现振在基频的情况发生,在此状态下实际频率就只有标称频率的1/3了,也可以直接使用外部有源晶振(时钟从XTAL1脚输入,XTAL2脚必须浮空)。

2.2 射频读卡模块TX125

非接触IC卡射频读卡模块TX125系列采用的是125K的射频基站。当有射频卡靠近模块的情况发生时,模块会以韦根或UART方式输出ID卡卡号,用户仅需简单的读取即可,如果是在在串口方式下,该模块可工作在主动与被动的模式两种模式之下[5]。该读卡模块完全支持EM、TEMIC、TK及其兼容卡片的操作,TX125系列非接触IC卡射频读卡模块实物图如图2所示。

图2 TX125系列非接触IC卡射频读卡模块实物图

TX125支持韦根接口和串口两种协议,本设计选用韦根接口。TX125韦根接实物图如图3所示。

图3 韦根接口实物图

2.3 RF收发模块CC1100

论文里选择射频收发器CC1100芯片作为RF收发模块,这是ChiPCon公司生产的一种收发器CC1100芯片。该芯片优点有:不需要大量的外部器件,所以集成度很高;选SPI接口作为其数据接口,拥有高达500kbps的传输速率;CRC(循环冗余码校验)和自动处理数据头;功耗特别低,其工作电压仅为1.9-3.6V;工作的频道依次是4335MHz、8685MHz和915MHz,每个频道之间的转换时间低于650s;点对点传输模式和广播传输模式均可以[6]。

2.4 射频读写器工作流程

射频读卡器作为一个系统,不仅包括硬件部分,还包括有软件部分。对于本设计,有许多接口需要软件的支持,软件程序应用Keil C语言进行编写。主控MCU工作流程如下:

1)初始化接收缓冲区;

2)检查TX125连接超时次数不得大于10次,否则重新发送电子标签数据;

3)当电子标签经过后,将电子标签内的数据发送到接收缓冲区并启动定时器;

4)检查CC1100连接超时次数不得大于10次,否则重新发送电子标签数据;

5)对接收到的数据进行检查,若收到的数据为10字节则检查它的正确性,反之则重新发送数据;

6)检查读写器是否存在故障;

7)清空接收缓冲区。

3 射频读写器调试结果

图4 调试参数设置

调试软件AccessPort是一款集端口调试、拦截数据等多功能为一体的串口调试工具,他具有简单、易用、功能强大等优点。实验中的硬件配置:CPU 3.0GHz,2G的内存,160G的硬盘。

调试参数设置如图4所示。

当标签经过时,读卡器能很迅速的读出电子标签的信息,并且显示正确,表明了读卡器良好的阅读性和可用性。调试结果如图5所示。

图5 调试结果

调试结果表明:该读卡器读卡距离稳定、穿透性较强、具有严格的方向性和稳定性、适用于露天环境、维护方便。用STC12LE5A32S2作为主控MCU的读卡器读写速度快,读写信息正确,具有一定的抗干扰性,能在恶劣的环境下对电子标签信息进行阅读,并且操作方便,可以直接下载程序,在调试工作中该性能给予了很大的便利性。

【参考文献】

[1]王圣礼.超高频射频识别(RFID)阅读器的设计与实现[D].杭州:浙江大学,2008:15-19.

[2]John R. Tuttle.Traditional and emerging technologies and applications in the radio frequency identification industry[J].IEEE Radio Frequency Integrated Circuits Sysmposium,2004,32(5):9-15.

[3]Matthew M, Radmanesh. Radio frequency and microwave electronics illustrate[J].Publishing House of Electronics Industry,2002(3):467-470.

[4]左安友,刘延平,黄勇.基于STC12C5A60S2单片机的楼宇平面结构显示系统设计[J].湖北民族学报:自然科学版,2011,12(04):13-19.

篇7

【关键词】rtx51tiny 实时操作系统 单片机 stc12c5a60s2

rtx51tiny实时操作系统是keil c51单片机集成开发环境自带的一个实时操作系统,它功能强大、简单易用。它可以应用在所有的8051衍生的单片机系列中。stc12c5a60s2单片机是深圳宏晶科技有限公司旗下的功能强大的1t单片机。此单片机是新一代增强型8051单片机,运行的速度是传统8051单片机的8~12倍,这是相当快的速度。它内部资源丰富,兼容性强,并且内部rom可达60kb,对于一般的应用已经足够。

在一些比较复杂的应用中,如果使用超级循环进行编程,则在实时性,逻辑性,资源的共享等方面存在较为复杂的关联性,这对编程来说是不利的。另外在增加与删除功能上也会增加编程的复杂性。能不能把rtx51tiny操作系统移植到stc12c5a60s2单片机上呢?如果可以则在保证实时性的基础上,编程的复杂性会大幅降低,程序可维护性也会大幅提升。增加或者删除功能会变得相当容易。

答案是肯定的。rtx51tiny操作系统完全可以移植到stc12c5a60s2单片机上。

先来看看rtx51tiny操作系统介绍。

一、rtx51tiny操作系统的特性

rtx51tiny操作系统是集成在keil c51开发环境中的实时系统。它的主要特点如下:

(一)采用时间片轮转调度策略进行任务切换,不支持抢占式任务调度策略。

(二)允许最大16个任务循环切换。

(三)支持信号传递,不支持消息处理、队列处理、邮箱等功能。

(四)内核很小,最大仅占用900字节。

(五)系统函数仅有13个,非常容易使用。

(六)支持硬件中断功能。

根据它的特点,我们可以得到这样的结论:rtx51tiny操作系统非常适合应用于8051系列单片机,可以实现多任务协同工作。在实时性上,可以采用硬件中断响应,速度与没有使用操作系统一样快捷。

二、rtx51tiny工作原理

rtx51 tiny 用标准8051的定时器0(模式1)生产周期性的中断。该中断就是rtx51 tiny的定时节拍(timer tick)。库函数中的超时和时间间隔就是基于该定时节拍来测量。

rtx51tiny通过时间片轮询的办法对任务进行切换。时间片通常设置很短只有几个到几十个毫秒。每一个任务都有自己的时间片,当自己的时间片用完或者调用了os_wait()函数与os_switch_task()函数则任务进行切换。只要这个时间片足够短,则多个任务之间在宏观上可以看成“并行”执行,而微观上则是轮流执行。

多个任务可以“并行”执行,这在单片机处理多个事件时,有很多的好处,因为我们在使用单片机时经常会遇到需要同时处理的事件。

三、stc12c5a60s2单片机介绍

stc12c5a60s2功能强大,它的主要特点如下:

(一)具有较大的rom,可以达到60kb。

(二)不仅与传统8051单片机一样拥有256字节的内部ram,而且还在内部扩展了1024字节的ram。

(三)通过串口下载程序,程序下载次数可以达10万次以上。省去了仿真器,程序调试相当方便。

(四)兼容传统8051指令集。

(五)运行速度是传统8051的8~12倍。

(六)片内拥有1k字节的eeprom,可以在程序运行时读写,如须保存一些永久数据则可以使用它。

(七)具有两个串口。

以上是此单片机的主要特点。这些特点显示它是一款功能十分强大的单片机,在较为复杂的应用中也能够胜任。

四、rtx51tiny针对单片机stc12c5a60s2的设置

在keil c51这个软件的安装目录:keil/c51/rtxtiny2/sourcecode/下有一个文件conf_tny.a51,此文件是 rtx51tiny操作系统的设置文件。可以通过记事本打开它,也可以通过keil c51软件打开它。它里面的设置是用汇编指令编写的。

rtx51tiny需要设置的内容如下:

(一)指定定时节拍中断寄存器组

默认状态:int_regbank equ 1

寄存器组默认设置为0。对stc12c5a60s2单片机来说,它有四组通用寄存器,在没有特殊要求的情况下,使用哪一组都行,使用默认值即可。

(二)指定定时节拍长度

默认状态:int_clock equ 10000

rtx51tiny为了产生系统需要的定时节拍,固定使用传统8051单片机的定时中断t0,用它产生定时节拍。默认状态下,一个定时节拍的长度为10000个机器周期。对于传统8051单片机来说,如果采用12mhz晶振,则一个机器周期是1μs,10000个机器周期则是10ms,所以定时节拍时长为10ms。stc12c5a60s2单片机它比传统的8051单片机快8~12倍。在定时时长方面则是12倍(auxr特殊功能寄存器的 t0x12位置1)。由此它的机器周期是1/12μs,则定时节拍为833.3μs。为了得到整数,我们可以设定int_clock为12000、 24000、36000、48000、60000等,对应的定时节拍时长为:1ms、2ms、3ms、4ms、5ms。这里的定时节拍可以作为 os_wait()函数等待的一种事件。如定时节拍数是整数,则使用os_wait()函数来延时更方便计算。  (三)指定任务运行时间片长短

默认状态:timesharing equ 5

时间片是任务不间断运行的最长时间,默认为5,即为5个定时节拍。如果设定定时节拍为1ms,则时间片为5ms,以些类推。此默认值可不改变。为了使任务“并行”执行,时间片不能太短,太短会使单片机花费在任务切换上的时间变多,而实际任务执行的时间变短。时间片不能太长,太长则会使任务切换不够快,并行执行的效果差,严重时会使快速的信号得不到处理。这时我们应该根据任务的数量来确定此值,比如任务的数量比较少,可以把此值设得大一些,任务数量多,可以把此值设定得小一些。总之使时间片处在几个到几十个毫秒之间即可。

(四)是否执行长中断

默认状态:long_usr_intr equ 0

不执行长中断。如果为1则执行长中断。执行长中断是什么意思呢?

rtx51tiny,在系统执行过程中,有两种中断:一种是单片机的硬件中断。一种是任务切换造成的中断。此处指硬件中断。在 rtx51tiny运行时,希望硬件中断发生时,执行中断服务函数非常快,不影响到任务切换,一旦影响到任务切换就会影响到程序的实时性。但有时,中断服务函数要处理的件事需花费较长的时间,此时就会影响到任务的切换。为了让系统支持长中断,可以设置此参数为1。一般情况下,不使用长中断,即使有件事要花较长的时间处理,也不使用长中断。可以把中断服务作为一个任务来处理。发生中断时,可以发信号给此任务,让它变成就绪态,然后运行。这样就可以保证其他任务的实时性。

(五)在定时节拍中断中,加入自己的代码

默认状态:hw_timer_code macro

; empty macro by default

reti

endm

默认状态是不加任何代码。一般情况下,我们可以不加代码,如果我们想得到一个与定时节拍相关的信号则可以在空处加入如下代码:

cpl p10 ;此指令功能是对p1.0取反。

此时可以从p1.0引脚输出一个频率是定时节拍频率两倍的信号。

为了实现这个功能,我们还得在conf_tny.a51文件中,加入p10的定义。可以在地址定义处加入以下两行汇编代码:

p1 data 0b0h

p10 bit 0b7h

(六)是否支持代码分页

默认状态:code_banking equ 0

不支持代码分页。如果为1,则支持代码分页。什么是代码分页呢?

对于8位的单片机,它的寻址范围只有64kb(216),如果单片机的程序编译以后得到的16进制文件超过了64kb,则需要通过分页的方式进行访问,否则超过的部分无法访问。这就是代码分页。而我们使用的stc12c5a60s2单片机的rom只有60kb,没有达到8位单片机寻址的极限,不需要代码分页。这个参数保持默认值。

(七)设置内部ram的最大值

默认状态:ramtop equ 0ffh

默认ram的最大值为255。这与传统的单片机内部的ram结构一致。而stc12c5a60s2单片机内部扩展了1024字节的内部扩展ram。它的实际内部ram地址为0x000~0x3ff。那么在这里我们应该把这个参数设置为什么值呢?

在stc12c5a60s2单片机的使用手册中,有这样的表达:

当把寄存器auxr中的extram设置为0时,就可以通过movx @dptr和movx @ri两条语句来访问内部扩展的ram。movx @dptr可以访问0x00~0x3ff地址的内部扩展ram,而超过这个范围的则都是访问外部ram。movx @ri语句只能访问0x00~0xff的地址。与传统8051单片机一样。

根据这样的表述我们是不是就可以把这个参数设置为3ffh呢?

我们再

来看看rtx51tiny中的设置文件conf_tny.a51中对ramtop这个参数的操作,实际上都是把ramtop当成一个字节来操作,如果我们把ramtop设置为3ffh,超出了一个字节的范围,在操作时,还是当成一个字节。由此我们得出结论,ramtop这个参数还是使用默认值。那么stc12c5a60s2单片机内部扩展的1024字节内部ram如何使用呢?在使用手册中,有明确的表示:在变量前加上xdata关键字即可。

(八)设置发生任务切换时,最小的堆栈需求

默认状态:free_stack equ 20

在默认状态下,这个参数设置为20,即最小需要20个字节的ram存储空间。在这里设置为默认值。

(九)在发生堆栈错误时运行的宏

在任务切换时,单片机内部ram没有达到最小20字节的要求,则发生堆栈错误。这是一个循环。代码如下:

stack_error macro

clr ea ; disable interrupts

sjmp $ ; endless loop if stack space is exhausted

endm

首先把总中断允许位清零,不再允许任务切换,然后进入一个死循环,不再执行任务操作。

10.设置是否允许单片机进入空闲模式

cpu_idle_code equ 0 ; 0 cpu_idle macro is not inserted

; 1 cpu_idle macro is executed

默认状态:不插入cpu进入空闲模式的宏。

有很多的单片机有这个功能,stc12c5a60s2也有这个功能,我们可以使能这段代码。这样在没有其他任务运行时,单片机会进入到空闲模式。在空闲模式下,只有cpu不工作,其他部分仍然在工作。这主要是从节能方面考虑,如没有这项考虑可以不插入这段宏。

cpu_idle macro

orl pcon,#1; set 8051 cpu to idle

endm

以上是可以插入的宏。

到此,针对stc12c5a60s2单片机的设置已经完成。

五、使用rtx51tiny的步骤

(一)在c语言文件的开头,包含头文件“rtx51tny.h”。如下:#include

(二)把conf_tny.a51文件拷贝到自己的工程中来,并添加到工程中。然后进行相应的设置。

(三)编写自己的程序。

六、使用rtx51tiny注意的事项

(一)确认把头文件rtx51tny.h包含到文件中来。

(二)不需要编写main函数,rtx51tiny有自己的main函数。

(三)至少建立一个任务函数。这个任务就是任务0。

(四)至少调用一个rtx51tiny系统函数。否则,连接器不会包含rtx51tiny库。

(五)在任务0 中建立其他任务。

(六)任务函数不能有形参与返回值。并且任务内要采用死循环的方法把要执行的程序包起来。

经过以上的设置后,rtx51tiny可以很方便的移植到stc12c5a60s2上。

七、结束语

本文论述了把rtx51tiny操作系统移植到单片机stc12c5a60s2上的方法。这种方法具有广泛的应用性。但限于作者的水平,文中难免有错误的地方,希望得到谅解。

参考文献:

篇8

关键词:恒温箱单片机数字温度传感器

中图分类号:TP273.5 文献标识码:A文章编号:1007-9416(2012)03-0000-00

1、引言

随着恒温箱在医疗卫生、科研、工业等领域的广泛应用,已越发突出其重要性。研究并设计一种先进实用的恒温箱已成为工业生产,商业运营的一个重要研究课题,而设计其关键技术在于如何保持箱内温度恒定。本系统以52系列单片机为控制核心,采用数字温度传感器进行温度检测,从而实现温度箱的温度检测与控制功能。

2、系统方案设计

本系统是基于STC89C52单片机的应用开发,集温度信号采集、数据处理及温度保持等一体的数字控制系统。系统由下列模块组成:显示模块、单片机、按键输入模块、温度采集模块、输出电路模块,如图1所示。

3、温度测量

系统采用DS18B20数字温度传感器进行温度采集。DS18B20是由美国DALLAS半导体公司生产的,具有精度更高、体积更小、使用电压更宽、采用一线总线、可组网等优点,并且抗干扰能力强[1]。由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念。因此系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据[2]。

温度检测系统采用寄生电源供电方式。无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS18B20挂接,读出其序列号。其工作过程为:主机Tx发一个脉冲,待“0”电平大于480us后,复位DS18B20,待DS18B20所发响应脉冲由主机Rx接收后,主机Tx再发读ROM命令代码33H(低位在前),然后发一个脉冲(15us) 并接着读取DS18B20序列号的一位。用同样方法读取序列号的56位。它分三步完成:(1)系统通过反复操作,搜索DS18B20序列号;(2)启动所有在线DS18B20做温度A/D变换;(3)逐个读出在线DS18B20变换后的温度数据。

4、输出控制电路

本系统装置了加热电阻丝温度调节装置以便于调节恒温箱的温度恒定。输出控制电路如图2所示,其工作原理是单片机通过P3.1的输出信号经光电耦合器控制双向可控硅的门极,当输出高电平时,使双向可控硅导通,电阻丝导通;输出低电平时,双向可控硅截止,电阻丝断电。

5、按键输入和显示电路

本系统设置了5个按键分别实现不同功能:复位键、显示切换键、功能设定键、温度加1℃键、温度减1℃键,同时采用共阳极数码管LG5641A进行动态显示。

6、软件流程

主程序采用中断嵌套方式设计,各功能模块可直接调用。主程序完成系统的初始化,中断设置,温度预设,预设温度的显示。中断程序通过调用温度检测子程序、温度显示子程序、温度比较子程序、温度控制子程序完成系统全部功能。

7、结语

本文采用单片机和数字温度传感器采集恒温箱的温度,应通过温度比较程序,由此结果来控制加热电阻丝和风扇的开断从而控制温度箱的温度,具有结构简单,操作方便,成本低廉等优势,具有很好的应用背景。

参考文献

[1] 郁有文,程继红.传感器原理及工程应用[M].西安:西安电子科技大学出版社,2003.

篇9

【关键词】51单片机 语音播放系统

1 各种语音播放系统的对比和分析

如表1所示。从表1不难看出,采用ST C12+FLASH存贮芯片的方案在无论在成本及灵活性方面都具备很好的优势。

2 STC12系列增强型51单片机播放系统的硬件构成

如图1。本系统的MCU采用了宏晶公司的STC125404芯片,它的P3.7具有PWM功能,因此连接到功放电路LM4890上。语音的存贮芯片采用了旺宏(MXIC)公司的MX25xxx08系列串行NOR Flash芯片,如果采用一片16Mbyte容量的芯片,存放8KHZ、8bit采样频率的语音文件(即8000字节/秒),按以下计算公式:

16*1024K/8K=2097(秒)

也就是可以播放时长大约为2097秒的语音文件。

语音数据是将音频wav文件的头信息去掉之后提取出来的,然后按应用的需要,分段烧录到Flash的固定位置,将语音的存放位置和长度记录下来,以供播放程序调用。

3 STC12系列增强型51单片机播放系统的软件构成

PWM产生声音的原理是:调节PWM的输出脉冲的占空比来产生不同幅度的电压,这个幅值就接近于语音的声波。如图2所示声音的波形图。

而PWM输出频率越高,产生的音波幅值就越精确。STC12系列增强型51单片机因为具有1T的机器周期,它的时钟频率是传统的12T 的51单片机的12倍,因此它的PWM输出频率最高(以11.0592M的晶振频率计算)可以达到11059200/256=43200HZ。这个频率已经接近44.1kHz 的CD音质了,因此用它来播放语音文件,声音效果也十分理想。

软件设计工具采用Keil C51,语音播放主要用到单片机的两个定时器。一个定时器用来产生8KHz的采样频率,本设计中采用T1定时器的8位定时器中断功能,定时125us;另一个定时器用来产生PWM波形,本设计中采用T0定时器8位定时/计数器功能。设置好这两个定时器的功能是程序开发的关键所在。

下面给出设置PWM寄存器的关键代码:

/*设置STC12单片机的PWM功能*/

void Pca_Initialize(void)

{

CMOD = 0x04; //Setup PCA timer

CL = 0x00;

CH = 0x00;

CCAP0L = 0x7F; //Set the initial value same as CCAP0H

CCAP0H = 0x7F;

CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PMW mode

PCA_PWM0=0x00;

}

/*两个关键定时器的功能设置*/

void Soundinit()

{

Pca_Initialize();

AUXR =(AUXR|0xbf);

TR0=0;

TR1=0;

TMOD = 0x22;

TH1=0x8c;

TL1=0x8c; //1/8000hz=125us,就是125US一个采样点,以11.0592M的晶振计算

TH0=0xff; //TL0=0xff; 定时器0的溢出率是PWM的时钟源。

TR0 = 1;

TR1 = 1;

ET1 = 1;

CR = 1;

PT1=1;

PT0=0;

EA = 1;

}

/*每隔125us送一个新的采样数据给PWM的寄存器*/

void timer1() interrupt 3

{

CCAP0H =SoundData[jx];

CCAP0L =SoundData[jx];

}

4 总结

现在越来越多的消费电子产品中需要增加语音报话功能,利用STC12系统单片机的PWM功能,可以以极低成本实现上述功能,电路设计简单,语音更改灵活。并且这种语音播放技术可以很容易的推广到其它具有PWM功能的单片机或者ARM芯片上,具有很长久和广泛的应用前景,因此是一项值得学习推广的技术。

作者简介

姜燕频(1977-),女,上海市人。大学本科学历,中级工程师。主要研究方向为嵌入式开发,单片机C51、ARM开发、linux驱动开发、linux系统移植。

篇10

在谈到解决TD-SCDMA手机技术问题的时候,ADI公司射频及无线通讯系统部TD-SCDMA平台产品经理范红显得自信满满:“ADI的TD-SCDMA手机芯片,在技术成熟度、性能、稳定性和灵活性方面都是业界首屈一指的。”的确,ADI在TD-SCDMA上投入所取得的成功几乎是众所周知的,而且从目前的情况来看,该公司也是唯――个能够提供符合TD-SCDMA标准的完整且较为成熟方案的厂商。继能够支持384kbps数据带宽的SoftFone-LCR+芯片组之后,该公司又推出了最新的Othello-3T单芯片直接变频射频收发器AD6552。它采用全CMOS工艺制造,将射频发射和接收功能集成在了单一芯片上,从而可将SoftFone-LCR+芯片组中的5个芯片减少为4个(原来采用的是Othello-W射频芯片,其接收器和发射器是分立的)。

AD6552的最大特点就是可支持双频带,即标准的2.1GHz频段,以及为将来做准备的1900MHz频段。该收发器还省去了发送路径通常需要的表面声波(SAW)滤波器,简化了手机射频部分的设计。此外,其接收部分提供的误差矢量幅度(EVM)性能满足HSDPA的要求,并且包括全自动直流偏移控制。而且,该芯片还集成了压控振荡器、储能电路、环路滤波器和电源管理等电路。与双芯片Othelo-W单频带射频收发器相比,该双频带射频收发器的元件数量几乎减少了40%。

AD6552的接收部分包含一个覆盖1900MHzN2000MHz频带的高性能单端低噪声放大器。一个由内置小数N分频锁相环(PLL)频率合成器驱动的直接下变频正交混频器,它向可变增益放大器(VGA)提供基带I(同相)与Q(正交)信号,以及带直流偏移修正的可编程低通滤波器。AD6552的发射部分包含一个小数N分频PLL频率合成器、高性能VGA和驱动公共宽带输出级的正交调制器,还包括用于功率放大器控制的真实RMS射频功率检测器和内置DAC。