当前位置:文档之家› 单片机测速

单片机测速

单片机测速
单片机测速

用单片机设计动态输入范围的PWM A/D转换器

时间:2010-02-06 来源:未知编辑:电气自动化技术网点击:202次字体设置: 大中小

1 COP820CJ芯片介绍

COP820CJ是美国国家半导体公司生产的一款8位单片机,它内含64字节RAM和1k字节ROM,并带有24个I/O口,时钟频率为10MHz,工作电压为2.5~6.0V。COP820 CJ具有多输入唤醒(MIWU)、低压复位保护、片上模拟比较器和低电磁辐射设计等功能,其I/O口可编程为三态、推挽输出、弱上拉输入等类型。

COP820CJ的端口分为L/I/D/G四类。其中I口为4位输入端口,D口为4位输出端口,G口有6位I/O口和2位输入口,L口为8位I/O口。同时L口也是芯片的唤醒端口,其中L1和L2又是比较器输入口,L3又是比较器输出口。L口配有数据寄存器(LDATA[0DOH])和配置寄存器(LCONF [0D1H]),两寄存器可共同决定该端口的状态。具体关系见表1所列。

COP820CJ的片上RAM、端口、寄存器均可映射到00H~FEH的数据内存空间,其中C0~CFH段主要是唤醒及用看门狗控制寄存器,D0~DFH段有8

个端口类寄存器,E0~EFH段为计时器和系统寄存器。00~2FH及F0~FFH为RAM地址。其中,F0~FEH段可用作寄存器,并包括B地址寄存器[FCH]、X地址寄存器[FEH]和SP堆栈指针[FDH]三个专用寄存器。

2 COP820CJ的工作原理

2.1基本原理

利用COP820CJ的片上模拟比较器和脉冲宽度调制方式可以构成由软件调控且输入范围可变的A/D转换器。其工作原理图见图1所示。图中,L1和L2为比较器输入端,当电容电压小于输入电压时, L3端输出高电平脉冲。反之,L3输出低脉冲,并对低脉冲减1计数。电路中的输入电压可通过L1、L2之间并联的两个背向二极管对电容C1快速充放电,以使两者电位迅速接近。

比较器允许的输入电压为0.4V~V CC-1.5V(此时电容电压与充电、放电时间之间为近似线性关系),实

际输入电压范围可能要更小一些。因此,可以通过设定高低脉冲的参数使电容电压始终保持在测量范围之内。若电源为5V,时钟频率为10MHz,脉冲周期为24个,即2.4μs,输入电压范围是1.0V~3.3V。那么,可以设置高脉冲为先低8个时钟,再高16个时钟;设置低脉冲为先高5个时钟,再低19个时钟。这样,如果L3始终输出高脉冲,电容电压V H将近似为V CC×16/24=3.30V;如果L3始终输出低电平,电容电压V L则近似为V CC×5/24=1.04V。进行A/D转换时,L3可根据比较结果输出高低脉冲,当脉冲数足够多时,计数器的值即代表了输入的电压值,并可用下式表示:

其中,N TON为计数器的值,N TOTAL为总脉冲数。

2.2转换时间及分辨率

由于脉冲周期为2.4μs,若脉冲总数为100,那么,进行两次计数的转换时间近似为2.4×100×2=480μs。当输入为高速变化的信号时,只需减少脉冲总数即可。如脉冲总数为

100,输入电压为1.0~3.3V,则分辨率为23mV。为提高分辨率,可先对输入信号进行粗测,然后调整高低脉冲的占空比,以使对应电压略超出测量结果的上下限值,这样即可获得更高的分辨率。

3 软件设计

图2所示是用COP820CJ设计的A/D转换器的工作软件流程图。其中,控制寄存器2(CNTRL2[CC])的第三位是比较器允许位,第四位为比较器

输出。X指令为交换两寄存器中的数据。“SBIT(RBIT)i,n”指令为将n寄存器的第i位置1(0)“IFBITi,n”指令在n寄存器的第i位为1时执行下一条指令,否则跳过。“DRSZn”指令的作用是先将寄存器n的值减1,如结果非零,则执行下一条指令,否则跳过。

要保证脉冲周期为24个时钟,必须精确计算指令周期。其指令周期的时钟数分别为:

用89C51和8254-2实际步进式PWM输出

时间:2010-02-05 来源:未知编辑:电气自动化技术网点击:176次字体设置: 大中小

引言

脉宽调制(PWM)技术最初是在无线电技术中用于信号的调制,后来在电机调速中得到了很好的应用。本设计中要求输出PWM从1Hz~3kHz 步进式递增,单步为1Hz。由于89C51的时钟最大能取24MHz,单指令周期为0.5μs,计数频率为×10 6Hz。当输出2999Hz和3000Hz时,若采用89C51内部计数器来计数,根本无法区别。因为计数频率为2MHz,单指令周期0.5μs,而要输出2999Hz时,计数应为666.889;输出3000Hz 时,计数诮为666.887。因此在本设计中,采用外部定时器/计数器8254-2。因为8254-2最高计数频率可达10MHz,能满足以上设计的要求,另外采用8254-2的工作方式3可输出方波。当定时器/计数器8254-2以方式3工作时,在计数的过程中输出有一半时间为高,另一半时间为低。所以,若计数值为N,则其输出在前N/2时可输出高电平,后N/2时可输出低电平,不需要用软件来控制高低电平的转换,但8254-2计数范围有一定的限制,在采用二进制计数时,范围为0000~9999,最大计数为10 000。此外,为了使分辨率达到要求,还需要考虑程序指令所占用的时间,尤其是在输出高频时,分辨率尤为重要。

1 硬件设计

1.1 8254可编程定时器/计数器[1]简介

Intel公司的8254是8253的改进型,操作方式及引脚与8253完全相同。它的改进主要反映在2方面:①8254的计数频率更高,可由直流至6MHz;8254-2可高达10MHz。②8254多个1个读回命令(写至控制器的寄存器),其格式如图1所示。

这个命令可以令3个通道的计数器都锁存(8253要3个通道的计数值都锁存,需写入3个命令)。另外,8254中的每个计数器都有1个状态字可由读回命令令其锁存,然后由CPU读取。状态字的格式如图2所示。其中D5~D0即为写入此通道的控制字的相应部分。D7反映了该计数器的输出引脚。输出(OUT)为高电平,D7=1;输出为低电平,D7=0。D6反映时间常数寄存器中的计数值是否已经写入了计数单元中。当向通道写入控制字以及计数值后,状态字节中的D6=1;只有当计数值写入计数单元后,D6=0。

