基于单片机的视频信号发生器的设计.docx
- 文档编号:6463533
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:28
- 大小:144.88KB
基于单片机的视频信号发生器的设计.docx
《基于单片机的视频信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的视频信号发生器的设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于单片机的视频信号发生器的设计
目录
1.设计原理…………………………………………………………………………1
2.设计内容…………………………………………………………………………1
3.设计方法…………………………………………………………………………2
3.1AT89C2051工作过程…………………………………………………………2
3.2软件设计思想和流程图………………………………………………………4
3.3系统总程序……………………………………………………………………5
4设计总结…………………………………………………………………………19
5参考资料……………………………………………………………………………19
1.设计原理
本课程设计所涉及到的彩条信号发生器,是利用单片机产生序列行、场同步信号和R、G、B三基色信号,然后输入给视频编码芯片AD722产生白、黄、青、绿、紫、红、蓝、黑8种颜色的彩色条状图像信号。
系统电路原理图:
图1.1彩条信号发生器系统框图
2.设计内容
根据我的设计图形,整幅画面可分为7个部分,每部分41行,共7x41=287行。
而且每一行要有80个机器周期,其中13个周期固定不变,其余67个周期按需要分配颜色周期。
各块的颜色分配如下图所示。
图1.2图像各部分颜色分配
第①部分:
63白
第②部分:
14白+42红+7白
第③部分:
42白+14红+7白
第④部分:
35白+14红+14白
第⑤部分:
28白+14红+21白
第⑥部分:
21白+14红+28白
第⑦部分:
14白+14红+35白
第⑧部分:
14白+42红+7白
第⑨部分:
63白
3.设计方法
3.1AT89C2051工作过程
AT89C2051输出P1
数据
机器周期数
备注
第623行的行同步
00001000
00000000
6
34
第623.5行开始
5个均衡脉冲
00000100
00000000
3
37
共重复5次
第1行开始
5个开槽脉冲
00000100
00000000
34
6
(第一场开始)
共重复5次
第2.5行开始
5个均衡脉冲
00000100
00000000
3
37
共重复5次
第6行开始
18个行同步
00001000
00000000
6
74
共重复18次
第24行开始
287个彩条行
00001000
00000000
01110000
00000000
6
7
64
3
共重复41次
00001000
00000000
01110000
00010000
01110000
00000000
6
7
12
40
12
3
共重复41次
00001000
00000000
01110000
00010000
01110000
00000000
6
7
28
8
28
3
共重复41次
00001000
00000000
01110000
00010000
01110000
00000000
6
7
20
24
20
3
重复41次
00001000
00000000
01110000
00010000
01110000
00000000
6
7
28
8
28
3
重复41次
00001000
00000000
01110000
00010000
01110000
00000000
6
7
8
48
8
3
重复41次
00001000
00000000
01110000
00000000
6
7
64
3
重复41次
第311行开始
5个均衡脉冲
00000100
00000000
3
37
共重复5次
第312.5行开始
5个开槽脉冲
00000100
00000000
34
6
(第二场开始)
共重复5次
第316行开始
5个均衡脉冲
00000100
00000000
3
37
共重复5次
空半行
00000000
40
第319行开始
17个行同步
00001000
00000000
6
74
共重复17次
第336行开始
287个彩条行
同第一场
同第一场
共287行,
然后接第一场第623行的行同步
3.2软件设计思想和流程图
电视机采用隔行扫描的方式,即一帧图像分成两场。
因为彩条图像每一部分的每一行、每一场图像是一样的,程序设计时,应当采用循环的方式,使程序结构化,小型化。
并且,严格按照信号脉冲的宽度,根据指令周期的不同,选用合适的指令。
程序流程图如下:
下一场
NY
N
N
Y
N
Y
N
Y
彩条开始
图3.1系统程序流程图(未考虑隔行扫描)
3.3系统总程序
ORG0000H
START:
MOVA,#00H
MOVP1,A;初始化清0
MOVIE,#0;禁止中断
MOVSP,#70H;栈区地址
CLRPSW.3;选寄存器组为0组
CLRPSW.4
LOOP:
SETBP1.3;第623行的行同步
D623H:
NOP;开始6个机器周期
NOP
NOP
NOP
MOVR1,#9
CLRP1.3
D34:
NOP;开始34个机器周期
DJNZR1,D34;27
NOP
MOVR2,#5;第623.5行开始5个均衡脉冲
LOOP101:
NOP
NOP
NOP
NOP
SETBP1.2
MOVR1,#10;开始3个机器周期
NOP
CLRP1.2
D37:
NOP;开始37个机器周期
DJNZR1,D37;30
DJNZR2,LOOP101
MOVR2,#5;笫一行开始5个开槽脉冲
LOOP111:
NOP
NOP
NOP
SETBP1.2
MOVR1,#8;开始34个机器周期
D341:
NOP
NOP
DJNZR1,D341;32
CLRP1.2
DJNZR2,LOOP111;开始6个机器周期
MOVR2,#5;笫2.5行开始5个均衡脉冲
LOOP121:
NOP
NOP
SETBP1.2
MOVR1,#8;开始3个机器周期
NOP
CLRP1.2
D371:
NOP;开始37个机器周期
MOVR0,#18;笫6行开始的18个行同步
DJNZR1,D371;32
DJNZR2,LOOP121
LOOP181:
MOVR1,#2
NOP
SETBP1.3
D6H:
DJNZR1,D6H;开始6个机器周期
MOVR1,#17
CLRP1.3
D74:
NOP;开始74个机器周期
NOP
DJNZR1,D74;68
NOP
DJNZR0,LOOP181
MOVR0,#39
;第24行开始的287个彩条行(255+32)
NOP
LOOP1:
SETBP1.3
NOP
NOP
NOP;开始6个机器周期
MOVR1,#2
NOP
CLRP1.3
C1023H:
DJNZR1,C1023H;开始7个机器周期
MOVR1,#30
MOVA,#70H
MOVP1,A
C1032H:
DJNZR1,C1032H;开始63个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP1
LOOP2:
SETBP1.3
MOVR1,#2;开始6个机器周期
AD1026H:
DJNZR1,AD1026H
CLRP1.3
MOVR1,#2;开始7个机器周期
AD1027H:
DJNZR1,AD1027H
MOVA,#70H
MOVP1,A
MOVR1,#5
AD1028H:
DJNZR1,AD1028H;开始14个机器周期(白)
MOVA,#10H
MOVP1,A
MOVR1,#18
AD1029H:
DJNZR1,AD1029H;开始42个机器周期(红)
NOP
NOP
NOP
MOVA,#70H
MOVP1,A
MOVR1,#2
AD1030H:
DJNZR1,AD1030H;开始7个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP2
LOOP3:
SETBP1.3
NOP;开始6个机器周期
NOP
NOP
MOVR1,#2
NOP
CLRP1.3
D1031H:
DJNZR1,D1031H;开始7个机器周期
MOVR1,#19
MOVA,#70H
MOVP1,A
D1033H:
DJNZR1,D1033H;开始42个机器周期(白)
MOVR1,#5
NOP
MOVA,#10H
MOVP1,A
D1034H:
DJNZR1,D1034H;开始14个机器周期(红)
MOVR1,#2
NOP
MOVA,#70H
MOVP1,A
AD1039H:
DJNZR1,AD1039H;开始7个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP3
LOOP4:
SETBP1.3
MOVR1,#2;开始6个机器周期
A1040H:
DJNZR1,A1040H
CLRP1.3
MOVR1,#2;开始7个机器周期
AD1041H:
DJNZR1,AD1041H
MOVA,#70H
MOVP1,A
MOVR1,#16
AD1042H:
DJNZR1,AD1042H;开始35个机器周期(白)
MOVA,#10H
MOVP1,A
MOVR1,#5
AD1043H:
DJNZR1,AD1043H;开始14个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#5
AD1048H:
DJNZR1,AD1048H;开始14个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP4
LOOP5:
SETBP1.3
NOP;开始6个机器周期
NOP
NOP
MOVR1,#2
NOP
CLRP1.3
D17H:
DJNZR1,D17H;开始7个机器周期
MOVR1,#12
MOVA,#70H
MOVP1,A
D170H:
DJNZR1,D170H;开始28个机器周期(白)
MOVR1,#6
NOP
MOVA,#10H
MOVP1,A
DH:
DJNZR1,DH;开始14个机器周期(红)
MOVA,#70H
MOVP1,A
MOVR1,#9
AD60H:
DJNZR1,AD60H;开始21个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP5
LOOP6:
SETBP1.3
MOVR1,#2;开始6个机器周期
AD6H:
DJNZR1,AD6H
CLRP1.3
MOVR1,#2;开始7个机器周期
AD7H:
DJNZR1,AD7H
MOVA,#70H
MOVP1,A
MOVR1,#9
AD70H:
DJNZR1,AD70H;开始21个机器周期(白)
MOVA,#10H
MOVP1,A
MOVR1,#5
AD30H:
DJNZR1,AD30H;开始14个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#12
AD60EH:
DJNZR1,AD60EH;开始28个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP6
LOOP35:
SETBP1.3
NOP;开始6个机器周期
NOP
NOP
MOVR1,#2
NOP
CLRP1.3
D17H:
DJNZR1,D17H;开始7个机器周期
MOVR1,#5
MOVA,#70H
MOVP1,A
D170H:
DJNZR1,D170H;开始14个机器周期(白)
MOVR1,#6
NOP
MOVA,#10H
MOVP1,A
DH:
DJNZR1,DH;开始14个机器周期(红)
MOVA,#70H
MOVP1,A
MOVR1,#16
AD60H:
DJNZR1,AD60H;开始35个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP35
LOOP56:
SETBP1.3
MOVR1,#2;开始6个机器周期
AD6H:
DJNZR1,AD6H
CLRP1.3
MOVR1,#2;开始7个机器周期
AD7H:
DJNZR1,AD7H
MOVA,#70H
MOVP1,A
MOVR1,#5
AD70H:
DJNZR1,AD70H;开始14个机器周期(白)
NOP
MOVA,#10H
MOVP1,A
MOVR1,#19
AD30H:
DJNZR1,AD30H;开始42个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#2
AD60EH:
DJNZR1,AD60EH;开始7个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#38
DJNZR2,LOOP56
LOOP7:
SETBP1.3
NOP
NOP
NOP;开始6个机器周期
MOVR1,#2
NOP
CLRP1.3
C171H:
DJNZR1,C171H;开始7个机器周期
MOVR1,#30
MOVA,#70H
MOVP1,A
C1H:
DJNZR1,C1H;开始63个机器周期(白)
NOP
MOVA,#0H
MOVP1,A;开始4个机器周期"0"
MOVR2,#5
DJNZR0,LOOP7
;//////////////////第二场///////////////////
LOOP131:
SETBP1.2
MOVR1,#11;开始3个机器周期
NOP
CLRP1.2
D372:
NOP;开始37个机器周期
DJNZR1,D372;33
MOVR3,#5;笫312.5行开始5个开槽脉冲
DJNZR2,LOOP131
LOOP141:
SETBP1.2
MOVR1,#8;开始34个机器周期
D342:
NOP
NOP
DJNZR1,D342;32
CLRP1.2
NOP;开始6个机器周期
MOVR2,#5;笫316行开始5个均衡脉冲
NOP
DJNZR3,LOOP141
LOOP151:
SETBP1.2
MOVR1,#11;开始3个机器周期
NOP
CLRP1.2
D373:
NOP;开始37个机器周期
DJNZR1,D373;33
NOP
DJNZR2,LOOP151
NOP
MOVR1,#11;空半行(40个机器周期)
K40:
NOP
DJNZR1,K40;33
MOVR3,#17;笫319行开始17个行同步
LOOP171:
NOP
NOP
NOP
NOP
SETBP1.3
MOVR1,#2;开始6个机器周期
TD6H:
DJNZR1,TD6H
CLRP1.3
MOVR1,#22;开始74个机器周期
TD74:
NOP
DJNZR1,TD74;66
DJNZR3,LOOP171
MOVR0,#39
NOP
NOP
NOP
LOOP8:
SETBP1.3
NOP
NOP
NOP;开始6个机器周期
MOVR1,#2
NOP
CLRP1.3
C1023:
DJNZR1,C1023;开始7个机器周期
MOVR1,#30
MOVA,#70H
MOVP1,A
C1032:
DJNZR1,C1032;开始63个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP8
LOOP9:
SETBP1.3
MOVR1,#2;开始6个机器周期
AD1026:
DJNZR1,AD1026
CLRP1.3
MOVR1,#2;开始7个机器周期
AD1027:
DJNZR1,AD1027
MOVA,#70H
MOVP1,A
MOVR1,#5
AD1028:
DJNZR1,AD1028;开始14个机器周期(白)
NOP
MOVA,#10H
MOVP1,A
MOVR1,#18
AD1029:
DJNZR1,AD1029;开始42个机器周期(红)
NOP
NOP
NOP
MOVA,#70H
MOVP1,A
MOVR1,#2
AD1030:
DJNZR1,AD1030;开始7个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP9
LOOP10:
SETBP1.3
NOP;开始6个机器周期
NOP
NOP
MOVR1,#2
NOP
CLRP1.3
D1031:
DJNZR1,D1031;开始7个机器周期
MOVR1,#19
MOVA,#70H
MOVP1,A
D1033:
DJNZR1,D1033;开始42个机器周期(白)
MOVR1,#5
NOP
MOVA,#10H
MOVP1,A
D1034:
DJNZR1,D1034;开始14个机器周期(红)
MOVR1,#2
NOP
MOVA,#70H
MOVP1,A
AD1039:
DJNZR1,AD1039;开始7个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP310
LOOP11:
SETBP1.3
MOVR1,#2;开始6个机器周期
A1040:
DJNZR1,A1040
CLRP1.3
MOVR1,#2;开始7个机器周期
AD1041:
DJNZR1,AD1041
MOVA,#70H
MOVP1,A
MOVR1,#16
AD1042:
DJNZR1,AD1042;开始35个机器周期(白)
MOVA,#10H
MOVP1,A
MOVR1,#5
AD1043:
DJNZR1,AD1043;开始14个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#5
AD1048:
DJNZR1,AD1048;开始14个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP11
LOOP12:
SETBP1.3
NOP;开始6个机器周期
NOP
NOP
MOVR1,#2
NOP
CLRP1.3
D17:
DJNZR1,D17;开始7个机器周期
MOVR1,#12
MOVA,#70H
MOVP1,A
D170:
DJNZR1,D170;开始28个机器周期(白)
MOVR1,#5
NOP
MOVA,#10H
MOVP1,A
D:
DJNZR1,D;开始14个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#9
AD60:
DJNZR1,AD60;开始21个机器周期(白)
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR2,#30
DJNZR0,LOOP12
LOOP13:
SETBP1.3
MOVR1,#2;开始6个机器周期
AD6:
DJNZR1,AD6
CLRP1.3
MOVR1,#2;开始7个机器周期
AD7:
DJNZR1,AD7
MOVA,#70H
MOVP1,A
MOVR1,#9
AD70:
DJNZR1,AD70;开始21个机器周期(白)
MOVA,#10H
MOVP1,A
MOVR1,#5
AD30:
DJNZR1,AD30;开始14个机器周期(红)
NOP
MOVA,#70H
MOVP1,A
MOVR1,#12
AD60E:
DJNZR1,AD60E;开始28个机器周期(白)
NOP
MOVA,#0
MOVP1,A;开始4个机器周期"0"
MOVR0,#30
DJNZR2,LOOP13
LOOP14:
SETBP1.3
NOP
NOP
NOP;开始6个机器周期
MOVR1,#2
NOP
CLRP1.3
C171:
DJNZR1,C171;开始7个机器周期
MOVR1,#5
MOVA,#70H
MOVP1,A
C1:
DJNZR1,C1;开始14个机器周期(白)
NOP
NOP
MOVA,#10H
MOVP1,A;开始14个机器周期(红)
MOVR1,#5
AD6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 视频 信号发生器 设计