当前位置:首页 > 单片机 > 单片机
[导读] #include tZqy \\_G unsigned int zimo,xx=0; //zimo是字模计数器,xx为分屏显示的时候的字数。 /.0;ee--) {#o0vWS> {qing();} pSC\\[%K } qM/\\, } Q 2mTu[tx /**********清屏幕*********

#include tZqy _G
unsigned int zimo,xx=0; //zimo是字模计数器,xx为分屏显示的时候的字数。 /.<2I
unsigned char yid,h; //yid为移动计数器,h为行段计数器 t182&gpd`

unsigned char code hanzi[]; //汉字字模 Jrm 9,7/
unsigned char BUFF[18],BUFF2[18]; //左移显示的缓存 jk-e/C
void qing(void); void xianshi(void); p`}'-A|@
void fen(void); void zuo(void); 6im!v<1Qx
void in_data(void); //调整数据 568qdD`PS
void rxd_data(void); //左移发送数据 [mJmT->
void out_rxd(unsigned char *d); //分屏、上移发送数据 ^;=L|{Xl
char code sw[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00}; /*8行段码*/ E3==gYCe*
/***********主程序******************/ .,$void main(void) g&oAa;~o
{ unsigned char ee; 1YxG SCON=0;P1=0;yid=0;zimo=0; BJ,9C.|
while(1) eG05}
{ fen(); //分屏显示 +dgHl_,i
for(ee=30;ee>0;ee--)//清屏幕3秒 swGp{wJ
{qing();} IqW4Q1>f
zuo(); //左移显示 ! O~:
for(ee=30;ee>0;ee--) {#o0vWS>
{qing();} pSC[%K
} qM/,
} Q 2mTu[tx
/**********清屏幕*******************/ }8e_
void qing (void) F).7%YfY
{ unsigned char zz,xx=0x0ff; rY,zZR+@
for (zz=33;zz>0;zz--)  gmW-#.
{out_rxd(&xx);} hC D6
P1=0xff; P1=0; //锁存为高,74HC595锁存信号 ZR8%h<
P2=0; //清74LS138的使能端 Q*54!^l+_r
} Xf%vfAf
/**********分屏显示***********/ s/<;g:u^
void fen(void) UpSa7F:Uw
{ do{ xianshi(); }while(xx++<=5); //调用单屏显示 me YSW
xx=0; }Dx5W9Ri"
} $[U:Dk}
/************单屏显示*************/ Aj{G=AT
void xianshi(void) sp7#e%R
{ unsigned char ii,jj; unsigned int kk,aa; /}Ct2w& for (kk=500;kk>0;kk--) //每屏显示500次 Z5`U+ (
{for(ii=1;ii<16;ii+=2) //每个汉字分8行扫描 ZK`x(h{p)
{for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次 iUq{c+h
{ aa=(xx*8+jj)*32+ii; rU_FRk
out_rxd(&hanzi[aa]); //从串口输出第1个字的第1字节。 M5`wfF,j
out_rxd(&hanzi[aa-1]); //从串口输出第1个字的第1字节。 fO}Y$yq
} 2$O6%0
for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次 xz){RkVzP
{ aa=(xx*8+jj)*32+ii; gx=2]~O1(
out_rxd(&hanzi[aa+16]); //从串口输出第1个字的第17字节。 "FXT8Qxg
out_rxd(&hanzi[aa+15]); //从串口输出第1个字的第18字节 p2j=73$
} B'KZ >jO
P2=0x0ff; NplkhgSj
P1=0xff; P1=0; //锁存为高,74HC595锁存信号 |^t8ct?x~
P2=sw[h]; //输出行信号 T^.W'
h++; //行加一 WHv xBd
if(h==8)h=0; I~NQt^sg
} 7A6+[ `fa
} ~U_,z)<`)c
} ee{8C~
/***************左移显示************/ x@480r
void zuo(void) m?H < o0
{ unsigned char i,d=5; //d为移动的时候一个汉字的扫描显示次数 >s+*D=k
xianshi(); //调用单屏显示 -% Z?rn2
while(zimo<=1450) C"!k`i=Lj
{while(yid<16) //数据移位。 enJgk(
{for(i=0;i {for(h=0;h<8;h++) //8行扫描 ~i y]X:U
{ in_data(); //调整数据 Z&E!m 
rxd_data(); //串口发送数据 6@[7
P2=sw[h]; //送段码 -*T<^G;rK
P1=0xff; //锁存为高,595锁存信号 mjtmN0^SR
P1=0; yhpeP
} !ENDQ?1
} QwSYjR:K
yid++; //移动一步 :|tWKA
} RU_wr<
yid=0;zimo=zimo+32; //后移一个字, v?=y9lEH@%
} y9xvGr[l
zimo=0; cFP9b8JG
} 'C2X9/!,
/*************分屏显示的数据发送************/ QK`5KB(k'
void out_rxd(unsigned char *d) /*从串口发送数据*/ QvoL
{ SBUF=*d; while(!TI); //等待发送完毕 ^kO+NH40
TI=0; w5+H9R6
} NZoNsNu*C.
/*******左移显示读取数据 并调整**************/ 0;Oe&Y
void in_data(void) Oo0SDWI`(
{ char s,w; unsigned int qqq; YT`,f*t
for(s=8;s>=0;s--)QIPV'T,S
{ w=s+s; n "bii7h
qqq=zimo+h+h+s*32; 2Onp{,'}
BUFF[w+1]=hanzi[qqq]; .0Kc|b=w
BUFF[w]=hanzi[qqq+1]; @PT([1C
BUFF2[w+1]=hanzi[qqq+16]; $ BUFF2[w]=hanzi[qqq+17]; Obf RwZh?q
} ]9N&I/-
} RH.qbPjx
/**********左移显示的数据调整发送***************/ '451H3LC0
void rxd_data(void) //串行发送数据 ]"&](e6*
{unsigned char inc,s,tempyid,temp; YF)]B|I
if(yid<8) inc=0; v[+
else inc=1; Mf2F LrAh
for(s=0+inc;s<16+inc;s++) //发送数据 n)~*BpL3
{ if(yid<8) tempyid=yid; ae2Q^yLA
else tempyid=yid-8; ?=ffv]v|
temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); j*5IRzK1%0
SBUF=temp; //把BUFF中的字节从大到小移位相或后发送输出。 sO` oapy
while(!TI);TI=0; //等待发送中断 hJ$9Hb
} i84!x%|P
for(s=0+inc;s<16+inc;s++) //发送8字节数据 R0}1:1}$Sn
{ if(yid<8) tempyid=yid; VJ=>2'I
else tempyid=yid-8;  ]'`E
temp=(BUFF2[s]>>tempyid)|(BUFF2[s+1]<<(8-tempyid)); c7jmzo
SBUF=temp; //把BUFF中的字节从大到小移位相或后发送输出。 "~5cz0 H3v
while(!TI);TI=0; //等待发送中断 ~x^y5[5{
} =nGFLH6)
} >I|8yqbFM
unsigned char code hanzi[]={/*自己的汉字编码请放在这里*/};

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