本设计选择8254-2的方式3工作。方式3是一种方波速率发生器。在这种方式中,当CPU设置控制字后,输出将为高,在写完计数值后就自动开始计数,输出保持为高;当计数到一半计数值时,输出变为低,直至计数到0,输出又变高,重新开始计数。若在计数期间写入个新的计数值,并不影响现行的计数过程。但是若在方波半周期结束前和新计数值写入后收到GATE脉冲,计数器将在下一个CLK脉冲时装入新的计数值并以这个计数值开始计数。否则,新的计数值将在现行半周期结束时装入计数器。

1.2 PWM输出的硬件设计

本设计选用可编程定时器/计数器8254-2,其最高计数频率可达10MHz;充分利用8254-2的3个定时器/计数器,采取频率的分频输出,并且不需要外部的信号源输入,硬件电路简化;通过软件的处理可以实现连续(1Hz~3kHz)PWM波的输出。本设计中将要输出的PWM波分为3段,分别由8254-2中的3个定时/计数器输出,门控由P2.2、P2.3、P2.4分别加以控制。在1~20Hz的输出时,采用定时器0,计数频率为10 4Hz,最大计数为10 4,最小计数为500符合要求,21~200Hz的输出中,采用定时器1,计数频率为10 5Hz,最大计数为4762,最小计数为500;在201Hz~3kHz 的输出中,采有定时器2,计数频率为10 7Hz,最大计数为49 751,满足二进制计数的范围,最小计数为3333。这些计数值可由单片机89C51[2]送给8254-2的数据输入端,通过除法运算来得到这些计数值,由除法运算得到商。所得到的商去程序指令占用的时间即为所需要的

送上次计算出来的这

中。比较余数

中。假设程序指令所

,即为

中作中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商中。比较余数是否大于除数的一半,若大于除的一半则所得的商加

中作为中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商送

,即

则当程序因干扰

PWM

单片机控制直流无刷电动机驱动及接口电路

时间:2012-03-17 来源:https://www.doczj.com/doc/298940973.html, 编辑:电气自动化技术网点击:367次字体设置: 大中小

单片机控制直流无刷电动机驱动及接口电路

图1示出采用8751单片机来控制直流无刷电动机的原理框图。8751的P1口同7406反相器联结控制直流无刷电动机的换相,P2口用于测量来自于位置传感器的信号H1、H2、H3,P0口外接一个数模转换器。

图1 直流无刷电动机计算机控制原理图

换相的控制

根据定子绕组的换相方式,首先找出三个转子磁钢位置传感器信号H1、H2、H3的状态,与6只功率管之间的关系,以表格形式放在单片机的EEPROM中。8751根据来自H1、H2、H3的状态,可以找到相对应的导通的功率管,并通过P1口送出,即可实现直流无刷电动机的换相。起动电流的限制

主回路中串入电阻R13,因此Uf=R13*IM,其大小正比于电动机的电流IM。而Uf和数模转换器的输出电压U0分别送到LM324运算放大器的两个输入端,一但反馈电压大于Uf大于来自数模转换的给定信号U0,则LM324输出低电平,使主回路中3只功率管VF4、VF6、VF2不能导通,从而截断直流无刷电动机定子绕组的所有电流通路,迫使电动机电流下降,一旦电流下降到使Uf小于U0,则LM324输出回到高电平。主回路又具备导通能力,起到了限制电流的作用。

转速的控制

在直流无刷电动机正常运行的过程中,只要通过控制数模转换器的输出电压U0,就可控制直流无刷电动机的电流,进而控制电动机的电流。即8751单片机通过传感器信号的周期,计算出电动机的转速,并把它同给定转速比较,如高于给定转速,则减小P2口的输出数值,降低电动机电流,达到降低其转速的目的。反之,则增大P2口的输出数值,进而增大电动机的转速。

PWM控制的实现

转速控制也可以通过PWM方式来实现。图2和图3为PWM控制实现直流无刷电动机转速的控制。

图2PWM控制原理图

图3PWM控制原理图

直流无刷电动机的正转反转,通过改变换相次序来改变其转动方向。具体做法只需要更换一下换相控制表。

单片机在可编程直流稳压电源中的设计

时间:2012-02-14 来源:https://www.doczj.com/doc/298940973.html, 编辑:电气自动化技术网点击:483次字体设置: 大中小

目前,市场上各种直流电源的基本环节大致相同,都包括交流电源、交流变压器、整流电路、滤波稳压电路等。本文介绍了将单片机控制系统应用于直流稳压电源的方法和原理,实现了稳压电源的数控调节,在宽输出电压下实现了0.1v步进调节,并分析了稳压工作原理和电压调节方法。该电源具有电压调整简便、电压输出稳定、便于智能化管理等特点。

随着电力电子技术的迅速发展,直流电源应用非常广泛,其好坏直接影响着电气设备或控制系统的工作性能。直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。而基于单片机控制的直流稳压电源能较好地解决以上传统稳压电源的不足。其良好的性价比更能为人们所接受,因此,具有一定的设计价值。

一、系统设计

(一)方框图设计。

该电路采用单片机(AT89C51)作为主控电路,由三端集成稳压器(LM317)作为稳压输出部分。另外,电路还增加参考电压电路、D/A 转换电路、电压放大电路、显示电路等部分电路。其方框图如图1所示:

图1 用单片机制作的直流稳压可调电源框图

整个电路的运行需要模拟电压源提供+5V,±15V的模拟电压,以便使电路中的集成数字芯片能够正常工作。电路运行时,首先由单片机设置初始电压值,并送显示电路显示。然后将电压值送D/A转换电路进行数模转换,再经放大电路进行电压放大,最终反馈到三端集成稳压器(LM317)输出模拟电压。

(二)硬件设计。

本电路的硬件组成部分主要由单片机(AT89C51)、变压器、整流电路、滤波电路、稳压器(LM317)、参考电压电路、D/A转换电路(DA0832)、放大电路、显示电路等组成。

硬件电路如图2所示,整个电路通过单片机(AT89C51)控制,P0口和DAC0832的数据口直接相连,DA的CS和WR1连接后接P26,WR2和XFER接地,让DA工作在单缓冲方式下。DA的11脚接参考电压,通过调节可调电阻使LM336的输出电压为5.12V,所以在DAC的8脚输出电压的分辨率为5.12V/256=0.02V,也就是说DA输入数据端每增加1,电压增加0.02V。

