打印

单片机直接驱动VGA的问题

[复制链接]
10551|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuming666|  楼主 | 2012-11-3 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到论坛的匠人们用51给直接驱动了VGA显示器,并且跑上了俄罗斯方块,不过核心部分已经封装了, 对于驱动VGA的核心部分一直没有明白是怎么实现的,

   根据代码来看应该是使用了串口的同步输出模式,时钟可以达到8MHZ。

    问题是: 1. 在硬件输出8位时钟的时候, 怎么输出8位的颜色数据呢?
                 2. 硬件输出8位时钟后,会有停顿,那这停顿的时候不就会显示成色块?
                 3.测量刷新率是30HZ , 那么VGA显示器最低的刷新率应该会是多少呢?

相关帖子

沙发
chuming666|  楼主 | 2012-11-4 09:15 | 只看该作者
沙发自己坐, 别沉了

使用特权

评论回复
板凳
amwrdfe| | 2012-11-4 11:18 | 只看该作者
1:2^3 = 8
2:你得找vga标准来看,一个行包括行头行尾等。因为需要消隐。
3:还是去看看vga标准,30hz的刷新率显示器可不认。
以最低640*480*60为例,包括行头行尾,帧头帧尾是800*525,dataclk为25mhz,hsync为31.55k,vsync为60hz,
行帧频率是不能变的,否则显示器不认,但是像素可以缩减的,这才有51驱动vga的方法。

使用特权

评论回复
地板
chuming666|  楼主 | 2012-11-4 13:44 | 只看该作者
哦, 意思是行的数量不不能少的,但是每一行里面的像素是可以变,就把实际的640改成320或者是更小。

使用特权

评论回复
5
amwrdfe| | 2012-11-4 18:50 | 只看该作者
上份资料供参考

VGA驱动与实现.pdf

865.34 KB

使用特权

评论回复
6
chuming666|  楼主 | 2012-11-4 22:12 | 只看该作者
多谢多谢

使用特权

评论回复
7
王紫豪| | 2012-11-4 23:30 | 只看该作者
5# amwrdfe
你上的资料是我写的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
amwrdfe + 1 我很赞同
8
chuming666|  楼主 | 2012-11-5 09:35 | 只看该作者
2^3 = 8 是什么意思呢? 同步串口输出的8位是硬件输出的,没法在每个时钟同步输出RGB颜色呀

使用特权

评论回复
9
shell.albert| | 2012-11-5 09:41 | 只看该作者
8# chuming666
RGB三基色,三个通道,能显示出8种颜色信号。故2^3=8.

使用特权

评论回复
10
xwj| | 2012-11-5 10:10 | 只看该作者
额,是说我的那个吧?
那我来解答一下:

    问题是:
1. 在硬件输出8位时钟的时候, 怎么输出8位的颜色数据呢?
——单片机另一个端口输出8位颜色数据,高4位和低4位分别输出前景色和背景色(各16色),同步串口只有输出高低电平 控制数据选择器选择前景色还是背景色。颜色实际上可以输出最多16种颜色,前景色和背景色都可以显示不同颜色的。

2. 硬件输出8位时钟后,会有停顿,那这停顿的时候不就会显示成色块?
——硬件输出的同时软件也在准备下一个数据,并在输出完瞬间切换下一个方块的颜色。
方块之间有间隔的,“那这停顿的时候”会继续原来的停止位1,继续输出背景色也就是方块之间的黑色。

3.测量刷新率是30HZ , 那么VGA显示器最低的刷新率应该会是多少呢?
——你测错了,实际刷新率就是标准的60Hz,640*480*60Hz模式。只是像素点频率不够,实际达不到垂直640线分辨率。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
chuming666 + 1
11
chuming666|  楼主 | 2012-11-5 11:07 | 只看该作者
正是的,之前第3点是我测量错了,实际频率是59.95HZ

那应该是 硬件写8个像素时钟的时候,这8个像素点的颜色是一样的, 用示波器看到每行只有8组时钟 共64个CLK, 追踪代码看到有15个,但不知道哪个是对的,冒似哪个都不对

使用特权

评论回复
12
coody| | 2012-11-5 12:01 | 只看该作者
只要明白VGA接口的信号,就可以照着写。驱动AV也是一样原理,比如MCU直接做AV字符叠加

使用特权

评论回复
13
xwj| | 2012-11-6 08:23 | 只看该作者
正是的,之前第3点是我测量错了,实际频率是59.95HZ

那应该是 硬件写8个像素时钟的时候,这8个像素点的颜色是一样的, 用示波器看到每行只有8组时钟 共64个CLK, 追踪代码看到有15个,但不知道哪个是对的,冒似哪个 ...
chuming666 发表于 2012-11-5 11:07


不同行是不一样的,上面的部分右边还有文字、方块预览

使用特权

评论回复
14
wcl0595| | 2021-4-1 17:45 | 只看该作者
xwj 发表于 2012-11-6 08:23
不同行是不一样的,上面的部分右边还有文字、方块预览

低成本单片机串口VGA显示卡/模块
http://www.qlmcu.com/V68x/V683.asp

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

25

帖子

1

粉丝