文档库 最新最全的文档下载
当前位置:文档库 › 单片机控制可控硅

单片机控制可控硅

单片机控制可控硅
单片机控制可控硅

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 交流电压过零点信号提取

交流电压过零点信号提取电路如图2所示,图中的同步信号就是我们需要的交流电压过零点信号。各部分波形如图3所示。

查看原图(大图)

图中整流后波形中的水平虚线表示光藕P52l输入二极管的门限电压。P521是TLP521的简称,下图是其引脚图。引脚图中器件名的后缀“-1”表示包含一组光藕。

2. 2 主控单元

查看原图(大图)

主控单元以AT89C51单片机为核心,交流电压过零点信号提取电路中产生的同步信号SYN接到AT89C5l的INT0,此信号的下降沿将使AT89-C51产生中断,以此为延时时间的起点。

三个按键只用于控制一路灯:一个为开关,另外两个分别为提高亮度和降低亮度。

74HC573用于输出控制可控硅的导通的触发信号。

220V交流主电源导通区间、同步信号和触发信号的时序关系如

图6所示。

查看原图(大图)

图中的阴影部分表示可控硅的导通区间,它的大小决定了灯的亮度。改变延时时间可改变触发信号和同步信号的相位关系,也改变了可控硅的导通区间的大小,达到调光的目的。

2.3 驱动单元

查看原图(大图)

图中,L1_D是单片机输出的触发信号,该信号通过光控可控硅MOC3022去驱动可控硅T435。受控的白炽灯接在Ll和零线(图中未画出)之间。

MOC3022是DIP-6封装的光控可控硅。其1、2脚分别为二极管的正、负极:4、6脚为输出回路的两端;3、5脚不用连接。如图8所示。

查看原图(大图)

T435-400是可控硅,“4”表示主回路电流是4A;“35”表示触发端的最大电流是35mA,一般该端有最大电流的5%就可保证可靠地触发。T435-400外型图如图9所示。

3 程序流程图

查看原图(大图)4 结束语

本控制器使用了三个开关控制一路灯,主要是为了在教学过程中降低难度。也可改为一个开关控制一路灯,比如短按为开、关,第一次长按为降低亮度,连续的第二次长按为提高亮度等。电路不用改动,只需修改程序即可。

学生通过制作该调光控制器,可以掌握单片机、光藕和可控硅等方面的知识和使用技能,特别是后两者,学生较少接触。由于该调光控制器调光的效果比较好,对提高学生的学习兴趣有很大帮助,教学效果良好。

一个单片机小程序编写

一个单片机小程序编写 单片机在家用电器和工业系统中应用广泛,下面给大家介绍一个单片机小程序的编写。 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版软件,基本可以满足一般的个

可控硅-晶闸管的几种典型应用电路