图2 单片机控制直流电压输出电路图

DA的电压输出端接放大器OP07的输入端,放大器的放大倍数为(R8+R9)/R8=(1K+4K)/1K=5,输出到电压模块LM317的电压分辨率为0.02V×5=0.1V.所以,当MCU输出数据增加1的时候,最终输出电压增加0.1V,当调节电压的时候,可以以每次0.1V的梯度增加或者降低电压。

本电路设计两个按键,S1为电压增键,S2为电压减键,按一下S1,当前电压增加0.1v,按一下S2,当前电压减小0.1V.

显示部分由三位共阳数码管和74LS164串入并出模块组成,电路如图3所示,可以显示三位数,一位显示十位,一位显示个位,另外还有一个小数位,比如可以显示12.5v,采用动态扫描驱动方式。本主电路的原理就是通过MCU控制DA的输出电压大小,通过放大器放大,给电压模块作为最终输出的参考电压,真正的电压,电流还是稳压模块LM317输出。

图3 显示部分

(三)软件设计。

在本电路中由于CPU的工作任务是单一的,因此,源程序的工作过程为:系统上电复位后,默认输出9V电压,然后扫描S1,S2键,当S1或S2键有按下时,程序跳转至相应的按键处理子程序,经按键子程序处理后,再嵌套调用显示子程序,完成显示与输出操作后返回主程序,继续扫描此两键,程序运行原理如下:

程序设计需要考虑的主要问题有两个方面:一方面要找出数字量Dn与输出电压的关系,这是程序设计的依据;另一方面要建立显示值与输出电压值的对应关系,这是程序设计是否成功的标志。因为在本系统中,显示的输出电压值不是之前从输出电路中通过检测得到的,因此显示与输出并不存在直接联系。但为了使显示值与实际输出值相一致,在程序编写时,必须人为地为两者建立某种关系。采用的方法是:在程序存储器中建立TAB1和TAB2两张表格,TAB1放101个Dn值,数值从小到大顺序排列,其值分别对应输出电压0~10v,TAB2存放数码显示器0~9字符所对应的数据。TAB1表格的数据指针存放在内存RAM中23H单元,内存20H, 21H和22H三个单元分别存放数码显示器小数点一位,个位和十位的字符数据指针。在主程序中初始化后之后首先给23H赋予40的偏移量,这个偏移量指向TAB表中的Dn为145,此值对应的输出电压为9V,由于这个原因,必然要求显示器显示的字符为"05.0",为此,须分别给20H, 21H和22H赋予0,5和0的偏移量,这三个偏移量分别指向TAB2中0,5和输出两者之间就建立了初步的对应关系。为了使两者保持这种对应的关系,在K1和K2按键处理子程序中,必须使23H, 20H, 21H和22H四个数据指针保持"同步"地变化,即为当K有键时,23H单元增加1指向下一Dn时,20H单元也相应增加1指向下一字符,并且20H单元(小数点一位指针)、21H单元(个位指针)和22H元(十位指针)应遵循十进制加法的原则,有进位时相应各位应作出相应地变化;当K2有键时,23H单元减1指向前一Dn时,20H单元也相应减1指向前一字符,并且20H, 21H, 22H三个单元的数据指针应遵循十进制减法原则,有借位时相应的各位须作出相应地变化。按照这一算法只要控制TAB1表格数据指针不超出表格的长度就能使显示值与输出值保持一一对应的关系,即显示器能准确地显示出电源输出电压值的大小,达到电路设计的目的。由于理论计算与实际情况还存在着一定的差异,为了使显示值更加接近实际输出值,本电路需要对输出电压进行校正。

二、调试与分析

调试仪器:数字万用表、电烙铁、斜口钳、尖嘴钳、吸锡器、镊子。

硬件调试:首先检查整个电路,电路连接完好,没有明显的错接,漏连。接上电源,电源指示类亮,数码管显示初始电压值+5V,用万用表的两只表笔测试LM317的输出电压为4.96V。当按下S1键一次,数码显示电压值变为4.9V,万用表读数变为4.85V.再按下S2键一次,数码显示电压值变为5.0V,万用表读数再次变为4.96V.通过改变显示电压值,用万用表测得几组输出电压数据见表1:

表1 电压调试所测数据对比分析表单位:V

系统平均误差Δd=0.41V.

误差原因分析:(1)工作电源不够稳定,不能为数字集成块提供精确工作电压;(2)电路参数设定不够精确;(3)提供给D/A转换的参考电压不够精确,使得转换过程存在误差;(4)单片机的P0口传输给D/A转换的数据不够准确,使得输出出现误差;(5)系统缺少电压电流采样电路。

三、结语

在本文中,实现了以单片机为核心的直流稳压电源的智能控制,达到了预期的目的和要求。

单片机控制直流数控电流源的设计与实现

时间:2012-02-18 来源:https://www.doczj.com/doc/298940973.html, 编辑:电气自动化技术网点击:292次字体设置: 大中小

一般的恒流电流源往往是电流值固定,或是有限数值档的电流值输出,不便于通用。数字控制的电流源则通过单片机作为核心控制器,通过键盘设置所需的电流值,电流值取值范围大,使用方便灵活。

本文将介绍数字电流源设计方案,实现基于单片机控制的程控电流源硬件及软件设计。

数控电流源硬件设计

数字控制电流源可以有多种方案,如基于PWM技术的开关电源、基于模拟器件的模拟反馈压控,以及基于微控制器的数字反馈数控方案。本设计采用基于微处理控制器的数字控制方案,硬件系统框图如图1所示。利用单片机AT89C51将输入的控制信号进行处理输出数字量,再把输出的数字量转换成模拟电压量,最后把转换后的模拟电压量进行电压/电流的转换供给负载。

图1 硬件电路框图

1 单片机控制与显示电路

直流数控电流源原理图如图2所示。控制电路由AT89C51、晶振、按键等构成,包括单片机时钟电路、复位电路以及按键输入电路。

该电路的工作原理为:AT89C51单片机通电后复位,P0和P1口均输出高电平。当按键输入电路给电路输入控制信号后,通过程序控制经过内部处理,在P0及P1口输出处理后的信号。P0的信号送至DAC0832的数字输入端进行数模转换,P1的输出信号送至显示电路进行显示。

键盘作为输入控制的信号,如图2所示,总共有8个按键,具体功能为:++键用于实现步进加,--键用作实现步进减,S1~S4用于实现从最低位至最高位设置时的位选,位选后,由+、-键调节各位的数值。

