文档库 最新最全的文档下载
当前位置:文档库 › 单片机在市电过零检测并驱动可控硅进行功率调节的应用综述

单片机在市电过零检测并驱动可控硅进行功率调节的应用综述

单片机在市电过零检测并驱动可控硅进行功率调节的应用综述
单片机在市电过零检测并驱动可控硅进行功率调节的应用综述

单片机在市电过零检测并驱动可控硅进行

功率调节的应用综述

摘要:利用可控硅可实现通过控制低电压直流电使高电压交流电开启或关闭,相比继电器的控制方法可控硅具有更经济、无高次谐波产生、不干扰通讯设备的优点,并且通过对市电是否过零进行检测,通过可编程器件触发可控硅可以实现功率调节。本文综述了一些常用的市电过零检测的方法,及如何通过单片机产生中断来触发可控硅进行功率的调节。

关键词:单片机;可控硅;过零检测;功率调节

由于单片机体积小功耗低数据处理速度快的优点在工业现场被广泛的使用。单片机在工业流程控制的应用,与手动控制相比,它有准确、及时、迅速等诸多方面的优点。市电通过过零检测电路检测到过零时,电路向单片机发出中断申请,单片机通过定时器延时选择导通角从而调节可控硅导通系数。通过这种方法不仅能控制交流电的通断,并且还能调节电路的输出功率。笔者通过工程试验提出以下市电过零检测的方法,和单片机控制可控硅的调节功率的方案。

1可控硅开关原理

可控硅是一种以硅单晶为基本材料的P1N1P2N2四层三端器件,创制于1957年,由于它特性类似于真空闸流管,所以国际上通称为硅晶体闸流管,简称可控硅T。又由于可控硅最初应用于可控整流方面所以又称为硅可控整流元件,简称为可控硅SCR。在性能上,可控硅不仅具有单向导电性,而且还具有比硅整流元件(俗称“死硅”)更为可贵的可控性。它只有导通和关断两种状态。可控硅能以毫安级电流控制大功率的机电设备,如果超过此频率,因元件开关损耗显著增加,允许通过的平均电流相降低,此时,标称电流应降级使用。

由于可控硅共有三个PN结,分析原理时,可以把它看作由一个PNP管和一个NPN管所组成。当阳极A加上正向电压时,BG1和BG2管均处于放大状态。此时,如果从控制极G输入一个正向触发信号,BG2便有基流ib2流过,经BG2放大,其集电极电流ic2=β2ib2。因为BG2的集电极直接与BG1的基极相连,所以ib1=ic。此时,电流ic2再经BG1放大,于是BG1的集电极电流ic1=β1ib1=β1β2ib2。这个电流又流回到BG2的基极,表成正反馈,使ib2不断增大,如此正向馈循环的结果,两个管子的电流剧增,可控硅使饱和导通。由于可控硅只有导通和关断两种工作状态,所以它具有开关特性。

2过零触发电路的实现

2.1通过光电耦合器进行过零检测

过零检测电路的最终目标是实现当50Hz的交流电压通过零点时取出其脉冲。电路中采用两个光电耦合器实现过零控制,其工作原理(图2.1)是:交流电源

经过R12加到2个反并联的观点二极管上,在交流电源的正,负半周,二极管D1和D2轮流导通,从而使三极管T1和T2也轮流导通,在导通器件V0端输出低电平,只有在交流电源过零的瞬间,2个二极管均截止,V0端输出高电平,因此V0端得到周期为10ms 的脉冲信号,该信号送至89C51的INTO 引脚,每秒向AT89C51申请100次中断,以实现每S100次的中断控制周期。

在所设计的过零电路中,每当电源电压过零点时就产生准确的过零脉冲,且工作稳定能满足本系统的工作要求。

2.2通过三极管进行过零检测

如果对过零检测的精度要求不是很高的话,还可也采用三极管进行过零检测,这样的电路简单并且成本得到了有效的控制。如图2.2当交流电过零信号A 通过R1、R2进行限流C2滤去杂波,当有过零信号时三极管BG1截止,VCC 通过D1直接输送给BG2时P0.0产生低点平从而触发单片机中断。

2.3 通过比较器进行过零检测

当可控硅用于调节灯的亮度是,通过普通的方法进行过零检测有可能会误差较大从而使灯不停的闪烁或抖动这时就应该采用比较器检测过零信号。如图2.3当电源产生过零信号时比较器Un 输出低电平,Um 检测到低电平时又Um 输出低点平从而触发单片机中断。

3 单片机触发可控硅的方法

3.1 控制角的测量

由于双向可控硅最终要由单片机来控制,这就要求单片机计算出每控制1度角所对应的时间常数。简便方法是利用外部中断INTl 和定时器T1来接收同步脉冲信号,Tl 则进行内部计数即定时方式。首先选择晶振,交流电每半波占用的时间为O.OlS 而定时器的最大计数值65536,则计数脉冲频率,f=65536/0.01s=

