收藏 分销(赏)

视频字符叠加模块.doc

上传人:s4****5z 文档编号:8795375 上传时间:2025-03-02 格式:DOC 页数:6 大小:37.50KB
下载 相关 举报
视频字符叠加模块.doc_第1页
第1页 / 共6页
视频字符叠加模块.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
视频字符叠加模块(器)-单片机SPI测试程序 作者:佚名  来源:强联单片机科技有限公司  发布时间:2006-8-11 12:32:50  发布人:george 减小字体 增大字体 简要说明: 1,本测试程序使用AT89S51,晶振12MHZ 2,字符串的使用,数字/英文/及空格需用全角输入,换行为"0x13,0x13" 3,包含文件视频字符叠加器(模块)SPI接口c51公共函数 *********************************************************/ #define UN  unsigned char //定义SPI引脚,读者可根据实际使用修改 sbit    spics=P2^0; sbit    spidi =P2^1; sbit    spido =P2^2; sbit    spiclk=P2^3; unsigned char bdata bm; sbit  bm0=bm^0; sbit  bm1=bm^1; sbit  bm2=bm^2; sbit  bm3=bm^3; sbit  bm4=bm^4; sbit  bm5=bm^5; sbit  bm6=bm^6; sbit  bm7=bm^7; unsigned char  read_1byte(void); void  write_1byte(unsigned char x); void Tx4b(UN a,b,c,d); void csf_spi(void); void MoRen_Color(UN ys);//设置默认字符颜色,ys高位0-7,低位0-7 void Cls_Main(UN ys);//按指定颜色清屏0-7 void Ding_Wei(UN H,L);//定位,设置要显示的起始位置H:行号1-12,L:列号1-24 void Size(UN size,h);//字符大小,设置指定行的字符大小,size:大小0-3,h:行号1-12 void Tx_arry(UN idata zfc[]);//字符数组的显示 void Tx_nei_ma(UN idata nmH,nmL);//按字符内码显示1字符,nmH:内码高字节,nmL:内码低字节 void Hang_ju(UN idata x);//行距设定0-15 void HDP(UN idata x);////设定水平方向开始显示的位置x:0-63 void VDP_P(UN idata x);//PAL方式下设定垂直方向开始显示的位置0-63 void VDP_N(UN idata x);//在PAL制式下按NTSC格式显示,设定扫描的起始垂直位置,范围从0—63 void Neiwai_SaoMiao(UN idata x);//内外频及扫描方式选择 /*说明: 0:PAL内频隔行 1:PAL内频逐行 2:PAL外频隔行 3:PAL外频逐行 4:NTSC内频隔行 5:NTSC内频逐行 6:NTSC外频隔行 7:NTSC外频逐行 */ void delay_ms(unsigned int nMs);//豪秒级的延时<65535ms,,延时函数读者可根据实际使用编写 //-------按指定颜色清屏0-7---------------- void Cls_Main(UN ys) {Tx4b(1,ys,0,0);} //--------------------------------------------- void Neiwai_SaoMiao(UN idata x)//内外屏及扫描方式选择 {Tx4b(2,x,0,0);} //---------------------------------------- void HDP(UN idata x)////设定水平方向开始显示的位置x:0-63 {Tx4b(3,x,0,0);} //---------------------------------------- void VDP_P(UN idata x)//PAL方式下设定垂直方向开始显示的位置0-63 {Tx4b(4,x,0,0);} //---------------------------------------- void VDP_N(UN idata x)//在PAL制式下按NTSC显示,设定扫描的起始垂直位置,范围从0—63 {Tx4b(5,x,0,0);} //-------字符大小,设置指定行的字符大小,size:大小,h:行号 void Size(UN size,h) {Tx4b(6,size,h,0);} //-------定位,设置要显示的起始位置-------------------- void Ding_Wei(UN H,L) {Tx4b(7,H,L,0);} //---------------------------------------- void Tx_nei_ma(UN idata nmH,nmL)//按字符内码显示1字符 {Tx4b(8,nmH,nmL,0);} //-------设置默认字符颜色-------------------- void MoRen_Color(UN ys) {Tx4b(9,ys,0,0);} ////行距设定0-15 void Hang_ju(UN idata x) {Tx4b(10,x,0,0);} //------------------------------ void Tx_arry(UN idata zfc[])//字符数组的显示,ql501,ql502数组最大长度为120,ql503最大长度为240 {UN idata i,j; j=strlen(zfc);//计算字符串长度 Tx4b(11,j,2,0xff);//开始发送J个字节的字符串      i=0xff;      do      {i++;write_1byte(zfc[i]);}//发送字符代码      while(i<j-1);      if(j/6==0){delay_ms(1);}//3个字符约延时1MS,此延时也可放在本函数之后处理,需删掉                       //最后这两行     else{delay_ms(j/6);}            } void Tx4b(UN a,b,c,d)//连续写4个字节--1个指令 {write_1byte(a);write_1byte(b);write_1byte(c);write_1byte(d);} void csf_spi(void)//初始化SPI {          spics=1;         spiclk=0;  }  void  write_1byte(unsigned char x)//写1个字节 {  unsigned char i=0;     bm=x;     spics=0;   do        {spidi=bm0;         spiclk=1;         spiclk=0;         bm=bm>>1;         i++;}   while (i!=8);         spics=1; } unsigned char  read_1byte(void)//读1个字节 { unsigned char i=0;   spics=0;      do{bm=bm>>1;         spiclk=1;         bm7=spido;         spiclk=0;i++;}      while(i<8);        spics=1;        return bm; } void delay_ms(unsigned int nMs)//毫秒延时<65535ms(12M晶振),读者可根据需要另行编写 {  unsigned int n=0;  TMOD=0x21;  TR0=1;  while(n<nMs)////利用T0做定时计数器,循环采样,直到达到定时值  {   TH0=0;   TL0=20;   while(TH0<4)   {;   }   n++;  }  TR0=0; } ```````````````````````````````````````````````````````````````````````````````````````````````````````````` */ #include<reg51.h> #include<intrins.h> #include<stdio.h> #include<string.h> #include<ql502_spi_public.c> void csf_uart(); void csf_main(void);//初始化叠加的默认值 void cls1h(UN h);//清指定行 UN code zfc0[]="强联科技"; UN code zfc1[]="视频字符 叠加技术"; UN code zfc2[]="强联单片机科技有限公司"; //============================================================================ //主程序 //============================================================================ void  main(void)  {UN i,j,h;   csf_spi();//初始化SPI   csf_main();//初始化叠加的默认值   MoRen_Color(0x06);//设置以下要显示的默认字符颜色(黄色背景,黑色字符)   Ding_Wei(5,2);//③定位,设置要显示的起始位置,//从第5行第2列开始显示   Size(1,5);//把第5行字符大小设为1号   //**********************************   //第①种显示方式   //**********************************   Tx_arry(zfc2);//送字符数组zfc2[]显示  //////////////////////////////////////////////////////////   //“房地产”的内码分别为:B7BF, B5D8, B2FA   Ding_Wei(6,2);//从第6行第2列开始显示   Size(3,6);//把第6行字符大小设为3号   //**********************************   //第②种显示方式   //**********************************   Tx_nei_ma(0xb7,0xBF);   Tx_nei_ma(0xb5,0xd8);   Tx_nei_ma(0xb2,0xfa);   //最简单的显示直接利用函数Tx—arry()显示字符串;英文数字,空格等需用全角输入   Ding_Wei(1,2);//从第7行第2列开始显示   Size(0,1);//把第7行字符大小设为0号   MoRen_Color(0x72);   //**********************************   //第③种显示方式   //**********************************   Tx_arry("最简单的显示直接利最简单的显示直接利用函数Tx—arry()显示字符串空格等需用全角输入");   cls1h(7);   Ding_Wei(8,2);//从第7行第2列开始显示    Tx_arry("最简单的显示直接利最简单");   while(1){;}//主循环 } //========================================================================== void csf_main(void)//初始化叠加的默认值 {UN idata i;   Neiwai_SaoMiao(0);//内外频及扫描方式选择,选择内频(即内同步)隔行扫描方式   HDP(3);//设定水平方向开始显示的位置x:0-63   VDP_P(28);//PAL方式下设定垂直方向开始显示的位置0-63   //VDP_N(28);//在PAL制式下按NTSC格式显示,设定扫描的起始垂直位置,范围从0—63   Hang_ju(5);//行距设定为5   MoRen_Color(0x71);//设置默认字符颜色(蓝色背景,白色字符)   Cls_Main(1);//按蓝色清屏   delay_ms(1);//清屏后至少插入1ms的延时   i=1;do{ Size(1,i);i++;}while(i<13);//把12行字符大小全设为1号(2倍宽2倍高)  } //---------------------------------------------------------------------------------- void cls1h(UN h)//清指定行 {Ding_Wei(h,1);  Tx_arry("                        ");//公24个全角空格 }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服