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

合集下载

单片机控制可控硅Word文档

单片机控制可控硅Word文档

1 调光控制器设计在日常生活中,我们常常需要对灯光的亮度进行调节。

本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。

双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。

所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。

调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。

这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。

1.1 硬件部分本调光控制器的框图如下:查看原图(大图)控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL的AT89C51单片机。

驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。

继电器由于是机械动作,响应速度慢,不能满足其需要。

可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。

所以这里选用的是可控硅。

负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。

1.2 软件部分要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。

当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。

延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。

由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。

理论上讲,延时时间应该可以是0~10ms内的任意值。

在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。

基于89C2051单片机控制的可控硅调速电路设计

基于89C2051单片机控制的可控硅调速电路设计

基于89C2051单片机控制的可控硅调速电路设计本文主要介绍一种基于89C2051单片机控制的可控硅调速电路设计。

一、可控硅调速电路的基本原理可控硅调速电路是利用可控硅在导通状态时的阻值很小的特性,通过控制相位来控制电路中的电流大小,从而实现电机的调速。

其电路结构简单,成本低廉,广泛应用于工业控制中。

二、89C2051单片机的介绍89C2051单片机是一种高性能、低功耗的8位单片机,具有片内Flash存储器、片内RAM、定时/计数器、串行通信口等多种功能。

其特点是:易学易用,具有较高的可编程性和可扩展性。

三、可控硅调速电路设计步骤1.设计原理图可控硅调速电路的原理图分为两部分,分别是控制单元和功率单元。

其中,控制单元采用89C2051单片机,通过调节单片机端口的高低电平,控制可控硅的触发,从而控制电路中的电流大小。

功率单元包括变压器、可控硅和电机,其中变压器将交流电压转换成适合电机工作的交流低压,可控硅则控制交流电压的大小,从而实现电机的调速。

2.电路元件选型电路中各元件的选型需要根据具体的需求进行选择。

变压器需要选择符合电机工作电压和功率的产品;可控硅则需要根据具体的负载电流进行选择;电机也需要根据工作条件和负载要求进行选择。

3.编写程序编写程序需要根据具体的需求进行设计。

首先需要进行可控硅触发角度的计算,确定电路中可控硅的触发时机。

然后通过编写程序,控制单片机端口的高低电平,实现对可控硅的触发控制,从而控制电路中的电流大小,实现电机的调速。

四、可控硅调速电路设计注意事项1.元件选型时需要注意每个元件的参数和相互匹配的要求,以确保电路的稳定性和可靠性。

2.编写程序时需要注意程序的正确性和有效性,以确保控制的准确性和效率。

3.在搭建电路时需要注意电路的安全性和可靠性,以避免电路故障和安全事故的发生。

以上就是基于89C2051单片机控制的可控硅调速电路设计的相关介绍。

通过合理的电路设计和程序编写,可以实现电机的调速,并在工业生产和控制中得到广泛应用。

单片机控制可控硅

单片机控制可控硅

单片机控制可控硅 This model paper was revised by LINDA on December 15, 2012.1 调光控制器设计在日常生活中,我们常常需要对灯光的亮度进行调节。

本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。

双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。

所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。

调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。

这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。

1.1 硬件部分本调光控制器的框图如下:查看原图(大图)控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL 的AT89C51单片机。

驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。

继电器由于是机械动作,响应速度慢,不能满足其需要。

可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。

所以这里选用的是可控硅。

负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。

1.2 软件部分要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。

当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。

延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。

由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。

利用单片机实现可控硅导通角控制

利用单片机实现可控硅导通角控制

第21卷第2期辽宁工学院学报V ol .21 N o .22001年4月JOU RNAL O F L I A ON I N G I N ST ITU T E O F T ECHNOLO GYA p r .2001α文章编号:100521090(2001)022*******利用单片机实现可控硅导通角控制陈晓英1,王德江1,陈骁峰2(1.辽宁工学院信息科学系与工程系,辽宁锦州 121001;2.锦州消防安全仪器总厂,辽宁锦州 121000)摘 要:介绍了由单片机控制的可控硅电路,该电路运用外部中断获得同步信号,用定时器做导通角控制,并给出实用程序。

关键词:导通角;同步信号;触发脉冲;消弧线圈中图分类号:TM 133 文献标识码:BCon trollable Sil i con D ucti n g Angel Con trolwith M onol ith i c M i croco mputerCH EN X iao 2ying 1,WAN G D e 2jiang 1,CH EN X iao 2feng2(r m ati on Science &Engineering D ep t .of L iaoning Institute of Technol ogy ,J inzhou 121001,China 2.J inzhou F ire Safety Instrum ent General P lant ,J inzhou 121000,China )Key words :conducting angel ;sync signal ;trigger pulse ;crow bar coilAbstract :T he controllable silicon circuit con trolled by monolith ic m icrocomputer is introduced ,w h ich adop ts ex ternal interrup t to obtain sync signals and contro ls conducting angel w ith a ti m er .T hep ractical p rogra m s are given ,either . 在小电流接地系统故障选线与补偿装置中,消弧线圈的电感量可根据接地点电容电流大小做适当的调解,使消弧线圈电流与接地点电容电流大小相等,方向相反,以达到最佳补偿效果。