6.55 M 。由于计数脉冲由晶振通过内部分频电路获得,所以理论上晶振通过内部分频电路获得,理论上晶振f=12×6.55=78.6M 。从实际应用考虑,晶振选用12 M ,这样计数脉冲频率为1 M ,定时器Tl 模式选择方式1.当第一个同步 脉冲下降沿到来时,令TRl=1,启动定时器Tl ,当第二个同步脉冲下降沿来到时数器T1计数。

3.2可控硅导通角的控制

每度控制角的当量值确定后,就可以由单片机来控制双向可控硅控制角。在补偿装置中,补偿量是由控制器事先算得的接地点电容电流Ic 决定的。由 Ic 求得补偿装置电感的控制角a ,n 是系统正常时计算的,作为故障使用的依据。当单相接地故障发生后。控制器通过接口电路检测接地信号,打开同步信号入口,产生INTl 中断。在INTl 中断里设置Tl 定时器工作在方式2下,使Tl 打开中断,启动定时器Tl_T1在第n 次中断开始时,即是控制角输出时刻,

所以将输出控制

位置置高电平。经过延时后,再置成低电平,根据选定的脉冲宽度确定系数。一般脉冲宽度取3~8,脉冲太窄会影响控制的可靠性如果脉冲太宽,在导通角很小时,会影响后半周导通角的控制。

4 结束语

由于单片机CPU控制导通角依赖于同步脉冲,从而同步脉冲在10-20角度之间。前半周和后半周各有5-10的角度被覆盖,所以控制角度不应该出现在前半周结尾和后半周开始处。利用单片机通过过零检测电路检测市电过零情况并且控制可控硅的导通可实现非常完好的交流电控制方法,此方法会在工业和生活中大量使用。

参考文献

[1] 黄利生.可控硅过零触发电路在炉温控制中的应用.金属制品.2001.6

[2] 赵琳娜.可控硅零电压开关减噪原理及实现.内蒙古民族大学学报(自然科学版).2002.1

[3] 潘献全,郭福忠.可控硅跳崖交流软启动开关的关键技术研究.西山科技.2001.5

[4] 陈晓英,王德江,陈晓峰.利用单片机实现可控硅导通角控制.辽宁工学院学报(自然科学版).2001.2

[5] 韦建兴,刘兰波.新型可控能耗制动调速系统.新技术新工艺.2000.9

控制工程

柳程奕

一个单片机小程序编写

一个单片机小程序编写 单片机在家用电器和工业系统中应用广泛,下面给大家介绍一个单片机小程序的编写。 1、设计任务: 如果开关合上,L1亮,开关打开,L1熄灭,如图1所示。监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态。 2、电路原理图: 图1 3、系统板上硬件连线:如图1所示,图中VCC = +5V。 4、程序设计内容: (1)开关状态的检测过程: 开关状态是从单片机的P3.0端口输入信号,当拨开开关K1拨上去(开关断开),即输入高电平;当拨动开关K1拨下去(开关闭合),即输入低电平。可以采用JB BIT,REL 指令来完成对开关状态的检测即可。 (2)输出控制: 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮。我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5、程序框图:如图2所示。

图2 6、汇编源程序的编写: ORG 00H START: JB P3.0,D1 CLR P1.0 SJMP START D1: SETB P1.0 SJMP START END 7、用“keil软件编”写好汇编程序,然后转换成HEX文件并保存。 8、用“增强型A51编程器”把刚才写好的HEX文件烧写入单片机中。 9、把已写入程序的单片机,装入图1的电路,然后通电。当拨动开关K1拨下去(开关闭合),发光二极管L1亮;拨开开关K1拨上去(开关断开),发光二极管L1灭。说明刚才编写的程序达到了我们的设计要求。

单片机课程设计报告--可控硅导通角的控制

单片机课程设计报告可控硅导通角的控制

可控硅导通角的控制 设计要求 ■导通时间可调,按键输入设置,LED 数码直读显示 ■精度误差小于50us 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍由单片机怎样去控制可控硅的导通角,可控硅在日常生活中的应用是非常广泛的,种类繁多,有温控可控硅和光控可控硅等多种,本设计使用的是MOC3021光敏双向可控硅,去控制交流电正负半周导通的时间。 关键词:单片机,数字控制,同步信号,数码管,可控硅,三端稳压器7805,MOC3021,P521,AT89C2051 1 引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中可控硅导通角的控制就是一个典型的例子。 本设计用光耦(P521)提取市电过零点的同步信号,由单片机控制可控硅的导通角,以实现被控对象(如灯泡)功率的数字化调节。(本设计用功率电阻代表被控对象) 2 总体设计方案 总体设计框图 图(1) 总体设计方框图 主控制器单片机通过外部中断口提取交流电过零点的信号,再依外部按键设置的数,通过一定的 算法转化为内部定时器的定时常数,去控制可控硅交流电导通的时间。 LED 显 示 同步信号提 取 单片机复位 时钟振荡 按键设置 可控硅 主 控 制 器

