当前位置:文档之家› 单片机课程设计报告--可控硅导通角的控制

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

单片机课程设计报告可控硅导通角的控制可控硅导通角的控制设计要求■导通时间可调,按键输入设置,LED数码直读显示■精度误差小于50us摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍由单片机怎样去控制可控硅的导通角,可控硅在日常生活中的应用是非常广泛的,种类繁多,有温控可控硅和光控可控硅等多种,本设计使用的是MOC3021光敏双向可控硅,去控制交流电正负半周导通的时间。

关键词:单片机,数字控制,同步信号,数码管,可控硅,三端稳压器7805,MOC3021,P521,AT89C20511 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中可控硅导通角的控制就是一个典型的例子。

本设计用光耦(P521)提取市电过零点的同步信号,由单片机控制可控硅的导通角,以实现被控对象(如灯泡)功率的数字化调节。

(本设计用功率电阻代表被控对象)2 总体设计方案总体设计框图图(1)总体设计方框图主控制器单片机通过外部中断口提取交流电过零点的信号,再依外部按键设置的数,通过一定的算法转化为内部定时器的定时常数,去控制可控硅交流电导通的时间。

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

3.2显示电路方案一:采用2位共阳LED数码管,从P1口输出段码,动态显示。

图(4)显示电路方案二:采用2位共阳LED数码管,从P1口输出段码,硬件译码显示。

如采用译码芯片CD4511,可以省掉四个I/O口,而且软件设计也比较简单,但要增加硬件成本。

最终方案:考虑到硬件的成本,以及I/O的相对轻松,最终采用方案一,只是稍微增加了软件的设计难度。

3.3同步信号提取在交流设备中, 正半周与负半周都要受控的设备比较多, 这就要求在一个周期内出现两个同步脉冲。

图(5)同步信号方案一:将同步交流信号整流, 使后一个过零点的波形与前一个过零点的波形一致,如下图:图(6)同步信号的提取电路及电源电路 方案二:使用二极管单向导通性,如下图:图(7)同步信号的提取 最终方案:由于电路要用到电源,直接从整流后的电路中提取同步信号即可,不要用到两片光耦芯片P521,减少硬件开销,降低电路复杂性,所以选用方案一。

3.4可控硅控制电路方案一:采用光电耦合隔离触发,可满足被控对象大功率的需求,如下图:TR IB TA086001246I C 4MOC 3021VT59012+5VR 141KP3.0R 15240R 16270R 171KR 184Ω7R LC12103/400VAC 48VAC 48V图(8)可控硅控制电路1 方案二:采用单独一个光耦隔离,当I/O 口为低电平时,光耦导通,可满足负载小功率的要求,如下图:图(9)可控硅控制电路2最终方案:由于本设计只要求对小功率负载的控制,所以选用方案二。

4模块电路原理与参数计算4.1显示电路原理:如图(4)所示,通过开启位选口P3.0,P3.1选通相应数码管,通过P1口送显示数据,以每10mS 送一位数码,即频率为100Hz,利用人的视觉暂留特性,让人觉得是连续点亮。

参数:为使共阳数码管有足够的亮度,其电流应有几mA,选取8mA,所以根据下列公式:R=(5V-2.4V)÷8mA=325Ω≈330ΩR8~R15均选用330ΩR6、R7都选用为1 KΩ,保证PNP管基集电流不要太大就行。

4.2同步信号提取原理:原理图如图(5)所示,50HZ交流电经整流后的波形如U1,在U1每次的过零点处,光耦不导通,在P3.2口输出高电平,产生一个同步脉冲。

依此下去,在P3.2产生一系列的同步脉冲,频率为交流电的2倍,即100HZ。

参数:图(6)电路主要是确定R1的取值。

交流输入为7.5V,其峰值电压约为6.75V为使光耦能够导通工作,需有大于1mA的电流流过光耦输入端,最大不超过20mA的电流,又光耦输入端的压降约为1V8,固输入限流电阻R1最大为:(6.75V-1.8V)÷0.020A=248Ω<R1<(6.75V-1.8V)÷0.001A=4950Ω为了保证过零点的脉宽尽量小,R1应尽量取小,取R1=1KΩ4.3可控硅控制电路原理:如图(9)所示,用I/O口P3.7去控制光耦MOC3021内部二极管的通断,再由MOC3021去控制可控硅的导通。

