导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→音频视频切换器相关讨论。

* 68620: 音频视频切换器相关讨论。

   entertop 
entertop发表的帖子 

 音频视频切换器相关讨论。
我现在想做一个视频音频切换的小东西。
计划是用at89c51,通过i2c来控制TEA6420(audio)和TEA6415C(video).
我的目的是:把一根信号线在不同的时间让不同的电视使用。信号线包括二根音频线,一根视频线。我所用的线路很简单。大家可以,一看就明白那些电路。

我的输入选择20口,六个输出13-18
单片机程序:
VSCL BIT P2^6
VSDA BIT P2^7
SLA EQU 50H
NUMBYT EQU 51H
MTD EQU 52H
MRD EQU 52H
SLAW EQU 06H

ORG 00H
LJMP MAIN
ORG 23H
LJMP KSCAN
ORG 30H
MAIN:
MOV A,#0FFH
MOV P2,A
CLR P2^0

CLR EA
MOV R1,#MTD;这里想让他们六个同时用一个信号
MOV @R1,06H
INC R1
MOV @R1,0EH
INC R1
MOV @R1,16H
INC R1
MOV @R1,1EH
INC R1
MOV @R1,26H
INC R1
MOV @R1,2EH
MOV NUMBYT,#6
MOV SLA,#SLAW
LCALL WRNBYT
SETB EA

KSCAN: 
MOV A,#0FFH;键盘扫描程序
MOV P1,A
MOV A,P1
JZ KSCAN
CALL T12MS
MOV A,P1
JZ KSCAN
CALL T12MS
JNB ACC.0,AAAA
JNB ACC.1,BBBB
JNB ACC.2,CCCC
JNB ACC.3,DDDD
JNB ACC.4,ERROR
JNB ACC.5,ERROR
JNB ACC.6,ERROR
JNB ACC.7,ERROR
JMP KSCAN
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AAAA:
MOV A,0FFH;点亮指示灯
MOV P2,A
CLR P2^0
;*******************
CLR EA;将20口和18口通
MOV R1,#MTD
MOV @R1,06H
MOV NUMBYT,#1
MOV SLA,#SLAW
LCALL WRNBYT
SETB EA
JMP KSCAN
;----------------------------
BBBB:
MOV A,0FFH
MOV P2,A
CLR P2^1
;******************* 
CLR EA
MOV R1,#MTD
MOV @R1,0EH
MOV NUMBYT,#1
MOV SLA,#SLAW
LCALL WRNBYT
SETB EA
JMP KSCAN
;----------------------------
CCCC:
MOV A,0FFH
MOV P2,A
CLR P2^2
;*******************
CLR EA
MOV R1,#MTD
MOV @R1,16H
MOV NUMBYT,#1
MOV SLA,#SLAW
LCALL WRNBYT
SETB EA
JMP KSCAN
;----------------------------
DDDD:
MOV A,0FFH
MOV P2,A
CLR P2^3
;******************* 
CLR EA
MOV R1,#MTD
MOV @R1,1EH
MOV NUMBYT,#1
MOV SLA,#SLAW
LCALL WRNBYT
SETB EA
JMP KSCAN
;----------------------------
ERROR:
JMP KSCAN

T12MS:
MOV R7,#18H
D1: MOV R6,#0FFH
D2: DJNZ R6,D2
DJNZ R7,D1
RET

;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
;Virtual I2C bus program 
STA:    SETB VSDA;启动I2C总线
     SETB VSCL
     NOP
     NOP
     NOP
     NOP
     CLR VSDA
     NOP
     NOP
     NOP
     NOP
     CLR VSCL
     RET 
;*********************************************************************************
STOP: 
     CLR VSDA ;停止I2C总线数据传送
     SETB VSCL
     NOP
     NOP
     NOP
     NOP
     SETB VSDA
     NOP
     NOP
     NOP
     NOP
     CLR VSDA
     CLR VSCL
     RET

MACK: 
     CLR VSDA ;发送应答位
     SETB VSCL
     NOP
     NOP
     NOP
     NOP 
     CLR VSCL
     SETB VSDA
     RET 

MNACK: 
     SETB VSDA ;发送非应答位
     SETB VSCL
     NOP
     NOP
     NOP
     NOP
     CLR VSCL
     CLR VSDA
     RET 

CACK:   SETB VSDA ;应答位检查
     SETB VSCL
     CLR F0
     MOV C,VSDA
     JNC CEND
     SETB F0 
CEND:   CLR VSCL
     RET 

WRBYT:  MOV R0,#08H ;向VSDA线上发送1个数据字节 
WLP:    RLC A
     JC WR1
     AJMP WR0 
WLP1:   DJNZ R0,WLP
     RET 
WR1:    SETB VSDA
     SETB VSCL
     NOP
     NOP
     NOP
     NOP
     CLR VSCL
     CLR VSDA
     AJMP WLP1 
WR0:    CLR VSDA
     SETB VSCL
     NOP
     NOP
     NOP
     NOP
     CLR VSCL
     AJMP WLP1 

RDBYT:  MOV R0,#08H ;从VSDA线上读取1个数据字节 
RLP:    SETB VSDA
     SETB VSCL
     MOV C,VSDA
     MOV A,R2
     RLC A
     MOV R2,A
     CLR VSCL
     DJNZ R0,RLP
     RET 

WRNBYT: MOV R3,NUMBYT ;虚拟I2C总线发送N个字节数据
     LCALL STA
     MOV A,SLA
     LCALL WRBYT
     LCALL CACK
     JB F0,WRNBYT
     MOV R1,#MTD 
WRDA:   MOV A,@R1
     LCALL WRBYT
     LCALL CACK
     JB F0,WRNBYT
     INC R1
     DJNZ R3,WRDA
     LCALL STOP
     RET 
RDNBYT: MOV R3, NUMBYT ;模拟I2C总线接收n个 ;字节数据
     LCALL STA
     MOV A,SLA
     LCALL WRBYT
     LCALL CACK
     JB F0,RDNBYT 
RDN:    MOV R1,#MRD 
RDN1:   LCALL RDBYT
     MOV @R1,A
     DJNZ R3,ACK
     LCALL MNACK
     LCALL STOP
     RET 
ACK:    LCALL MACK
     INC R1
     SJMP RDN1

END

我有点问题是,我控制的时候,六个信号输出全部都有信号,但是变的黑乎乎的,好像程序没有用,信号都干扰过去了。

我的信号是卫星数字信号。大概3000MHZ,不知道有没有人感兴趣一起做做看。
听说用MAX459也可以,不知道行吗?有一个MAX4137好像也不错。

搞的现在很矛盾。
希望高手能指点一二:top00072@chinaren.com




发表时间:2004年12月10日11:06:17

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  68621.[详细]如果我能做成功,我一定将做好的所有东西和大家一起分享:)/做出来再说吧:)..
摘要:......(无内容)
- [entertop][866次] 2004年12月10日

[上一篇帖子]:如果我能做成功,我一定将做好的所有东西和大家一起分享:)/做出来再说吧:)
[下一篇帖子]:C51部分语句跳过不执行!!如题 大侠指点啊!!!