3 模块电路方案论证与比较 3.1主控制器 方案一: 选用8051,其有四组I/O口,资源丰富 图(2)8051 方案二: 选用AT89C2051,其有两组I/O口,资源较紧张 图(3)AT89C2051 最终方案: 因单片机AT89C2051具有低电压供电和体积小等特点,;两组端口就能满足本电路系统的设计需要,价格又比较便宜,所以采用它。

单片机考试小程序

编程题 1,清零程序 将片外数据存储器中5000h~500ffh单元全部清零 ORG OOOOH MOV DPTR, #5000H MOV R0,#00H CLR A LOOP: MOVX @DPTR,A INC DPTR DJNZ RO,LOOP HERE: SJMP HERH 2.试着编写程序,查找在内部 RAM的20h~40h单元中出现00h这一数据的次数将查到的结果存入41h单元 ORG 0000H MOV R0,#20H MOV R1,#21H MOV 41H,#00H LOOP: CJNE @RO,#00H,NEXT INC 41H NEXT: INC R0 DJNZ RI,LOOP HERE: SJMP HERE 3查找在内部RAM的30h~50单元中是否有0AAH这一数据,若有则将51H单元置为01H;若未找到;则将51H单元置为00H. ORG 0000H MOV R0,#30H MOV R1,#21H LOOP: CJNE @R0,0AAH,NEXT MOV 51H,#01H SJMP HERE NEXT: INC R0 DJNZ R1,LOOP MOV 51H,#00H HERE: SJMP HERE 4编写程序功能为把1000H开始的外部RAM单元中的数据送到内部RAM50H开始的单元中,数据的个数存放在了内部RAM60H单元。 ORG 0000H MOV DPTR #1000H MOV R0,#50H MOV R1,60H LOOP: MOVX A,@DPTR MOV 50H,A INC DPTR INC R0

DJNZ RI,LOOP HERE: SJMP HERE 5.编写请将ROM3000H单元内容送R7. ORG 0000H MOV DPTR, #3000H CLR A MOVC A ,@A+DPTR MOV R7,A END 6.片外RAM2000H单元内容送到片外RAM1000H的单元中。 ORG 0000H MOV DPTR,#2000H MOVX A,@DPTR MOV DPTR,,#1000H\ MOVX @DPTR,A 7.锯齿形波: ORG 2000H START: MOV R0,#0FEH MOV A,#00H LOOP: MOVX @R0,A INC A SJMP LOOP 8三角形波 ORG 2000H START MOV R0,#0FEH MOV A,#00H UP: MOVX @R0,A INC A JNZ UP DOWN: DEC A MOVX @DPTR,A JNZ DOWN SJMP UP

单片机控制可控硅

单片机控制可控硅 This manuscript was revised on November 28, 2020

1 调光控制器设计 在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。 调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。 这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。 1.1 硬件部分 本调光控制器的框图如下: 控制部分:为了便于灵活设计,选择可多次写入的可器件,这里选用的是ATMEL的AT89C51单片机。 驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。继电器由于是机械动作,响应速度慢,不能满足其需

要。可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。所以这里选用的是可控硅。 负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。 1.2 部分 要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。 理论上讲,延时时间应该可以是0~10ms内的任意值。在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。 可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20 μs。程序中使用T1来控制这个时间。 对两个调光按键的处理有两种方式:一种是每次按键,无论时间的长短,都只调整一个台阶(亮或暗);另一种是随按键时间的不同,调整方法

单片机C语言编程实例

单片机C语言编程实例 前言 INTEL公司的MCS-51单片机是目前在我国应用得最广泛的单片机之一.随着 单片机应用技术的不断发展,许多公司纷纷以51单片机为内核,开发出与其兼容的 多种芯片,从而扩充和扩展了其品种和应用领域。 C语言已成为当前举世公认的高效简洁而又贴近硬件的编程语言之—。将C语言向单片机上的移植,始于20世纪80年代的中后期。经过十几年的努力,C语言终于成为专业化单片机上的实用高级语言。用C语言编写的8051单片机的软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完善的系统。因此,不管是对于新进入这一领域的开发者来说,还是对于有多年单片机开发经验的人来说,学习单片机的C语言编程技术都是十分必要的。. C语言是具有结构化.模块化编译的通用计算机语言,是国际上应用最广.最多的计算语言之一。C51是在通用C语言的基础上开发出的专门用于51系列单片机编程的C语言.与汇编语言相比,C51在功能上.结构上以及可读性.可移植性.可维护性等方面都有非常明显的优势。目前 最先进、功能最强大、国内用户最多的C51编译器是Keil Soft ware公司推出的KeilC51。第 一章单片机C语言入门 1.1建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码, 这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软 件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑, 编译,仿真等于一体,同时还支持PLM、汇编和C语言的程序设计,它的界面 和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真 方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周 立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个

KTY3S系列晶闸管功率控制器使用与维护手册

晶闸管控制器的使用方法及维护说明 一、设备简介: KTY3S系列全数字三相晶闸管功率控制器,采用全数字化设计,集开环控制、恒电压、恒电流、恒功率、调功控制、LZ控制(相位/过零综合控制)等功能于一体。优化的硬件设计,强大的软件功能,广泛应用于三相电力功率控制;标准的通讯接口和通讯协议,可以进行网络控制。适用于阻性负载、感性负载、变压器一次侧。 二、操作面板: RUN: 运行指示灯。工作时亮。 STOP: 停机指示灯。故障或停机时亮。 A/M: 自动/手动指示灯。当给定选择 1 (1.15连接的信号为 1 时亮。 FAULT: 故障指示灯。故障时,此灯闪烁。 三、操作方法: KTY3S 系列功率控制器设有 10 个常用子菜单,每个子菜单下设有数目不等的参数单元如图:

下图以参数连接开关 1.11(给定 1)由默认连接 7.11(AI1 参数)改至连接到参数连接器 7.03(参数 1),实现键盘数字给定或者通讯修改 7.03 参数给定信号为例,说明参数的修改方法。 下图为数字或字母与7段LED数码管显示符号对照: 四、参数设定: 在连退5#连退线上电加热炉晶闸管控制器参数应按照以下参数设定: 4.11=0(信号类型) 3.05=380(额定输出电压) 3.06=341(额定输出电流)2.12=0(负载性质) 2.14=0(触发选择1) 2.16=20(过零触发周期) 6.02=8.15(故障复位) 4.28=8.21(Y1输出源) 4.29=8.38(Y2输出源) 五、故障处理及保养维护: 故障处理 KTY3S 功率控制器具有多种保护功能。出现故障时,控制器会自动保护,

基于51单片机的调光控制器设计

基于51单片机的调光控制器设计 1 调光控制器设计 在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。 调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。 这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。 1.1 硬件部分 本调光控制器的框图如下: 控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL的AT89C51单片机。 驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。继电器由于是机械动作,响应速度慢,不能满足其需要。可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。所以这里选用的是可控硅。 负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。 1.2 软件部分 要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。 理论上讲,延时时间应该可以是0~10ms内的任意值。在程序中,将一个周期均分成N 等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。 可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20 μs。程序中使用T1来控制这个时间。 对两个调光按键的处理有两种方式:一种是每次按键,无论时间的长短,都只调整一个台阶(亮或暗);另一种是随按键时间的不同,调整方法不同:短按只调整一个台阶,长按可以连续调整。如前面所述,由于本设计中的台阶数为95(N=95),如果使用前一种方式,操作太麻烦,所以用后者较为合理。 2 各单元电路及说明 2.1 交流电压过零点信号提取 交流电压过零点信号提取电路,图中的同步信号就是我们需要的交流电压过零点信号。各部分波形。

十二篇可控硅交流调压电路解析

第一篇: 可控硅是一种新型的半导体器件,它具有体积小、重量轻、效率高、寿命长、动作快以及使用方便等优点,目前交流调压器多采用可控硅调压器。这里介绍一台电路简单、装置容易、控制方便的可控硅交流调压器,这可用作家用电器的调压装置,进行照明灯调光,电风扇调速、电熨斗调温等控制。这台调压器的输出功率达100W,一般家用电器都能使用。 1:电路原理:电路图如下 可控硅交流调压器由可控整流电路和触发电路两部分组成,其电路原里图如下图所示。从图中可知,二极管D1—D4组成桥式整流电路,双基极二极管T1构成张弛振荡器作为可控硅的同步触发电路。当调压器接上市电后,220V交流电通过负载电阻RL经二极管D1—D4整流,在可控硅SCR的A、K两端形成一个脉动直流电压,该电压由电阻R1降压后作为触发电路的直流电源。在交流电的正半周时,整流电压通过R4、W1对电容C充电。当充电电压Uc达到T1管的峰值电压Up时,T1管由截止变为导通,于是电容C通过T1管的e、b1结和R2迅速放电,结果在R2上获得一个尖脉冲。这个脉冲作为控制信号送到可控硅SCR的控制极,使可控硅导通。可控硅导通后的管压降很低,一般小于1V,所以张弛振荡器停止工作。当交流电通过零点时,可控硅自关断。当交流电在负半周时,电容C又从新充电……如此周而复始,便可调整负载RL上的功率了。 2:元器件选择 调压器的调节电位器选用阻值为470KΩ的WH114-1型合成碳膜电位器,这种电位器可以直接焊在电路板上,电阻除R1要用功率为1W的金属膜电阻外,其佘的都用功率为1/8W的碳膜电阻。D1—D4选用反向击穿电压大于300V、最大整流电流大于0.3A的硅整流二极管,如2CZ21B、2CZ83E、2DP3B等。SCR选用正向与反向电压大于300V、额定平均电流大于1A的可控硅整流器件,如国产3CT系例。 第二篇: 本例介绍的温度控制器,具有SB260取材方便、性能可靠等特点,可用于种子催芽、食用菌培养、幼畜饲养及禽蛋卵化等方面的温度控制,也可用于控制电热毯、小功率电暖器等家用电器。

单片机C语言小程序

单片机C语言小程序 #include #include #define V AR XBYTE[0x00] /*V AR为外部位址0000*/ #define read 0 /*93c46读取的识别码READ=0*/ #define write 2 /*93c46写入的识别码WRITE=2*/ #define ewen 4 /*93C46写致能的识别码EWEN=4*/ #define ewds 6 /*93C46写除能的识别码EWDS=6*/ #define cs INT0 /*93C46 CS接脚=8051 RD P3.2*/ #define clk INT1 /*93C46 CLK接脚=8051 WR P3.3*/ #define di T0 /*93C46 DI接脚=8051 T1 P3.4*/ #define d0 T1 /*93C46 DO接脚=8051 T0 P3.5*/ #define LOW 0x49 /*存放测试温度的下限值*/ #define HIGH 0x51 /*存放测试温度的上限值*/ bit FLAG0=0; /*宣告TIMER0响应旗号*/ //外接工业专用温度传感器时,目前设置测量温度为0-99度: static const char tab[13]={0x3a,0x53,0x6f,0x8a,0xa3, /*0度,10度,20度,30度,40度*/ 0xB8,0xC8,0xD5,0xDE,0xE5, /*50度,60度,70度,80度,90度*/ 0xEA,0xEE}; /*100度,110度*/ //使用板上AD590温度传感器时,目前设置测量温度为0-99度: //static const char tab[13]={0x88,0x8d,0x92,0x97,0x9c, /*0度,10度,20度,30度,40度,*/ // 0xa1,0xa6,0xab,0xb0,0xb5, /*50度,60度,70度,80度,90度*/ // 0xba,0xc0}; /*100度,110度*/ char data1[2]; char C,S,k=0; char MEP[7]; /*显示器值存放阵列*/ //MEP[0]=数码管最低位显示值,温度指示小数点后位 //MEP[1]=数码管次低位显示值,温度指示个位数 //MEP[2]=数码管高位显示值,温度指示十位数 //MEP[3]=数码管最低位显示值,功能显示目前定为1,2,3,4,5 //MEP[4]= //MEP[5]=暂放置温度显示值,高4位为温度指示十位数值,低4位为温度指示个位数值//MEP[6]=在温度显示与电压调整副程式中,将测量值C暂存MEP[6]中 unsigned char combuf[10]; unsigned char ADR46,CH,CL,m,C1,C2; /*ADR46,93C46位址,CH高位元组,CL低*/ int sec,sec1; char ptr=0,ptr1=0x10,psr=0; /*ptr显示器值存放阵MEP[]指标,ptr1显示器扫描指标*/ char count=100,sb=0; void delay (unsigned int value) /*延时副程式*/ { while (value!=0) value--; /*10us延时*/ } void COMP(); /*宣告比较现在温度与设定温度副程式*/ void SET();

单片机c程序编写

单片机C语言编程基础 时间:2011-05-01 22:47:26来源:作者: 单片机的外部结构: 1、DIP40双列直插; 2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、电源VCC(PIN40)和地线GND(PIN20); 4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3、一个串行通信接口;(SCON,SBUF) 4、一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 单片机C语言编程基础 1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3、++var表示对变量var先增一;var—表示对变量后减一。 4、x |= 0x0f;表示为x = x | 0x0f; 5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6、While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 { P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC While( 1 ); //死循环,相当LOOP: goto LOOP; } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 { P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND While( 1 ); //死循环,相当LOOP: goto LOOP; } 在某引脚输出方波编程方法:(比如P3.1引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 {

三端双向晶闸管的功耗计算和Tjmax预测

三端双向晶闸管的功耗计算和Tjmax 预测 https://www.wendangku.net/doc/5f12364045.html,/public/art/artinfo/id/80000326 上网时间:2008-10-11作者:Nick Ham NXP 公司(原飞利浦半导体公司)来源:电子设计信息网 中心论题: 三端双向晶闸管功耗的计算。 Vo Vo和和Rs Rs的计算方法。 的计算方法。Tjmax Tjmax的计算方法。 的计算方法。设计案例介绍。 解决方案: 由已知数据表和曲线计算功耗。 制作一个放大的制作一个放大的IT IT /VT VT曲线复印件以提高曲线复印件以提高曲线复印件以提高Vo Vo Vo和和Rs Rs的计算精确度。 的计算精确度。选用选用BTH151S-650R BTH151S-650R BTH151S-650R保证重复过载条件提供高度重复电涌。 保证重复过载条件提供高度重复电涌。三端双向晶闸管在工作时消耗大量电能,因而其散热设计非常重要。散热设计主要涉及到功率、热阻和温度升高等几个计算阶段。本文介绍的是设计计算以及设计案例,其数据主要来自实际应用和三端双向晶闸管的数据表。三端双向晶闸管功耗的计算 三端双向晶闸管功耗受负载电流影响。假设电流为全正弦波电流(全波传导),即表示在三端双向晶闸管功耗最大的条件下,其功耗最易于计算,如式1所示: P =Vo ×IT(AVE)+Rs ×IT(RMS)2(1) 其中,P 为三端双向晶闸管功率;Vo 为三端双向晶闸管拐点电压,通过IT/VT 曲线得到该值;IT(AVE)为平均负载电流,其计算公式如式2所示: IT(AVE)=2××IT(RMS)/?(2) 其中,Rs 为三端双向晶闸管斜率电阻,通过查IT/VT 曲线得到该值;IT(RMS)为RMS 负载电流,通过测量得到该值。这里计算前提为全波传导和正弦负载电流,即最不利的功耗情况。半波传导的IT(RMS)和IT(AVE)的计算公式为:IT(AVE)=2x Ipk x T /?x 2T =Ipk /?(3) IT(RMS)2=(Ipk2x T)/(2x 2T) =Ipk2/4∴IT(RMS)=Ipk /2(4) Vo 和Rs 的计算 如果数据表中未提供Vo 和Rs 值,则设计师须自己算出数据。具体方法如下: 1.制作一个放大的IT /VT 曲线复印件以提高精确度;

STC向单片机发送数据小程序(C语言)

#include"stc12c5a60s2.h" #define uchar unsigned char; void initiate(void); void check_zero(void); void time0_on(void); void send_char(void); uchar shu,t,n=1,i=0; uchar code value[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; //************************************************************** void main() { initiate(); for(;;) check_zero(); } //**************************************************************** void initiate(void) { TMOD=0X21; //定时器T1溢出提供波特率,定时器T0定时。 TL1=0XFD; //fosc=11.0592mHz,波特率9600bps对应初值 TH1=0XFD; PCON=0X00; //波特率不加倍。 SCON=0X50; //串口工作方式一,允许接受。 ET1=0; EA=1; TR1=1; } //***************************************************************** void check_zero(void) { if(RI==1) { if(SBUF==0) { RI=0; SCON=0X40;

CPC功率控制器-调功器

CPC功率控制器-调功器 CPC功率控制器 一、CPC功率控制器概述 CPC功率控制器是采用微处理器技术、电力电子技术、及现代控制理论技术所设计的具有当今国际先进水平的新型调节器设备,其结构美观紧凑,保护措施完善,集多种控制方式于一体,使用灵活、功能强大。广泛应用于加热、灯光调节等场合。 二、功率控制器型号说明 功率控制器的型号可以根据右图进行全面的了解!

三、功率控制器操作面板介绍 不同型号的功率控制器操作面板上的具体含义介绍

四、CPC功率控制器的产品特点 1、先进的微处理技术 采用高性能的ARM-r CORTEX-TM-M3 32位内核,主频72MHZ,速度快,功耗低,抗干扰能力强。 2、友好的人机界面 CPC系列可控硅功率控制器采用OLED液晶屏显示。图形化的显示模式,使参数设定、调整更加便捷,故障及实时监控更加直观。 3、强大的抗干扰能力 所有外部控制信号、电压电流、通讯、输出电路均采用隔离技术,适合在特殊的工业环境中使用。 4、多种控制方式 集开环控制、恒压模式(U反馈、U2反馈)、恒流模式(I反馈、I2反馈)、恒功模式(p 反馈)、定周期周波模式、变周期周波模式和相控+周波控制模式于一体。 5、多种负载接线方式 负载可接成星型中点接零、星型中点不接零、三角型接法,可通过参数轻松设定。 6、完善的保护功能 全程检测电流及负载参数,具有电源欠压、电源过压保护、过流保护、晶闸管过热保护、负载断线保护、频率保护、缺相保护等功能。 7、电源频率自适应 电源频率42-68Hz自适应功能,并且频率值实时显示,方便用户使用。 8、散热器温度实时监控,风机自控 采用高精度数字温度传感器,检测精度达0 0625℃,可实时监测散热器状态。散热风机可千动或自动控制,大大延长了其使用寿命,减少了噪音污染。 9、丰富的信号输出 有模拟信号和数字信号输出接口;两路继电器输出。两路信号直接可进行加减乘除的运算,可非常方便的实现特殊控制,模拟输入均可设置正负逻辑。 10、先进的通讯功能 配有RS485通讯接口,方便用户网络连接控制,提高系统的自动化水平及可靠性。内嵌Modbus标准协议方便组态连接。 11、输入输出电压、电流高精度检测 采用24位专用ADC,且输出值为真有效值(TRMS),确保了对非正弦信号的精确检测。 12、累积电量显示 可对运行中的电量进行累计,单位KWH。 多种控制模式自由选择 开环控制、恒压模式(U反馈、U2反馈)、恒流模式(I反馈。I2反馈)、恒功模式(P反馈)、定周期周波模式、变周期周渡模式和相控+周波控制(定周渡)。 五、多种控制模式自由选择

教你如何用C++写单片机程序

教你如何用C++写单片机程序 关键词:C++ 面向对象单片机 从大一就开始学习单片机,学51,A VR编程都使用C语言的风格,即面向过程,只要能画出程序流程图,程序基本就born了。我热衷于编程,尤其是C++,当时想有没有一天,C++的类和对象也能出现在单片机中? 历经世事沧桑,事到如今,我终于有机会,和大家一起学习使用真正面向对象的C++来控制单片机。目前单片机编译器大部分只支持C语言,C++还不够普及,但我们有理由相信,有着更先进的面向对象的理念,有更加平易近人的类和继承,C++必将取代C,成为单片机程序的主流。试看将来环球单片机,必是C++的世界! 下面大家跟着我来一起学习怎么用C++给单片机编程序!本文要求大家玩过A VR单片机,有过C语言编程经验,而且要对VC6.0开发环境有一定了解。 必备软件:VC6.0(用于编辑源程序),WinA VR(用于生成Makefile,支持A VR系列单片机),Proteus(用于仿真调试)。 首先,你的电脑上要装有VC6.0,进入后选菜单【file】---【new】新建工程,如图1选择Makefile工程,输入工程名称,路径,点确定。 图1_新建工程 一路OK建好工程,界面如图2。这个工程是专门写makefile脚本的,你如果学A VR单片机使用avr-gcc那应该对makefile有一定了解,如果想多了解一点详见https://www.wendangku.net/doc/5f12364045.html,/view/974566.html?wtp=tt(呵呵,百度百科)。 你还需要安装WINA VR,这是个免费软件,网上很多资源,这个软件很容易安装,一路Next 就可以啦!为了使用方便,我的WINAVR安装到了C盘根目录下的WINA VR文件夹。安装好后,可以直接用它来编辑源代码,今天我就不讲它的使用方法了,只讲怎么生成makefile。自我感觉用熟悉的VC6.0环境编写程序心情很愉快,大家还是跟我一起来,打造

单片机在市电过零检测并驱动可控硅进行功率调节的应用综述

单片机在市电过零检测并驱动可控硅进行 功率调节的应用综述 摘要:利用可控硅可实现通过控制低电压直流电使高电压交流电开启或关闭,相比继电器的控制方法可控硅具有更经济、无高次谐波产生、不干扰通讯设备的优点,并且通过对市电是否过零进行检测,通过可编程器件触发可控硅可以实现功率调节。本文综述了一些常用的市电过零检测的方法,及如何通过单片机产生中断来触发可控硅进行功率的调节。 关键词:单片机;可控硅;过零检测;功率调节 由于单片机体积小功耗低数据处理速度快的优点在工业现场被广泛的使用。单片机在工业流程控制的应用,与手动控制相比,它有准确、及时、迅速等诸多方面的优点。市电通过过零检测电路检测到过零时,电路向单片机发出中断申请,单片机通过定时器延时选择导通角从而调节可控硅导通系数。通过这种方法不仅能控制交流电的通断,并且还能调节电路的输出功率。笔者通过工程试验提出以下市电过零检测的方法,和单片机控制可控硅的调节功率的方案。 1可控硅开关原理 可控硅是一种以硅单晶为基本材料的P1N1P2N2四层三端器件,创制于1957年,由于它特性类似于真空闸流管,所以国际上通称为硅晶体闸流管,简称可控硅T。又由于可控硅最初应用于可控整流方面所以又称为硅可控整流元件,简称为可控硅SCR。在性能上,可控硅不仅具有单向导电性,而且还具有比硅整流元件(俗称“死硅”)更为可贵的可控性。它只有导通和关断两种状态。可控硅能以毫安级电流控制大功率的机电设备,如果超过此频率,因元件开关损耗显著增加,允许通过的平均电流相降低,此时,标称电流应降级使用。 由于可控硅共有三个PN结,分析原理时,可以把它看作由一个PNP管和一个NPN管所组成。当阳极A加上正向电压时,BG1和BG2管均处于放大状态。此时,如果从控制极G输入一个正向触发信号,BG2便有基流ib2流过,经BG2放大,其集电极电流ic2=β2ib2。因为BG2的集电极直接与BG1的基极相连,所以ib1=ic。此时,电流ic2再经BG1放大,于是BG1的集电极电流ic1=β1ib1=β1β2ib2。这个电流又流回到BG2的基极,表成正反馈,使ib2不断增大,如此正向馈循环的结果,两个管子的电流剧增,可控硅使饱和导通。由于可控硅只有导通和关断两种工作状态,所以它具有开关特性。 2过零触发电路的实现 2.1通过光电耦合器进行过零检测 过零检测电路的最终目标是实现当50Hz的交流电压通过零点时取出其脉冲。电路中采用两个光电耦合器实现过零控制,其工作原理(图2.1)是:交流电源

单片机课程学习总结

《单片机》课程学习总结 《单片机》这门课程我已经学了一个学期了,在这一个学期的学习过程中,我一开始不怎么懂得编程,但慢慢的我现在已经不仅会读程序还会写程序了。真为自己一个学期来努力学到的单片机知识只是而感到高兴。 怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。 我觉得学习单片机首先要懂得C语言,因为单片机大多说都是靠程序来实现的,如果看不懂程序或则不懂的编程是很难学会单片机的。学习单片机首先要明白一个程序是怎么走的,要完全懂得程序每一个步骤的意思。其次要懂得每一条指令的意思,不能盲目地去靠背指令,这是记得不牢靠的,最主要的还是靠了解。学习单片机最主要的对89C51芯片内部结构有全方面的,只要了解了89C51才能知道单片机实现什么样的功能和作用,才能对单片机有更深一步的了解。 通过一个学期《单片机》这门课程的学习,我也从中有了不少心得和体会想和大家分享一下。 万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,不要说单片机的程序全是英文,自己看不懂。遇到困难要一件件攻克,不懂指令就要勤奋看书,不懂程序就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少。然后建个程序,加入项目中,再写代码、编译、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。 知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。 程序不要光看不写,一定要自己写一次。最开始的时候,什么都

单片机控制可控硅

单片机控制可控硅 This model paper was revised by LINDA on December 15, 2012.

1 调光控制器设计 在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。 调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。 这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。 1.1 硬件部分 本调光控制器的框图如下: 查看原图(大图) 控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL 的AT89C51单片机。 驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。继电器由于是机械动作,响应速度慢,不能满足其需要。可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。所以这里选用的是可控硅。

负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。 1.2 软件部分 要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。 理论上讲,延时时间应该可以是0~10ms内的任意值。在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。 可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20 μs。程序中使用T1来控制这个时间。 对两个调光按键的处理有两种方式:一种是每次按键,无论时间的长短,都只调整一个台阶(亮或暗);另一种是随按键时间的不同,调整方法不同:短按只调整一个台阶,长按可以连续调整。如前面所述,由于本设计中的台阶数为95(N=95),如果使用前一种方式,操作太麻烦,所以用后者较为合理。 2 各单元电路及说明 2.1 交流电压过零点信号提取

单片机入门小程序

51单片机的学习是一个动手实践的过程,很多同学在学习单片机的初期总是觉得很难,无法入门。本人根据自己的学习经历,结合自己刚学习单片机的体验,写下几个小的程序供大家参考,如能掌握如下几个小程序的思想与精髓,那么就已经探踏入了单片机的大门。学习单片机的核心就是动手实践,当我们通过自己的努力把第一个LED点亮时,我们就会信心加倍,之后的学习就会变得轻松!希望对大家有所帮助。 一个LED闪烁 #include sbit led=P0^3; unsigned int a; void main() { P0=0x00; while(1) {a=100000; led=1; while(a--); a=10000; led=0; while(a--); } } 两个led闪烁 #include #define uchar unsigned char #define uint unsigned int void delay(); void main() { while(1) { P0=0xaa; delay(); P0=0x00; delay(); } } void delay() { uchar x,y; for(x=110;x>0;x--) for(y=120;y>0;y--); } 流水灯 #include #include void delay(); void main() { unsigned char temp;

P0=0xef; temp=P0; delay(); while(1) { temp=_crol_(temp,1); delay(); } } void delay() { unsigned char x,y; for(x=40;x>0;x--) for(y=200;y>0;y--); } 键控移位信号灯 #include #include #define uchar unsigned char #define uint unsigd neint sbit k1=P1^0; sbit k2=P1^1; void delay(uchar z); void main() { P0=0X18; while(1) { if(k1) P0=_crol_(P0,1); if(k2) P0=_cror_(P0,1); } } void delay(uchar z) { uchar x,y; for(x=z;x>0;x--) for(y=120;y>0;y--) ;} 中断的简单应用 1. 利用定时器中断实现LED闪烁#include #define uchar unsigned char #define uint unsigned int sbit led1=P1^0; uchar num; void main() { P1=0x00;

相关文档
相关文档 最新文档