显示电路用于指示输出电流的数值,电路主要由四个相连的共阳极数码管和驱动电路组成。AT89C51的P1和P2口连接显示电路,其中,P1口的8个引脚用来控制数码管的段码。用三极管V5~V8组成数码管四个位的驱动电路,再分别与单片机的P2.4~P2.7相连实现对位的控制。

图2 直流数控电流源原理图

2 D/A转换电路

D/A转换电路由数模转换器DAC0832和运放LM324构成。DAC0832芯片是一个8位D/A转换器,有8个数码输入端,1个模拟输出端,能将控制电路输出的8位二进制数字量转换成模拟量的输出,送给后级的V/I转换电路。

运放A4输出电压为:

(1)

式中,Vref为外接参考电压,D7~DO为8位输入数字量。

当输入数字量在00000000~11111111之间变化时,其对应的输出模拟电压U1在0~-Vref之间,电压分辨率为:△V=5V/(28-1)=19.6mV。

3 V/I转换电路

V/I转换电路是整个电流源的关键部分,其电路图2所示,主要由运放LM324和电流扩展电路构成。运放A1构成加法器,有U2=-(U1+U5)。三极管V1、V2、V3、V4构成电流扩展电路,以便有足够的输出电流。A2构成电压跟随器,有U4=U3。A3是反相器,有U5=-U4,则U5=-U3。

电阻RM上的压降UM为:UM=U2-U3=-(U1-U3)-U3=-U1,则通过负载RL的电流I为:I=UM/RM=-U1/RM。

可见,输出电流I仅由电压U1和电阻RM决定。当U1和RM一定时,I保持恒定。U1是由数模转换器得到,则该恒流源的电流大小由数字量决定。

软件编程

图3 软件流程图

软件流程如图3所示,程序采用C语言编写。用仿真机进行功能调试,实现全部功能,然后把程序写入AT89C51芯片,固化成功后,便可进行独立运行。

主程序部分代码。

void main()

{unsigned char Debugging=0;

unsigned char Sampling=0;

while (1)

{ Sampling =P2|0xf0; //采样键盘信号

if (Sampling!=0xff) //如果有键盘按下执行下列程序

┇ //处理键盘程序

┇ //显示程序

┇ //电流输出程序

}}

实验结果

测试结果表明(见表1),负载RL阻值在0~5Ω变化时,最大绝对误差△I=|测试电流值-输出电流值|=10mA;相对误差为=绝对误差/显示电流值=1%;

另一测试结果表明(见表2),最大纹波系数=纹波电流值/设定输出电流值=1.5%;

表3所示为部分设定输出值与实际测试值的数据对照。设定输出值和测试值的比较曲线如图4所示,从图中可得,步进误差较小,其设定输出在0~1000mA时,实际测试值为0~990mA,最大绝对误差△I=10mA,最大相对误差为1%。

图4 设定输出值和测试值的比较曲线

若电流精度不够(设定输出值与实际测试值存在较大误差)时,可采用12位的D/A,并增加模数转换采样电路,将输出值反馈回单片机,并由单片机程序实现校正。此外,电路中RM可以选用精密电阻以减少误差。

结语

本文详细介绍了一种基于单片机控制的直流数控电流源。该电源由单片机接收键盘的输入数据,将设定的电流值通过D/A转换器转换为控制电压,再转换为电流输出,同时将设定电流在数码管上显示。整个数控电流源具有很高的性价比,稳态精度高,控制部分电路简明,结构紧凑,工作稳定可靠,应用前景广阔。

基于单片机的霍尔测速报警系统-课程设计论文正文大学论文

传感器与测控电路课程设计报告学生姓名:禹振榜 指导老师:杨书仪余以道 专业班级:12级测控二班 所在学院:机电工程学院 学号1203030214 课题基于单片机的霍尔测速报警系统

基于单片机的霍尔测速报警系统的设计 摘要 在生产中,电机应用十分广泛,比如汽车速度显示,设备工作时的档位,都需要我们了解电机或者机器的转速。转速作为工程中应用的一个非常广泛的参数,它的测量方法有很多,特别是单片机对脉冲数字信号的强大处理能力,使得全数字测量系统越来越普及,越来越方便。 本设计属于码盘转速测量系统,实现转速的实时测量和显示。本系统以STC90C51单片机为核心,旋转编码器通过用传感器测量非电量,转变成模拟电量,再通过一系列测控电路。获得数字信号,实现实时轴转速测量,同时用四位段码式LED数码管显示模块显示电机转速,并且加入了报警模块。详细阐述了转速测量系统的工作过程,以及硬件电路的设计、显示效果。本文吸收了硬件软件化的思想,实现了题目要求的功能。 关键词:转速测量,,单片机, LED显示模块,霍尔传感器。

目录 第一部分绪论 1.1 设计的任务与要求————————————————1 第二部分功能分析与设计要求 2.1 测控系统功能的概述———————————————1 2.2系统模块的确定————————————————— 2 2.3各模块的选择—————————————————— 2 2.1.1传感器模块的论证与选择——————————————2 2.1.2报警模块的论证与选择———————————————3 2.1.3显示模块的论证与选择———————————————3 2.1.2单片机模块的论证与选择——————————————3 2.4 小结——————————————————————3 第三部分测控系统的总体设计 3.1 测控系统的总体设计———————————————4 3.1.1 硬件原理图———————————————————4 3.1.2 硬件电路设计总图————————————————5 3.2 测控系统子模块简介———————————————5 3.2.1传感器原理及分电路析—————————————— 5 3.2.2 报警模块————————————————————7 3.2.3 LED数码管———————————————————8

基于51单片机的红外反射式光电传感器测速机的简易设计

光电传感器——基于红外反射式的测速机

引言 在工程实践中,经常会遇到各种需要测量转速的场合。转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。迄今为止,测速可分为两类:模拟电路测速和数字电路测速。随着微电子技术的发展,计算机技术的广泛应用,出现了以计算机为核心的数字测速装置。这样的速度测量装置测量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的快速性、精确性和优越性。 一:设计思路 用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。当检测到物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。由此,我想到用一个比较器来比较两种接受到的信号,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。 二:所需模块 本测速系统共有两个模块构成,一个为光电传感器部分,用于接收光信号并转换为电信号,即高低电平信号;另一个为单片机部分,用于接收高低电平信号并通过内部计算,然后再通过数码显示管显示测出的结果。 (一)光电传感器部分 (1)LM339工作原理及管脚图: LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。 两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入

