完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
帮忙把以下程序改的可以从右到左显示汉字,谢谢,可私聊QQ1554031689。菜鸟求指导
程序: /*----------------------------------------------- 名称:16x16点阵 编写:shifang 修改:无 硬件:LY-LED16x16A 点阵模块 ------------------------------------------------*/ #include #include unsigned char code tab[]={// //取模选择字节倒序 ,正序得出的字是反的,可以在软件中设置自动倒叙 /*-- 文字: 汉 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0xE4,0x1F,0x48,0x10,0x48,0x10,0x41,0x10,0x82,0x08,0x92,0x08,0x90,0x08, 0x08,0x05,0x08,0x05,0x07,0x02,0x04,0x02,0x04,0x05,0x84,0x08,0x44,0x10,0x30,0x60, /*-- 文字: 字 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x40,0x00,0x80,0x00,0xFE,0x7F,0x02,0x40,0x01,0x20,0xF8,0x07,0x00,0x02,0x00,0x01, 0x80,0x00,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00, /*-- 文字: 测 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x20,0xE4,0x23,0x28,0x22,0x28,0x2A,0xA1,0x2A,0xA2,0x2A,0xA2,0x2A,0xA8,0x2A, 0xA8,0x2A,0xA4,0x2A,0xA7,0x2A,0x84,0x20,0x44,0x21,0x44,0x22,0x24,0x28,0x10,0x10, /*-- 文字: 试 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x14,0x04,0x24,0x08,0x24,0x08,0x04,0xE0,0x7F,0x00,0x04,0x0F,0x04,0xE8,0x07, 0x88,0x04,0x88,0x08,0x88,0x08,0xA8,0x08,0x98,0x53,0xE8,0x50,0x40,0x60,0x00,0x40, }; unsigned int code seg[]= { 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000 }; /*------------------------------------------------ 硬件端口定义 ------------------------------------------------*/ ***it LATCH_B = P2^6; //16行控制,行信号 ***it SRCLK_B= P2^5; ***it SER_B = P2^4; ***it LATCH = P0^2; //数据控制,列信号 ***it SRCLK= P0^1; ***it SER= P0^3; /*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); } } /*------------------------------------------------ 发送字节程序 ------------------------------------------------*/ void SendByte(unsigned char dat) { unsigned char i; for(i=0;i<8;i++) { SRCLK=0; SER=dat&0x80; dat<<=1; SRCLK=1; } } void SendByte1(unsigned char dat) { unsigned char i; for(i=0;i<8;i++) { SRCLK_B=0; SER_B=dat&0x80; dat<<=1; SRCLK_B=1; } } void SendSer(unsigned char dat1,unsigned char dat2) { SendByte(dat1); SendByte(dat2); LATCH=1; _nop_(); LATCH=0; } /*------------------------------------------------ 发送位码字节程序 使用另外一片单独595 ------------------------------------------------*/ void SendSeg(unsigned int a) { SendByte1(a>>8); SendByte1(a); LATCH_B=1; //锁存 _nop_(); LATCH_B=0; } /*------------------------------------------------ 主程序 ------------------------------------------------*/ void main() { unsigned char i,j,k; while(1) { for(j=0;j<4;j++){//循环显示4个汉字 for(k=0;k<100;k++)//每个汉字之间的延时,可以调节 for(i=0;i<16;i++){//显示1个汉字循环扫描16行,每行显示2个数据 SendSer(0xff,0xff);//清屏 SendSeg(seg);//对应的行选通 SendSer(~tab[32*j+2*i+1],~tab[32*j+2*i]);//发送改行显示数据 //DelayMs(1); } } } } |
|
相关推荐
1个回答
|
|
用的at89c52rc芯片,行列驱动都是74hc595,谢谢了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 15:29 , Processed in 0.405081 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号