RRC A MOV C,11H RRC A MOV 20H,A LCALL DISPLAY AJMPMAIN RST_DS18B20: SETB P3. 7 NOP CLR P3. 7 MOV R1, #3 RST1:MOV R0, #110 DJNZ R0, $ DJNZ R1,RST1 SETB P3. 7 NOP NOP
MOV R0, #25H RST2:JNB P3. 7,RST3 DJNZ R0,RST2 LJMP RST4 RST3: SETB FLAG LJMP RST5 RST4:CLR FLAG
11
LJMP RST7
RST5:MOV R0, #115 RST6:DJNZ R0, $ RST7: SETB P3. 7 RET
WR_DS18B20: MOV R2, #8 CLR C
WR1: CLR P3. 7 MOV R3, #6 DJNZ R3, $ RRC A MOV P3. 7,C MOV R3, #25 DJNZ R3, $ SETB P3. 7 NOP
DJNZ R2,WR1 SETB P3. 7 RET
RD_DS18B20: MOV R4, #2 MOV R1, #20H READ1:
;写数据子程序
12
;读数据子程序MOV R2, #8 READ2: CLR C SETB P3. 7 NOP NOP CLR P3. 7 NOP NOP NOP SETB P3. 7 MOV R3, #9 READ3: DJNZ R3,READ3 MOV C, P3. 7 MOV R3, #23 READ4: DJNZ R3,READ4 RRC A
DJNZ R2,READ2 MOV @R1,A INC R1 DJNZ R4,READ1 RET
13
3.2 电机调速与控制模块程序流程 3.2.1 程序设计原理
采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内可控硅导通和关断交流完整全波信号的个数来调节负载功率,进而达到调速的目的。
由于INT0信号反映工频电压过零时刻,因此只要在外中断0的中断服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量n进行计数和判断,即每中断一次,对n进行减1计数,如果n不等于0,保持控制电平为“1”,继续打开控制门;如n=0,则使控制电平复位为“0”,关闭控制门,使可控硅过零触发脉冲不再通过。这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达到按控制量控制的效果,实现速度可调。
1)回路控制执行程序。主回路控制执行程序的任务是初始化数据存储单元,确定电机工作参数nmin /nmax,并将其换算成“有效过零脉冲”的个数;确定中断优先级、开中断,为了保证正弦波的完整,工频过零同步中断INT0确定为高一级的中断源。
2)断服务程序,执行中断服务程序时,首先保护现场,INT0中断标志置位,禁止主程序修改工作参数,然后开始减1计数,判断是否关断可控硅,最后INT0中断标志位清零,还原初始化数据,恢复现场,中断返回。(设1秒钟通过波形数N=100)
中断流程图如图3-2所示:
14
图3-2 电机控制模块中断响应流程图
3.2.2 主要程序
外中断INT0的部分中断响应程序如下: ORG 0003H INTD0: PUSH PUSH PUSH PUSH SETB MOV
ACC PSW DPH DPL 24H.0 A, 5FH
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机电风扇智能控制系统设计(3)在线全文阅读。
相关推荐: