圣龙扬特-AVR电子

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 972|回复: 3
打印 上一主题 下一主题

单片机通过VGA控制板控制52寸大尺寸显示器程序

[复制链接]

1

主题

0

好友

17

积分

新手上路

Rank: 1

UID
144
帖子
2
精华
0
注册时间
2013-3-3
在线时间
2 小时
跳转到指定楼层
楼主
发表于 2013-3-3 16:32:35 |只看该作者 |倒序浏览
给大家分享一个单片机通过【VGA控制板】控制52寸大尺寸显示器程序,给大家学习研究!因为字数有限制,只能给前面的串口通讯和协议程序了。

单片机演示程序和通讯协议,
#include<Atmel/AT89x52.H>
//定义颜色数据类型(可以是数据结构,有什么不明白的可以加我QQ交流2321069078)
//*************************************************************
void InitUART(void)         //串口初始化使用22.1184M晶体
{
      SCON = 0x50;                 //选择模式1,8位数据格式,使能UART
     PCON |= 0x80;                 //波特率加倍
     TMOD =TMOD| 0x20;               //定时器1:模式2 ,自动装载初值   
       //波特率计算公式:TH1=TL1=256-(2*22.1184*1000000)/(32*12*baud)
       //若选115200波特率则TH1=TL1=256-(2*22.1184*1000000)/(32*12*115200)=0xff
       //若选19200波特率则TH1=TL1=256-(2*22.1184*1000000)/(32*12*19200)=0xfa
     TH1 = 0xfa;              
     TL1 = 0xfa;
       TR1 = 1;                         //定时器1计数使能
       REN = 1;                //允许串口接受使能
}
/*
******************************************************************
*
* 名称:    write_byte()
* 功能:    向串口发送一个字节的数据
* 入口参数:i为待发送的字节数据
******************************************************************
*/
void UART_SendByte(unsigned char i)
{
       SBUF=i;        //发送本次数据
       while(TI==0){}//等待发送完毕
    TI=0;
}
void SetVariable(unsigned int adr,unsigned short nBytes,unsigned char *m_VarP)
{
    unsigned char temp;
    unsigned short m_CheckCRC;//命令校验
       UART_SendByte(0x81); //开始,固定,一个字节
       UART_SendByte(0x0);          //命令类型,设置变量
       UART_SendByte(0x2);          //接收方的设备号
       m_CheckCRC=0x81+0x0+0x2;
       temp=adr&0xff;
       UART_SendByte(temp); //地址1
       m_CheckCRC=m_CheckCRC+temp;
       temp=(adr>>8)&0xff;
       UART_SendByte(temp); //地址2
       m_CheckCRC=m_CheckCRC+temp;
       temp=(adr>>16)&0xff;
       UART_SendByte(temp); //地址3
       m_CheckCRC=m_CheckCRC+temp;
       temp=(adr>>24)&0xff;
       UART_SendByte(temp); //地址4
       m_CheckCRC=m_CheckCRC+temp;   
       temp=(nBytes)&0xff;
       UART_SendByte(temp); //个数低8位
       m_CheckCRC=m_CheckCRC+temp;                  
       temp=(nBytes>>8)&0xff;
       UART_SendByte(temp); //个数高8位
       m_CheckCRC=m_CheckCRC+temp;   
       while(nBytes!=0)
       {
           temp=*m_VarP;
              UART_SendByte(temp);
              m_CheckCRC=m_CheckCRC+temp;   
           nBytes--;
           m_VarP++;
       }
       UART_SendByte(m_CheckCRC);
       UART_SendByte(m_CheckCRC>>8);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

26

主题

1

好友

3446

积分

超级版主

Rank: 8Rank: 8

UID
7
帖子
140
精华
0
注册时间
2013-2-26
在线时间
20 小时

突出贡献

沙发
发表于 2013-3-3 17:05:29 |只看该作者
我还以为是直接输出VGA信号,结果是串口数据。
回复

使用道具 举报

1

主题

0

好友

229

积分

中级会员

Rank: 3Rank: 3

UID
81
帖子
7
精华
0
注册时间
2013-3-1
在线时间
3 小时
板凳
发表于 2013-3-3 20:42:46 |只看该作者
这方案很多的  都是用CPLD或FPGA做了一个单片机的显卡
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

UID
144
帖子
2
精华
0
注册时间
2013-3-3
在线时间
2 小时
地板
发表于 2013-5-19 21:49:48 |只看该作者
不错,是用FPGA做的。公司叫【广州易显科技有限公司】,你可以到他们网站上去了解一下。做的很好的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|圣龙扬特-AVR电子 ( 鲁ICP备05022832号 )

GMT+8, 2024-4-27 09:10 , Processed in 0.219992 second(s), 19 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部