单片机如何产生PWM

单片机产生PWM 1.PWM定义 脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。 2.PWM控制的基本原理 理论基础:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。低频段非常接近,仅在高频段略有差异。 图1 形状不同而冲量相同的各种窄脉冲 面积等效原理: 分别将如图1所示的电压窄脉冲加在一阶惯性环节(R-L电路)上,如图2a所示。其输出电流i(t)对不同窄脉冲时的响应波形如图2b所示。从波形可以看出,在i(t)的上升段,i(t)的形状也略有不同,但其下降段则几乎完全相同。脉冲越窄,各i(t)响应波形的差异也越小。如果周期性地施加上述

脉冲,则响应i(t)也是周期性的。用傅里叶级数分解后将可看出,各i(t)在低频段的特性将非常接近,仅在高频段有所不同。 图2冲量相同的各种窄脉冲的响应波形 3. PWM相关概念 占空比:就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比 如,一PWM的频率是1000Hz,那么它的时钟周期就是1ms,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。 分辨率:占空比最小能达到的值,如8位的PWM,理论的分辨率就是1:255(单斜率), 16位的的PWM理论就是1:65535(单斜率)。 频率:如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到。相对于周期就是65535*计数脉冲时间。 双斜率 / 单斜率: 假设一个PWM从0计数到80,之后又从0计数到80.......这个就是单斜率。 假设一个PWM从0计数到80,之后是从80计数到0.......这个就是双斜率。

基于单片机的测速仪设计

基于单片机的测速仪设计

————————————————————————————————作者:————————————————————————————————日期: ?

华北理工大学轻工学院 Qing Gong CollegeNorthChinaUniversityof Science and Technology 课程设计报告 课程名称:EDA辅助设计 项目名称:基于单片机的测速仪设计 专业班级: 学号: 姓名: 成绩:

一、项目说明 转速是工程中应用非常广泛的一个参数, 其测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,目前这种测量方法已不能适应现代科技发展的要求。随着大规模及超大规模集成电路的发展,使得全数字测量仪器越来越普及,其转速测量仪器也可以用全数字化处理。在测量范围和测量精度方面都有很大提高。因此,本次设计的目的是:对各种测量转速的方法加以分析,针对不同的应用环境,利用AT89S52系列单片机设计一种全数字化测速仪器。本设计在通电后就会开始运行进行测速,由数码管进行显示当前转速,按下S1将会重置。 二、项目原理图 1、原理图

图1 项目原理图 2、各部分说明 (1)电源部分 DC002插座是带有插入断开开关,中心脚为1脚,下面为2脚,侧面为3脚,插入时3脚断开。的一款给单片机提供5v电压的电源。 图2电源 (2)STC89C52芯片 STC89C52是一个低功耗,高性能CMOS8位单片机,片内含具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDTC)电路,片内时钟振荡器。此外,STC89C52设计和配置了振荡频率可为0HZ并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

【毕业设计】基于单片机自行车测速系统设计-精品

基于单片机自行车测速系统设计 摘要 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。以 AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LED实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用汇编语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。 关键词:里程/速度;霍尔元件;单片机;LED显示

Bike speed system design based on single chip ABSTRACT With the developing of people’s life, the bi cycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. The bicycle mileage/speed can fulfill the basic need of people’s life, so that they can learn the speed and the mileage of the bicycle. In this paper, the bicycle mileage/speed design based on the Hall element is elaborated. By AT89C52 as kernel, using A44E Hall element to measure revolution, the measure and statistic are achieved. The range information is saved by 24C02 when the power is off, the bicycle speed can be displayed on LED. In this article, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in assemble language; the program is designed in the mode of modules. The system has simple hardware, common sub-program, and meets the demand of design. . Keyword:Mileage / speed; Hall element; Single chip microcomputer; LED

合泰单片机生成pwm

#include "HT66FU70A.h" #define RS _pc0 #define RW _pc1 #define E _pd6 float ad_shidu; //湿度变量 float ad_wendu; //温度变量 char Sunshine; //光照变量 char timer0_cnt; long int m; unsigned int temp=0; void ad_init(void) //A/D转换初始化 { //8分频;内部1.25V电压除能;内部参考电源电压来源于VDD _adcr1 = 0x03; //启动A/D转换模块(ADCR0寄存器第5位) _adoff = 0; } void ad_pa1(void) //pa1端口ad配置 { //定义PA1为A/D输入,即AN1 _pas0 = 0x30; //选择模拟通道AN1;ADC数据高字节是ADRH的第7位,低字节是ADRL的第4位_adcr0 = 0x01; } void ad_pa3(void) //pa3端口ad配置 { //定义PA1为A/D输入,即AN1 _pas1 = 0x30; //选择模拟通道AN1;ADC数据高字节是ADRH的第7位,低字节是ADRL的第4位_adcr0 = 0x03; } //开始进行ad转换 void ad_switch(void)

