一种基于51单片机控制的数字视频混合器
PC与单片机通信的数据格式有三种:命令长度+命令号;命令长度+命令号+读数据字节数N+首地址+校验和;命令长度+命令号+写数字字节数N+首地址+数据1+…+数据N+校验和。命令长度、命令号、读u20889写数据字节数N、首地址和数据n(1≤n≤N)都是一字节,用16进制表示。命令长度整个命令格式字节数。校验和=命令号+读数据字节数N+首地址,或者校验和=命令中+写数据字节数N+首地址+数据1+…+数据N。例如:显示附加数字信号1并且1号LED亮,PC发送0x02 0x01;读1号TMC2081的00~03控制存储器,PC发送0x5 0xB 0x4 0x0 0xF;写0x0 0x21 0x1D 0x0到SAA7121的27~2A存储器,PC发送0x9 0xC 0x4 0x27 0x0 0x21 0x1D 0x0 0x13。
在单片机的串口中断子程序中,根据接收到的命令长度判断是否接收到一个完整的命令格式。如果接收到一个完整命令格式就设置标志位FLG1根据这个标志位进入主程序中处理PC命令的程序,由接收到的命令号识别各种PC发送命令。例如,1号命令是显示附加数字信号1并且点亮1号LED,0xC号命令是写SAA7121存储器等。依据接收到的校验和,可以判断接收PC数据的正确性,防止对混合器的错误操作。
用VB6.0设计软件,读写PC的串行口。本文波特率为9600bps,单片机的定时器/计数器2(T2)设定在波特率发生器的工作方式。
3.3 访问TMC2081
TMC2081提供微处理器I/O口,包括读/写控制R/W、片选CS、寄存器选择控制A[2:0]、数据I/O口D[7:0]。通过微处理器I/O口可以访问TMC2081的内部控制存储器,完成对芯片的配置。
参数tPWLCS、tSA、tSD、tHD、tPWHCS、tHA、tDOM的最短要求时间都是ns级。用AT89S8252软件编程可以模拟该端口的读写时序配置TMC2081。
本系统用到两片TMC2081,标记为TMC2081_0和TMC2081_1。AT89S8252的P3.6连TMC2081_0/1的R/W,P2.3连TMC2081_0的CS,P2.4连TMC2081_1的CS,P2[2:0]连TMC2081_0/1的A[2:0],P0[7:0]连TMC2081_0/1的D[7:0]。读写TMC2081_0的A通道存储器的程序如下:
MC2081_0 EQU P2.3
TMC2081_1 EQU P2.4
R_NW EQU P3.6
MOV A,#00H
LCALL WADDRTMC2081_0 ;选中A通道控制寄存器
MOV A,#01H
LCALL WDATMC2081_0 ;写01到A通道控制寄存器
MOV A,#00H
LCALL WADDRTMC2081_0 ;选中A通道控制寄存器
LCALL RDATMC2081_0 ;读A通道控制寄存器的内容
WADDRTMC2081_0:写控制寄存器地址
SETB TMC2081_1
SETB TMC2081_0
SETB R_NW
CLR R_NW
ORL P2,#00000111B
CLR TMC2081_0
SETB R_NW
MOV P0,A
SETB TMC2081_0
RET
WDATMC2081_0: 写数据到控制寄存器
SETB TMC2081_1
SETB TMC2081_0
SETB R_NW
CLR R_NW
ANL P2,#11111101B
CLR TMC2081_0
SETB R_NW
MOV P0,A
SETB TMC2081_0
RET
RDATMC2081_0;读控制寄存器数据
SETB TMC2081_1
SETB TMC2081_0
SETB R_NW
ANL P2,#11111101B
CLR TMC2081_0
MOV A,P0
SETB TMC2081_0
RET
3.4 键控功能
有两个按键1,2。按下1号键,1号LED亮并且显示附加数字信号1;再按1号键,1号LED灭并且附加数字信号1不显示,恢复背景信号。2号键也同样,这样可同时显示两个附加数字信号。信号显示或不显示的过程必须在场消隐的第6个下降沿完成,才能保证显示或不显示的过程不影响背景信号。
行同步在P3.3,场消隐连计数器1(T`1),按键1、2连P1.6、P1.7,P1.4和P1.5向混合器发出控制电平。单片机主程序中以查询方式检测是否有按键按下。如果有,进入按键处理程序,先等待行同步的一个降沿,然后启动计数器T1计数场消隐的下降沿,计数器T1溢出后P1.4或者P1.5取反,向混合器发出控制电平。本系统没有让同步触发外部中断1子程序,只是简单地查询下降沿,实际结果表明查询方式更可靠、方便。
3.5 I2C接口
I2C总线是Philips公司提出的串行通信协议。通过串行数据线(SDA)和串行时钟线(SCL)传输数据。数据传输率最快为400kbps。本系统用P1.0和P1.1代表SDA和SCL,软件模拟I2C协议。
本系统充分利用了AT89S8252的内部资源,不需要外围设备,节省了空间。软件编程简单、实用。这种基于单片机控制的键控数字视频混合器已由师慧公司产品生产成KCM-D2000 Digital Key Control Mixer。实际应用表明该混合器工作稳定、方便,已经取得较好的市场价值。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)