参数:为使M OC3021内部发光二极管有足够光强,其电流用10mA,有R4=(5-1.2)/0.01Ω,所以R4取330Ω,为保证功率电阻R5电流不大于100mA,取470Ω/2W 4.3电源电路原理:如图(6)单相桥式整流,电容滤波,7805稳压。

参数:整流二极管选用4007,C3取1000uf/35V,C6取470uf/35V,保证T=3---5RC.软件设计5.1主程序流程图:按键处理:)5.2中断服务子程序流程图:实现的功能:(1)外部中断0用来检测市电的同步脉冲; (2)T1用来产生10ms 的循环;(3)T0用来产生可控硅延时导通的中断。

外中断INT0中断流程图 定时器T0中断流程图系统调试(1) 同步脉冲的测试测试方法:用示波器观察单片机(AT89C2051)的P3.2的波形,并与市电的正弦波进行对比。

测试结果:测得P3.2口的波形为窄脉冲,约为100Hz ,频率比市电50HZ 大一倍。

其中测量得:市电的半周期为10mS ,同步脉冲脉冲宽度为1.44mS 。

(1)冲击信号的测试测试方法:用示波器观测单片机(AT89C2051)的P3.0的波形,即MOC3021的2脚。

测试结果:测得冲击信号为负脉冲,波形如下(3)可控硅导通角的测试测试方法:用示波器观测负载RL两端的电压波形。

当设置数码管导通时间为5.0mS时,从示波器测得数据为4.9mS;当设置时间为3.2mS时,测得数据为3.1mS;几组数据均可看出在误差范围内数码管导通时间与负载RL两端的导通时间使一致的,故符合要求。

测试结果:测得可控硅导通角范围为0.1mS——9.0mS。

因定时器T1是在INT0下降沿产生后才使开始计时,而同步脉冲脉冲宽度为1.44mS,所以在半个周期10mS内平均有0.7ms左右的滞后,再加上中断的启动、软件执行和芯片延时时间的误差,所以可控硅导通角最大范围为9.0mS是符合要求的。

评价及感想本设计可以实现较为精确的可控硅导通角的控制,并且波形稳定、清晰。

在本次设计中,从设计构思,画原理图,作硬件电路板,编写程序,下载调试等等都是用心去思考的,这次的课程设计让我发现自己对单片机的学习还有很多的不足之处,比如程序跳转指令的运用还不够灵活、对程序原理框图构思还不够严谨。