{ //ADCR0寄存器第七位 _start=1; //start位0->1->0,表示启动A/D转换 _start=0; } void pwn_1(void) { _pcc5=0; //输出 _pcpu5=1; //上拉 // _pc5 = 1; _pcs2 |= (2 << 4); //PC5 功能选择为TM1输出 // _tm1c1=0b10101000; // _tm1c0=0b00001111; _tm0c0 |= (0 << 4); //fsys/4 _tm0c0 |= (1 << 0); //CCRP:001b _tm0al = 0x3f; _tm0ah = 0x00; _tm0c1 |= (2 << 6); //PWM模式 _tm0c1 |= (2 << 4); //PWM 输出 _tm0c1 |= (1 << 3); //高有效 _tm0c1 &=~(1 << 1); //CCRP-周期CCRA-占空比_tm0c0 &=~(1 << 7); //运行定时器 _tm0c0 |= (1 << 3); //计数器On /*_tm0c0 |= (1 << 3); //计数器On*/ } void pwn_2(void) { _pcc6=0; //输出 _pcpu6=1; //上拉 // _pc5 = 1; _pcs3 |= (1 << 0); //PC5 功能选择为TM1输出 // _tm1c1=0b10101000; // _tm1c0=0b00001111; _tm0c0 |= (0 << 4); //fsys/4 _tm0c0 |= (1 << 0); //CCRP:001b _tm0al = 0x3f; _tm0ah = 0x00; _tm0c1 |= (2 << 6); //PWM模式 _tm0c1 |= (2 << 4); //PWM 输出 _tm0c1 |= (1 << 3); //高有效

单片机测速1602显示

程序: #include #include #define uint unsigned int #define uchar unsigned char //宏定义 /*-----------------------端口命名------------------------*/ sbit rs=P2^0; //LCD的数据/命令选择端 sbit rw=P2^1; //LCD的读写选择端 sbit e=P2^2; //LCD的使能信号端 /*-------------------------------------------------------*/ /*-----------------------定义参数------------------------*/ uint i,z,count,zhuan,msec; //定义参数 uchar display[]={" speed= r/min "}; //定义显示参数/*-------------------------------------------------------*/ /*-----------------------毫秒延时------------------------*/ void delay(uint ms) { uint i,j; //为延时引入i,j两参数 for (j=0;j

运动控制-M法T法测速单片机程序设计

M法、T法测速单片机程序设计 摘要 本设计为M法、T法测速的单片机程序设计。使用STC89C52单片机作为控制器,使用该单片机的外部中断和定时器对编码器的输出的脉冲进行采样来计算出电机的转速。可以使用按键输入来调整M法、T法测速法中Z、Tc和Tt等参数以及测速方法的选择,以此来增强本设计的适应性。参数选择结果和电机转速计算结果均显示在LCD1602上。 关键字:STC89C52,M法、T法测速,LCD1602,电机转速 Ⅰ

Abstract This design as m, t-law velocity measurement of single-chip computer programming. Using STC89C52 single-chip computer as the controller, using the microcontroller's external interrupts and timers for encoder output pulse is sampled to calculate the speed of the motor. Can be adjusted using touchtone m, t law Velocimetry parameters such as z, Tt and Tc, as well as in speed measurement method of choice, as a way to enhance the adaptability of this design. Parameter selection and calculation of motor speed results are available on LCD1602. Keywords:STC89C52,M、T method, the LCD1602, Motor speed Ⅱ

基于单片机测速系统设计

基于单片机自行车测速系统设计 摘要:随着科技的迅速发展,单片机的应用也越来越广泛,并带动传统控制检测技术不断更新。现在的车速表大多是电子式的,用LED数码管或LCD即时显示,显示更加直观。电子式车速表采用接触车速传感器代替软轴传动,可使车速表的安装位置不受距离限制,进一步有效地克服了机械式车速表中的诸多不足。 本次设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示所测速度的设计方案,以及串口数据存储电路和系统软件。 该方案由于使用了数码管显示模块和E2PROM,以及高效快速算法,因而可在节约系统资源和简化程序设计的基础上保证测量精度和系统实时性。其中信号预处理电路包含信号放大、波形变换和波形整形:信号预处理电路中的放大器用于对待测信号进行放大,以降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机接口的TTL 信号。通过单片机的设置可使INT0 引脚能够对内部定时器T0 的工作进行控制,这样能精确地测出加到INT0 引脚的正脉冲宽度(即测出脉冲信号的期) 。速度显示部分采用数码显示, 所得的数据采用I2C总线, 并通过E2PROM来存储, 因而节省了所需单片机的口线和外围器件, 同时也简化了显示部分的软件编程。 本方案实现了电动车速度即时显示,并可通过控制两个按键显示速度或里程,同时加入了超速语音报警功能,使之更加人性化。 关键词:单片机;霍尔传感器;数码显示;语音报警;DC/DC变换器

The bicycle’ Speed system design based on single-chip Tonghai chen (School of Information Engineering,Hebei University of Technology,Tianjin 300401,China) Abstract:With the rapid development of technology, more and more widespread application of microcomputer, and promote the traditional control detection technology constantly updated. Electronic speedometer flexible shaft using the contact speed sensor instead of driving, speed tables can be installed without distance limitations, and further to effectively overcome the mechanical disadvantages of speed in the table. The AT89C2051 is designed to give the core of computing and the use of microcomputer control, and adopting a systematic LED display module shows the measured real-time speed design, and the serial data storage circuits and system software. The program due to the use of the digital display module and E2PROM, and efficient fast algorithm, thus saving resources and simplifying programming system based on the system to ensure accuracy and real-time. Signal pre-processing circuit which includes signal amplification, wave conversion and waveform shaping: signal pre-processing circuit in the amplifier for the amplified signal could be to reduce the requirements on signal amplitude; wave transformation and wave-shaping circuitry is used to enlarge the signal converted into TTL signals with the microcontroller interface. The INT0 pin is added to the pulse width (ie measured pulse signal period). Speed display part of a digital display, the data collected using I2C bus, and through E2PROM to store, thus saving the need microcontroller port lines and peripheral devices, but also simplifies the display part of the software programming. The program achieved the speed of real-time electric vehicle revealed two buttons can be displayed by controlling the speed or mileage, while adding a speed voice alarm function, make it more humane. Key words: microcomputer;Hall sensor;digital display;voice alarm;DC / DC convert

单片机测速

用单片机设计动态输入范围的PWM A/D转换器 时间:2010-02-06 来源:未知编辑:电气自动化技术网点击:202次字体设置: 大中小 1 COP820CJ芯片介绍 COP820CJ是美国国家半导体公司生产的一款8位单片机,它内含64字节RAM和1k字节ROM,并带有24个I/O口,时钟频率为10MHz,工作电压为2.5~6.0V。COP820 CJ具有多输入唤醒(MIWU)、低压复位保护、片上模拟比较器和低电磁辐射设计等功能,其I/O口可编程为三态、推挽输出、弱上拉输入等类型。 COP820CJ的端口分为L/I/D/G四类。其中I口为4位输入端口,D口为4位输出端口,G口有6位I/O口和2位输入口,L口为8位I/O口。同时L口也是芯片的唤醒端口,其中L1和L2又是比较器输入口,L3又是比较器输出口。L口配有数据寄存器(LDATA[0DOH])和配置寄存器(LCONF [0D1H]),两寄存器可共同决定该端口的状态。具体关系见表1所列。 COP820CJ的片上RAM、端口、寄存器均可映射到00H~FEH的数据内存空间,其中C0~CFH段主要是唤醒及用看门狗控制寄存器,D0~DFH段有8 个端口类寄存器,E0~EFH段为计时器和系统寄存器。00~2FH及F0~FFH为RAM地址。其中,F0~FEH段可用作寄存器,并包括B地址寄存器[FCH]、X地址寄存器[FEH]和SP堆栈指针[FDH]三个专用寄存器。 2 COP820CJ的工作原理 2.1基本原理 利用COP820CJ的片上模拟比较器和脉冲宽度调制方式可以构成由软件调控且输入范围可变的A/D转换器。其工作原理图见图1所示。图中,L1和L2为比较器输入端,当电容电压小于输入电压时, L3端输出高电平脉冲。反之,L3输出低脉冲,并对低脉冲减1计数。电路中的输入电压可通过L1、L2之间并联的两个背向二极管对电容C1快速充放电,以使两者电位迅速接近。 比较器允许的输入电压为0.4V~V CC-1.5V(此时电容电压与充电、放电时间之间为近似线性关系),实 际输入电压范围可能要更小一些。因此,可以通过设定高低脉冲的参数使电容电压始终保持在测量范围之内。若电源为5V,时钟频率为10MHz,脉冲周期为24个,即2.4μs,输入电压范围是1.0V~3.3V。那么,可以设置高脉冲为先低8个时钟,再高16个时钟;设置低脉冲为先高5个时钟,再低19个时钟。这样,如果L3始终输出高脉冲,电容电压V H将近似为V CC×16/24=3.30V;如果L3始终输出低电平,电容电压V L则近似为V CC×5/24=1.04V。进行A/D转换时,L3可根据比较结果输出高低脉冲,当脉冲数足够多时,计数器的值即代表了输入的电压值,并可用下式表示: 其中,N TON为计数器的值,N TOTAL为总脉冲数。 2.2转换时间及分辨率 由于脉冲周期为2.4μs,若脉冲总数为100,那么,进行两次计数的转换时间近似为2.4×100×2=480μs。当输入为高速变化的信号时,只需减少脉冲总数即可。如脉冲总数为

51单片机产生PWM的程序

51单片机产生PWM的程序 其中P1.3 P1.4是两个输出/**************************************************************** *程序思路说明: * * *关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数 * *设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设定占空比可从1-100变化。即0.01ms*100=1ms * ***************************************************************** *************/ #include #define uchar unsigned char /**************************************************************** ************* * TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256; * * TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器*

* 工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时 * * 间为1ms*65536=65.536ms * ***************************************************************** *************/ #define V_TH0 0XFF #define V_TL0 0XF6 #define V_TMOD 0X01 void init_sys(void); /*系统初始化函数*/ void Delay5Ms(void); unsigned char ZKB1,ZKB2; void main (void) { init_sys(); ZKB1=40; /*占空比初始值设定*/ ZKB2=70; /*占空比初始值设定*/ while(1) {

51单片机PID调增量式光电编码器测速.

编码器输出的A向脉冲接到单片机的外部中断INT0,B向脉冲接到I/O端口P1.0。当系统工作时,首先要把INT0设置成下降沿触发,并开相应中断。当有有效脉冲触发中断时,进行中断处理程序,判别B脉冲是高电平还是低电平,若是高电平则编码器正转,加1计数;若是低电平则编码器反转,减1计数。 基于51单片机的直流电机PID闭环调速系统原理详解与程序 (2013-08-04 01:18:15) 转载▼ 标签: 分类:单片机 51单片 机 直流电 机 pid pcf8591 基于51单片机的直流电机PID闭环调速系统 1.电机转速反馈: 原理:利用光电编码器作为转速的反馈元件,设电机转一周光电编码器发送N个PWM波形,利用测周法测量电机转速。 具体实现:将定时器0设置在计数模式,用来统计一定的时间T内接受到的脉冲个数M个,而定时器0置在计时模式,用来计时T时间。则如果T时间接受到M个PWM波形,而电机转一圈发出N个PWM波形,则根据测周法原理,电机的实际的转速为:real_speed=M/(N*T),单位转/秒。若将定时器1置在计数模式,则PWM波形应该由P3^3脚输入。 代码实现:

//定时器0初始化,用来定时10ms void Init_Timer0(void) { TMOD |= 0x01; //使用模式1,16位定时器,且工作在计时模式 TH0=(65536-10000)/256; //定时10ms TL0=(65536-10000)%6; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } // 计数器1初始化,用来统计定时器1计时250ms内PWM波形个数 void Init_Timer1(void) { TMOD |= 0x50; //使用计数模式1,16位计数器模式 TH1=0x00; //给定初值,由0往上计数 TL1=0x00; EA=1; //总中断打开 ET1=1; //定时器中断打开 TR1=1; //定时器开关打开 } //定时器0的中断服务子函数,主要完成脉冲个数的读取,实际转速的计算和PID 控制以及控制结 //果输出等工作 void Timer0_isr(void) interrupt 1 { unsigned char count; TH0=(65536-10000)/256; //重新赋值 10ms TL0=(65536-10000)%6;

单片机PWM(脉冲宽度调制)原理与实现

、PWM原理 2、调制器设计思想 3、具体实现设计 一、PWM(脉冲宽度调制Pulse Width Modulation)原理: 脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。图1所示为脉冲宽度调制系统的原理框图和波形图。该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。因此,从图1中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。 通过图1b的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻t k时的语音信号幅度值。因而,采样值之间的时间间隔是非均匀的。在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中tk-kTs< (1) 其中,x{t}是离散化的语音信号;Ts是采样周期;是未调制宽度;m是调制指数。 然而,如果对矩形脉冲作如下近似:脉冲幅度为A,中心在t = k Ts处,在相邻脉冲间变化缓慢,则脉冲宽度调制波xp(t)可以表示为: (2) 其中,。无需作频谱分析,由式(2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。当时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。 二、数字脉冲宽度调制器的实现: 实现数字脉冲宽度调制器的基本思想参看图2。 图中,在时钟脉冲的作用下,循环计数器的5位输出逐次增大。5位数字调制信号用一个寄存器来控制,不断于循环计数器的输出进行比较,当调制信号大于循环计数器的输出时,比较器输出高电平,否则输出低电平。循环计数器循环一个周期后,向寄存器发出一个使能信号EN,寄存器送入下一组数据。在每一个计数器计数周期,由于输入的调制信号的大小不同,比较器输出端输出的高电平个数不一样,因而产生出占空比不同的脉冲宽度调制波。 图3 为了使矩形脉冲的中心近似在t=kTs处,计数器所产生的数字码不是由小到大或由大到小顺序变化,而是将数据分成偶数序列和奇数序列,在一个计数周期,偶数序列由小变大,直到最大值,然后变为对奇数序列计数,变化为由大到小。如图3例子。 奇偶序列的产生方法是将计数器的最后一位作为比较数据的最低位,在一个计数周期内,前半个周期计数器输出最低位为0,其他高位逐次增大,则产生的数据即为偶数序列;后半个周期输出最低位为1,其余高位依次减小,产生的数据为依次减小的偶序列。具体电路可以由以下电路图表示: 三、8051中的PWM模块设计:

51单片机计数程序

/**************程序说明********************* 硬件说明只需要将15脚接口接入外部的脉冲信号,15脚为定时器T1的外部信号输入引脚 通过定时器T0定时指定的时间来测取脉冲的个数并在1602液晶上显示出来 假设定时1s则数据变成为信号的频率 *************************************************** *****/ #include #include //定时器0负责定时30s 定时器1负责计数功能 #define uint unsigned int #define uchar unsigned char sbit RS=P2^6; //液晶的电路定义 sbit E=P2^5; unsigned char table[3]; unsigned int t0;

void delay_ms(uint z) //毫秒级延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /******液晶部分子程序*************************/ void write_com(unsigned char com) { //操作时序 RS=0; P0=com; delay_ms(5); E=1; delay_ms(5); E=0; } void write_data(unsigned char shuju) { //操作时序

RS=1; P0=shuju; delay_ms(5); E=1; delay_ms(5); E=0; } void LCDintial() { delay_ms(5); E=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); } /**********定时器初始化程序***************/ void T0T1_init() { EA=1;

基于单片机的测速仪

NANHUA University 单片机课程设计 题目基于单片机的测速仪 学院名称电气工程学院 指导教师 职称副教授 班级 学号 学生姓名 2010年 12 月 31日

《单片机课题设计》任务书

3.主要参考文献: [1] 胡汗才. 单片机原理及其接口技术[M].北京:清华大学出版社,2004 [2] 钱晓捷. 汇编语言程序设计[M].北京:高等学校教材,2005 [3] 张洪润. 张压凡.传感器与应用教程[M].北京:清华大学出版社,2005 [4] 张洪建.蒙建波.自动检测技术与装置[M].北京:化学工业出版社,2004 [5] 吕宁. 水箱水位PLC 自动控制系统的设计[J].电子技术,2005 [6] 刘东红.利用单片机89C52的一个并行I∕O口实现多个LED显示的一种简单方法,国外电子元器件.2002年(8) [7]童诗白.模拟电子技术基础.高等教育出版社,1999 [8]何立民.单片机高级教程——应用与设计.北京航空航天大学出版社,2000 [9]李嗣福.计算机控制基础.中国科技大学出版社,2001 [10]黄丹辉. 党向荣.微机测控系统中的接地系统设计, 2002.4.20 [11]蒋亚东. 敏感材料与传感器. 电子科技大学出版社,2008.12 [12]陈艾. 敏感材料与传感器. 化学工业出版社,2004.10.1 [13]戴佳、戴卫恒刘博文 .51单片机C语言应用程序设计电子工业出版社,2008.12 [14] 谢淑如,郑光钦,杨渝生 .Protel PCB 99 SE电路板设计.清华大学出版社,2001 [16] 江晓安、董秀峰. 模拟电子技术. 西安电子科技大学出版社, 2007.1 4.课程设计工作进度计划: 序号起迄日期工作内容 1 2010.12.15 布置任务,教师讲解设计方法及要求 2 2010.12.16--2011.12.20 学生查找阅读资料,初定方案,小组会议讨论并确定方案 3 2010.12.21-2010.12.27 硬件电路设计及程序编写 4 2010.12.28-2010.12.30 仿真、实验并写说明书,小组讨论 5 2010.12.31 答辩 主指导教师肖金凤日期: 2010 年 12月 14日

按键控制单片机PWM输出设计

学号1322010110 天津城建大学 单片机原理及应用A课程 设计说明书 按键控制单片机PWM输出设计起止日期:2016年05月30日至2016年6月10日 学生姓名 班级 成绩 指导教师(签字) 控制与机械工程学院 2016年6月10日

目录 第一章系统方案设计 (1) 1.1 PWM (1) 1.2 STC12C5A60S2简介 (1) 1.3 仿真工具介绍 (2) 1.3.1 Protues简介 (2) 1.3.2 Keil uVision3简介 (4) 第二章硬件电路设计 (5) 2.1 复位电路 (5) 2.2 时钟电路 (5) 2.3 按键中断 (5) 2.4 显示电路 (6) 第三章程序设计流程图 (7) 第四章系统仿真 (8) 4.1 仿真图 (8) 4.2 程序 (8) 4.3 PCB.................................................................................................................. 错误!未定义书签。参考资料 ....................................................................................................................... 错误!未定义书签。

第一章系统方案设计 1.1 PWM PWM的全称是Pulse Width Modulation(脉冲宽度调制),它是通过改变输出方波的占空比来改变等效的输出电压。 1.2 STC12C5A60S2简介 STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。 1)管脚说明: 1、P0.0~P0.7 P0:P0口既可以作为输入/输出口,也可以作为地址/数据复用总线使用。当P0口 作为输入/输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线A0~A7,数据线D0~D7 2、P1.0/ADC0/CLKOUT2 标准IO口、ADC输入通道0、独立波特率发生器的时钟输出 3、P1.1/ADC1 4、P1.2/ADC2/ECI/RxD2 标准IO口、ADC输入通道2、PCA计数器的外部脉冲输入脚,第二串口数据接收端 5、P1.3/ADC3/CCP0/TxD2 外部信号捕获,高速脉冲输出及脉宽调制输出、第二串口数据发送端 6、P1.4/ADC4/CCP1/SS非 SPI同步串行接口的从机选择信号 7、P1.5/ADC5/MOSI SPI同步串行接口的主出从入(主器件的输入和从器件的输出) 8、P1.6/ADC7/SCLK SPI同步串行接口的主入从出 9、P2.0~P2.7 10、P2口内部有上拉电阻,既可作为输入输出口(8位准双向口),也可作为高8位地址总线使用。 11、P3.0/RxD 标准IO口、串口1数据接收端 12、P3.1/INT0非 外部中断0,下降沿中断或低电平中断 13、P3.3/INT1 14、P3.4/T0/INT非/CLKOUT0 定时器计数器0外部输入、定时器0下降沿中断、定时计数器0的时钟输出 2)A/D转换器的结构: STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口,有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型IO口,用户可以通过软件设置将8路中的任何一路设置为A/D 转换,不须作为A/D使用的口可继续作为IO口使用。 单片机ADC由多路开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器以及ADC_CONTER

相关主题
文本预览
相关文档 最新文档