可控硅-晶闸管的几种典型应用电路 描述: SCR半波整流稳压电源。如图4电路,是一种输出电压为+12V的稳压电源。该电路的特点是变压器B将220V的电压变换为低压(16~20V),采用单向可控硅SCR半波整流。SCR的门极G从R1、D1和D2的回路中的C点取出约13.4V的电压作为SCR门阴间的偏置电压。电容器C1起滤波和储能作用。在输出CD端可获得约+12V的稳压。晶闸管,又称可控硅(单向SCR、双向BCR)是一种4层的(PNPN)三端器件。在电子技术和工业控制中,被派作整流和电子开关等用场。在这里,笔者介绍它们的基本特性和几种典型应用电路。 1.锁存器电路。图1是一种由继电器J、电源(+12V)、开关K1和微动开关K2组成的锁存器电路。当电源开关K1闭合时,因J回路中的开关K2和其触点J-1是断开的,继电器J不工作,其触点J-2也未闭合,所以电珠L不亮。一旦人工触动一下K2,J得电激活,对应的触点J-1、J-2闭合,L点亮。此时微动开关K2不再起作用(已自锁)。要使电珠L熄灭,只有断开电源开关K1使继电器释放,电珠L才会熄灭。所以该电路具有锁存器(J-1自锁)的功能。 图2电路是用单向可控硅SCR代替图1中的继电器J,仍可完成图1的锁存器功能,即开关K1闭合时,电路不工作,电珠L不亮。当触动一下微动开关K2时,SCR因电源电压通过R1对门极加电而被触发导通且自锁,L点亮,此时K2不再起作用,要使L熄灭,只有断开K1。由此可见,图2电路也具有锁存器的功能。图2与图1虽然都具有锁存器功能,但它们的工作条件仍有区别:(1)图1的锁存功能是利用继电器触点的闭合维持其J线圈和L的电流,但图2中,是利用SCR自身导通完成锁存功能。(2)图1的J与控制器件L完全处于隔离状态,但图2中的SCR与L不能隔离。所以在实际应用电路中,常把图1和图2电路混合使用,完成所需的锁存器功能。 2.单向可控硅SCR振荡器。图3电路是利用SCR的锁存性制作的低频振荡器电路。图中的扬声器LS(8Ω/0.5W)作为振荡器的负载。当电路接上电源时,由于电源通过R1对C1充电,初始时,C1电压很低,A、B端的电位器W的分压不能触发SCR,SCR不导通。当C1充得电压达到一定值时,A、B端电压升高,SCR被触发而导通。一旦SCR导通,电容器C1通过SCR和LS放电,结果A、B端的电压又下降,当A、B端电压下降到很低时,又使SCR截止,一旦SCR截止,电容器C1又通过R1充电,这种充放电过程反复进行形成电路的振荡,此时LS发出响声。电路中的W可用来调节SCR门极电压的大小,以达到控制振荡器的频率变化。按图中元件数据,C1取值为0.22~4μF,电路均可正常工作。 3.SCR半波整流稳压电源。如图4电路,是一种输出电压为+12V的稳压电源。该电路的特点是变压器B将220V的电压变换为低压(16~20V),采用单向可控硅SCR半波整流。SCR的门极G从R1、D1和D2的回路中的C点取出约13.4V的电压作为SCR门阴间的偏置电压。电容器C1起滤波和储能作用。在输出CD端可获得约+12V的稳压。电路工作时,当A点低压交流为正半周时,SCR导通对C1充电。当充电电压接近C点电压或交流输入负半周时,SCR截止,所以C1上充得电压(即输出端CD)不会高于C点的稳压值。只有储能电容C1输出端对负载放电,其电压低于C点电压时,在A点的正半周电压才会给C1即时补充充电,以维持输出电压的稳定。图4电路与电池配合已成功用于某设备作后备电源。该稳压电源,按图中参数其输出电流可达2~3A。

基于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 交流电压过零点信号提取 交流电压过零点信号提取电路,图中的同步信号就是我们需要的交流电压过零点信号。各部分波形。

单片机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();

3.4可控硅应用电路

可控硅应用电路 教学目的:1、掌握可控硅整流电路的工作原理。 2、了解音乐彩灯控制器的工作原理。 3、了解安全感应开关电路的工作原理。 教学重点:可控硅整流电路的工作原理。 教学难点:安全感应开关电路的工作原理。 教学方法与手段:1、教师讲授与多媒体课件相结合;实习实训相结合。 1、双向可控硅的触发特性和工作过程: 双向可控硅的电路符号是VS ,有三个电极阳极A1、A2、控制极G ; 如图9.13所示 图 9.13 双向可控硅电路符号 (2)触发条件:当A1—A2间加有电压(不论极性),A1—G 间加足够大的触发电压和电流时(不论极性),可控硅双向导通; (3) 可控硅导通后,去掉A1—G 间的触发电压,可控硅仍一直保持导通; (4)当A1—A2间的电压消失, 可控硅退出导通,A1—A2间呈高阻截止状态。 2、用多用电表检测双向可控 A1 A2 G

如图9.14为双向可控硅的管脚电极。 (1)检测控制极G与主电极A1、A2之间的电阻: 将多用电表置“R×1Ω”挡,测G与A1之间的 正、反向电阻均应为较小阻值;图 9.14 双向可控硅正面引脚图 测G与A2之间的正、反向电阻,均应为无穷大。 (2)检测导通特性: 将多用电表黑表笔接A1,红表笔接A2,阻值应为无穷大,用螺丝刀将G与A2短接一下,表针应向右偏转并保持在十几欧姆处,否则说明可控硅已损坏。 如TLC386A双向可控硅,其耐压为700V,额定导通电流为3A。 3、应用 (2)用可控硅设计、安装可调光台灯试验 电路如图9.15所示 (1)元器件的选择与作用: 双向可控硅VS选用TLC386A, 双向二极管VD选用 VD 极性)高于VD (2)工作原理: 交流电经灯泡、W、R对A2 VS A1