对硬件的基础知识的理解还不够透彻.通过本次的学习让我对程序检查错误有了更进一步的认识.5.3程序清单:CS0 BIT P3.0 ;高位数码管选通位CS1 BIT P3.1 ;低位数码管选通位KTZ BIT P3.3 ;调整键KZJ BIT P3.5 ;增加键KJS BIT P3.4 ;减少键DTJ BIT P3.7 ;控制可控硅的导通MLL BIT P1.5 ;控制低位小数点HKTZ BIT 22H.0 ;键下标志HKZJ BIT 22H.1HKJS BIT 22H.2KZJF BIT 22H.3 ;成功按完一次键标志KTZF BIT 22H.4KJSF BIT 22H.5FLASH EQU 20HSTA0 EQU 38H ; 状态寄存器MINH EQU 31H ; 数码管高位寄存器MINL EQU 32H ; 数码管低位寄存器TCN1 EQU 33H ; 存闪烁延时常数TCN2 EQU 34H ;存去抖延时常数TCN3 EQU 39HTCN4 EQU 37HTLL EQU 35H ;定时器T0的定时常数THH EQU 36HTL EQU 074H ;辅助定时常数的计算65536-(T/2-脉宽/2)TH EQU 0DCHORG 0000HAJMP MAINORG 0003HAJMP INT0ORG 000BHAJMP TIME0ORG 0030H初化始:MAIN: MOV SP,#50HMOV TMOD,#11HMOV STA0,#00HMOV TCN1,#32H CLR CS0CLR CS1CLR KTZFCLR KZJFCLR KJSFSETB EA主程序:LOOP: MOV TH1,#0D8HMOV TL1,#0F0HSETB TR1LCALL SAOMLCALL STALCALL DISPJNB TF1,$CLR TF1LJMP LOOP按键扫描:SAOM: SETB KTZNOPJB KTZ,ANJ00DJNZ TCN2,ANJ00MOV TCN2,#02HSETB HKTZANJ00: JNB KTZ,ANJ1MOV TCN2,#02HJNB HKTZ,ANJ1CLR HKTZSETB KTZFANJ1: SETB KZJNOPJB KZJ,ANJ11DJNZ TCN3,ANJ11MOV TCN3,#02HSETB HKZJANJ11: JNB KZJ,ANJ2MOV TCN3,#02HJNB HKZJ,ANJ2CLR HKZJSETB KZJFANJ2: SETB KJSNOPJB KJS,ANJ22DJNZ TCN4,ANJ22MOV TCN4,#02HSETB HKJSANJ22: JNB KJS,TURN0MOV TCN4,#02HJNB HKJS,TURN0CLR HKJSSETB KJSFTURN0: RET状态转换:STA: JNB KTZF,WAYCLR KTZFMOV A,STA0INC ACJNE A,#04H,TURN1MOV STA0,#00HSJMP WAYTURN1:MOV STA0,AWAY: MOV A,STA0RL AMOV DPTR,#TAB0JMP @A+DPTRTAB0: AJMP WAY0AJMP WAY1AJMP WAY2AJMP WAY3WAY0: SETB FLASH.0SETB FLASH.1MOV MINH,#00HMOV MINL,#00HRETWAY1: CLR EX0SETB FLASH.1JNB KZJF,JSAOCLR KZJFMOV A,MINHINC ACJNE A,#0AH,CHA MOV MINH,#00HSJMP SANS0 CHA: MOV MINH,ASJMP SANS0 JSAO: JNB KJSF,SANS0CLR KJSFMOV A,MINHCLR CSUBB A,#01HJNC TURN2MOV MINH,#09HSJMP SANS0 TURN2: MOV MINH,A SANS0: JB FLASH.0,TURN3SETB CS0ACALL TURN3RETTURN3: DJNZ TCN1,TURN4MOV TCN1,#32HCPL FLASH.0 TURN4: RETWAY2: SETB FLASH.0JNB KZJF,JSAO1CLR KZJFMOV A,MINLINC ACJNE A,#0AH,CHA1 MOV MINL,#00HSJMP SANS1CHA1: MOV MINL,ASJMP SANS1 JSAO1: JNB KJSF,SANS1CLR KJSFMOV A,MINLCLR CSUBB A,#01HJNC TUR5MOV MINL,#09HSJMP SANS1TUR5: MOV MINL,ASANS1: JB FLASH.1,TUR6 SETB CS1ACALL TUR6RETTUR6: DJNZ TCN1,TUR7MOV TCN1,#32HCPL FLASH.1TUR7: RETWAY3: SETB FLASH.0SETB FLASH.1SETB IT0SETB EX0MOV A,#0AHMOV B,MINHMUL ABADD A,MINLMOV B,#64HMUL ABCLR CADD A,#TLMOV TLL,AMOV A,BADDC A,#THMOV THH,ARET显示:DISP: SETB CS0SETB CS1JB F0,DISP1SETB F0MOV A,MINHMOV DPTR,#TAB1MOVC A,@A+DPTRMOV P1,AJNB FLASH.0,BLAK0CLR CS0BLAK0: RETDISP1: CLR F0MOV A,MINLMOV DPTR,#TAB1MOVC A,@A+DPTRMOV P1,ASETB MLLJNB FLASH.1,BLAK1CLR CS1BLAK1: RETINT0: MOV TH0,THHMOV TL0,TLLSETB TR0SETB ET0RETITIME0: CLR TR0CLR DTJNOPNOPNOPSETB DTJRETITAB1: DB 02H,0C7H,11H,41H,0C4HDB 48H,08H,0C2H,00H,40HEND4总结与体会经过将近三周的单片机课程设计,终于完成了我的可控硅导通角控制的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

相关主题