; HSYNC_GEN 标准行同步信号发生器
; 作者:泉州广播电视台 庄智慧
;
; 时钟频率:27.000MHz,STC-Y3指令集
; 适用于STC12C系列单片机
HSYN EQU P1.0
VBNK EQU P1.1 ;场脉冲测试口
ORG 0000H
ACALL MAIN
ORG 0100H
MAIN: ; 主程序循环
FIELD_EVEN: ; 偶数场开始
MOV R0,#005 ;2 CLK ;行消隐前肩 1.3us 2 CLK
DJNZ R0,$ ;4 CLK x 5 ;后肩在子程序中
NOP ;1 CLK ;分立的前肩便于调整时序
NOP
NOP
MOV R1,#200 ; 为Loop M4设置初值
MOV R2,#87 ; 为Loop M5设置初值
MOV R3,#17 ; 为Loop M3设置初值
CLR VBNK
ACALL GEN_H_EQU ;场消隐期/开始,共25行
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_TOOTH ;场同步及齿脉冲
ACALL GEN_TOOTH
ACALL GEN_TOOTH
ACALL GEN_TOOTH
ACALL GEN_TOOTH
ACALL GEN_H_EQU ;场同步结束/后均衡
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_H_EQU
ACALL GEN_H_HALF_MUTE ;半个扫描行
LOOPM3: ACALL GEN_H_SYNC
ACALL GEN_H_FULL
MOV R0,#007 ;2 CLK ;前肩: 35 CLK 1.3us
DJNZ R0,$ ;4 CLK x 7
NOP ;1 CLK
NOP
SETB VBNK
DJNZ R3, LOOPM3 ;场消隐结束
LOOPM4: ACALL GEN_H_SYNC ;有效行开始
ACALL GEN_H_FULL ;行正程
NOP
MOV R0,#007 ;2 CLK ;行消隐前肩: 35 CLK 1.3us
DJNZ R0,$ ;4 CLK x 7
NOP ;1 CLK
NOP
NOP
NOP
NOP
DJNZ R1, LOOPM4
LOOPM5: ACALL GEN_H_SYNC
ACALL GEN_H_FULL
MOV R0,#007 ;2 CLK ;行消隐前肩: 35 CLK 1.3us
DJNZ R0,$ ;4 CLK x 7
NOP ;1 CLK
NOP
NOP
NOP
NOP
NOP
DJNZ R2, LOOPM5
ACALL GEN_H_SYNC
ACALL GEN_H_HVALID ;偶场结束于半个有效行
FIELD_ODD: ; 奇数场开始
MOV R0,#005 ;2 CLK ;前肩: 35 CLK 1.3us
DJNZ R0,$ ;4 CLK x 7
NOP ;1 CLK
NOP
NOP
MOV R1,#200 ; 为Loop M0设置初值
MOV R2,#87 ; 为Loop M1设置初值
MOV R3,#17 ; 为Loop M2设置初值
CLR VBNK
ACALL GEN_H_EQU ;场消隐期/开始
ACALL GEN_H_EQU