单片机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 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 {

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

第一篇: 可控硅是一种新型的半导体器件,它具有体积小、重量轻、效率高、寿命长、动作快以及使用方便等优点,目前交流调压器多采用可控硅调压器。这里介绍一台电路简单、装置容易、控制方便的可控硅交流调压器,这可用作家用电器的调压装置,进行照明灯调光,电风扇调速、电熨斗调温等控制。这台调压器的输出功率达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取材方便、性能可靠等特点,可用于种子催芽、食用菌培养、幼畜饲养及禽蛋卵化等方面的温度控制,也可用于控制电热毯、小功率电暖器等家用电器。

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;

教你如何用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/803879079.html,/view/974566.html?wtp=tt(呵呵,百度百科)。 你还需要安装WINA VR,这是个免费软件,网上很多资源,这个软件很容易安装,一路Next 就可以啦!为了使用方便,我的WINAVR安装到了C盘根目录下的WINA VR文件夹。安装好后,可以直接用它来编辑源代码,今天我就不讲它的使用方法了,只讲怎么生成makefile。自我感觉用熟悉的VC6.0环境编写程序心情很愉快,大家还是跟我一起来,打造

最新三端双向可控硅应用电路

三端双向可控硅应用 电路

第五章三端双向可控硅元件和其他硅控整流器(半导体闸流管) Triacs and other Thyristors 前言: Triac和SCR动作相同,只不过可双向导火,此两元件都为半导体闸流管(闸流体)家族成员。 有些半导体闸流管由闸极信号控制进入导火状态,如SCR和Triac,有些由外加电压至其转态值时转入导通状态,如四层二极管和Diac,不能开关传入主负载电流的小型半导体闸流管,称为电压转态元件(有时称崩溃元件),通常只作为SCR、Triac等可开关大负载电流的半导体闸流管的闸极触发电路。学习目标: 1 解释Triac在控制交流电源推动电阻性负载的工作原理 2 正确定义并讨论Triac的重要电气参数,如,闸极触发电流,保持电流等 3 说明作为Triac触发电路的定电压转态元件的工作原理,并讨论其优点 4 祥述下列定电压转态型元件的电流对电压特性,包括:Diac、四层二极管、硅双向开关(SBS)、硅单向开关(SUS) 5 祥述Triac触发电路上,电阻反馈/电压反馈使之导火的工作原理,计算在Triac触发电路上,使用电阻反馈和电压反馈的电阻值和电容值 6 解释半导体闸流管的特性曲线,读出转态电压,转回电压,保持电流 5-1 Triac的理论与工作原理(Theory and Operation of Triacs) Triac是一三端元件,用以控制流向负载的平均电流,与SCR最大不同在于:Triac在电源的正负半周都能导通。

当Triac处于截止状态时(off),无论外加电压极性如何,两主端点间无电流流动,如开启的开关。处于导通转态时(on),两主端点间构成一电阻极低的电流通路,电流流向根据外加电压而定(方向一致),如闭合的开关。 负载的平均电流取决与每周期内,Triac处于导通的时间多少,可以调整,与SCR类似,长,电流大,短,电流小。 Triac的导通角度可达360°,可做全波控制(与SCR半波不同)。 Triac优于机械手开关:无接触反弹、无接触火化、动作较迅速、更准确地控制电流。 5-2 Triac的波形(Triac Waveform)

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

单片机在市电过零检测并驱动可控硅进行 功率调节的应用综述 摘要:利用可控硅可实现通过控制低电压直流电使高电压交流电开启或关闭,相比继电器的控制方法可控硅具有更经济、无高次谐波产生、不干扰通讯设备的优点,并且通过对市电是否过零进行检测,通过可编程器件触发可控硅可以实现功率调节。本文综述了一些常用的市电过零检测的方法,及如何通过单片机产生中断来触发可控硅进行功率的调节。 关键词:单片机;可控硅;过零检测;功率调节 由于单片机体积小功耗低数据处理速度快的优点在工业现场被广泛的使用。单片机在工业流程控制的应用,与手动控制相比,它有准确、及时、迅速等诸多方面的优点。市电通过过零检测电路检测到过零时,电路向单片机发出中断申请,单片机通过定时器延时选择导通角从而调节可控硅导通系数。通过这种方法不仅能控制交流电的通断,并且还能调节电路的输出功率。笔者通过工程试验提出以下市电过零检测的方法,和单片机控制可控硅的调节功率的方案。 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;

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