单片机控制可控硅

单片机控制可控硅

1 调光控制器设计在日常生活中,我们常常需要对灯光的亮度进行调节。

本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。

双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。

所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。

调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。

这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。

1.1 硬件部分本调光控制器的框图如下:查看原图(大图)控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL的AT89C51单片机。

驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。

继电器由于是机械动作,响应速度慢,不能满足其需要。

可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。

所以这里选用的是可控硅。

负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。

1.2 软件部分要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。

当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。

延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。

由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。

理论上讲,延时时间应该可以是0~10ms内的任意值。

在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。

单片机控制可控硅

单片机控制可控硅

1 调光控制器设计在日常生活中,我们常常需要对灯光的亮度进行调节。

本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。

双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。

所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。

调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。

这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。

1.1 硬件部分本调光控制器的框图如下:查看原图(大图)控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL的AT89C51单片机。

驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。

继电器由于是机械动作,响应速度慢,不能满足其需要。

可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。

所以这里选用的是可控硅。

负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。

1.2 软件部分要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。

当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。

延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。

由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。

理论上讲,延时时间应该可以是0~10ms内的任意值。

在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。

可控硅调压工作原理

可控硅调压工作原理

可控硅调压工作原理
可控硅调压是一种电力调节设备,通过控制可控硅的导通角控制电流的大小,从而实现对电压的调节。

具体工作原理如下:
1. 可控硅的导通控制:可控硅由两个PN结组成,当施加一个
正向偏置电压时,只有当继续施加一个正向的触发信号时,才能使可控硅导通。

这个触发信号会使可控硅的PN结之间的空
间电荷区域趋于消失,从而将可控硅从绝缘状态转变为导通状态。

2. 脉宽调制:可控硅的导通角度的大小可以通过控制触发信号的宽度来调节,这被称为脉宽调制。

控制触发信号的宽度越长,可控硅导通的角度就越大,电流也就越大。

3. 调节输出电压:可控硅通过控制导通角度来调节电流,从而影响电路中的电压值。

当可控硅导通的角度较大时,电流越大,电压也就越高;当可控硅导通的角度较小时,电流较小,电压也就较低。

4. 反馈控制:为了使调节电压更加精确,可控硅调压通常采用反馈控制。

反馈控制通过将电路中的输出电压与设定的目标电压进行比较,然后调整触发信号的宽度,使输出电压达到设定值。

总结起来,可控硅调压通过控制可控硅的导通角度,从而调节电流大小,进而影响电路中的电压值。

通过反馈控制,可实现精确的电压调节。

stc单片机的可控硅调压调光程序

stc单片机的可控硅调压调光程序

STC单片机是一种常用的嵌入式微控制器,具有性能稳定、扩展性强等特点。

在实际的控制系统中,可控硅是一种重要的电器元件,常用于调光、调压等场合。

本文将介绍如何利用STC单片机编写可控硅调压调光程序,以实现对灯光亮度和电压的精确控制。

一、可控硅调压调光原理1. 可控硅是一种电子开关器件,其导通角和关断角可通过控制电压来调整。

通过改变可控硅的导通角和关断角,可以实现对交流电压的调节,进而实现调压和调光的功能。

2. 在调光方面,通过控制可控硅的导通角和关断角,可以实现对灯光亮度的精确调节。

通过改变可控硅的触发脉冲宽度和频率,可以实现不同亮度的调光效果。

二、STC单片机的应用1. STC单片机具有丰富的外设接口和强大的计算能力,适用于各种控制系统的设计。

2. 在可控硅调压调光程序中,STC单片机可以通过定时器模块产生精确的触发脉冲,控制可控硅的导通角和关断角,实现对电压和灯光亮度的精确调节。

三、STC单片机控制可控硅的实现1. 程序框图设计:在STC单片机的开发环境中,设计可控硅调压调光的程序框图,包括定时器模块的初始化、脉冲宽度的调节、脉冲频率的调节等内容。

2. 代码编写:根据程序框图,编写STC单片机的控制程序,包括定时器模块的设置、中断服务程序的编写等内容。

3. 调试测试:将编写好的程序下载到STC单片机中,并通过实验评台连接可控硅和灯泡,进行调试测试,验证程序的正确性和稳定性。

四、可控硅调压调光程序的优化1. 采用PWM调光方案:利用STC单片机的PWM输出功能,可以实现对可控硅触发脉冲的精确控制,提高调光的稳定性和精度。

2. 优化触发脉冲生成算法:通过优化触发脉冲的生成算法,可以减小程序的运行时间,提高系统的响应速度。

3. 加入过压、过流保护:在程序中加入过压、过流保护机制,保护可控硅和灯泡免受损坏。

五、总结本文介绍了利用STC单片机编写可控硅调压调光程序的原理、应用和实现方法,以及程序的优化方案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告可控硅导通角的控制可控硅导通角的控制设计要求■导通时间可调,按键输入设置,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总结与体会经过将近三周的单片机课程设计,终于完成了我的可控硅导通角控制的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

相关文档
最新文档