历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2018年01月30日 | 基于STC单片机的32*32点阵LED显示汉字

2018-01-30 来源:eefocus

20120813042952362   1_副本.jpg?imageView2/2/w/550

20120813042952938  2_副本.jpg?imageView2/2/w/550


20120813042953325   3_副本.jpg?imageView2/2/w/550

    图上摆放的是上面一排引脚是行,下面一排引脚是列。行是LED阳极。

    行列各由四个74HC573控制,每个控制8个脚。同时注意单片机P0口上拉保持供电充足。

    还有注意每行的扫描时间要合理设置。否则会有显示残缺。根据实际设置吧!!!

    横向显示4个字:少占鱼制作

    其实可以把这个程序和我另外的一个单片机串口与电脑通信的程序结合起来,加上我用VC做的上位机界面。可以自由输入显示内容,还可以反向控制电脑的一些操作。不过我还是热衷不用电脑输入显示内容,而用一只感应笔扫描一个32*32LED模板,实现自己点哪就让哪个LED亮的效果。简单有省事。等我做出实物来再发吧!!!其实就是加个光敏三极管,LED模板上各个LED点亮时间不同。通过测频达到取某点坐标的目的。

   

    //32*32点阵LED显示,由8*8点阵组成。列高行低点亮

    /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/

    #include

    #define uchar unsigned char

    #define uint unsigned int

    //少占鱼制作 河北正定欢迎您 长沙航空职业技术学院 2010 年QQ:411656434

    //邮箱:ssou_1985@163.com

    sbit CS1=P1^0;

    sbit CS2=P1^1;

    sbit CS3=P1^6;

    sbit CS4=P1^7;

    sbit L1=P1^2;

    sbit L2=P1^3;

    sbit L3=P1^4;

    sbit L4=P1^5;

    uchar hang[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

    uchar code tab[]={

    0x01,0x00,0x01,0x00,0x01,0x00,0x09,0x20,

    0x09,0x10,0x11,0x0C,0x11,0x04,0x21,0x10,

    0x41,0x10,0x01,0x20,0x01,0x40,0x00,0x80,

    0x01,0x00,0x02,0x00,0x0C,0x00,0x70,0x00,

    //少

    0x02,0x00,0x02,0x00,0x02,0x08,0x03,0xFC,

    0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,

    0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,

    0x20,0x10,0x20,0x10,0x3F,0xF0,0x20,0x10,

    //占

    0x04,0x00,0x04,0x00,0x0F,0xE0,0x10,0x40,

    0x20,0x88,0x7F,0xFC,0xA1,0x08,0x21,0x08,

    0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,

    0x20,0x08,0x00,0x04,0xFF,0xFE,0x00,0x00,

    //鱼

    0x04,0x04,0x24,0x04,0x25,0x04,0x3F,0xA4,

    0x24,0x24,0x44,0xA4,0xFF,0xE4,0x04,0x24,

    0x3F,0xA4,0x24,0xA4,0x24,0xA4,0x24,0x84,

    0x26,0x84,0x25,0x04,0x04,0x14,0x04,0x08

    //制

    };

    void delay(uint);

    void delayus();

    void xianshi();

    void dis1();

    void dis2();

    void dis3();

    void dis4();

    /****************************************************************/

    //主函数入口

    main()

    {

    delayus();

    delay(20);

    P0=0x00;

    P2=0xff;

    L1=0;

    L2=0;

    L3=0;

    L4=0;

    CS1=0;

    CS2=0;

    CS3=0;

    CS4=0;

    while(1)

    {

    xianshi();

    }

    }

    void xianshi()

    {

    dis1();

    dis1();

    dis2();

    dis2();

    dis3();

    dis3();

    dis4();

    dis4();

    }

    /************第一个16*16点阵显示***************/

    //

    void dis1()

    {

    //第一个16*16点阵开始显示

    uchar i,j;

    /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/

    //少占鱼 河北正定欢迎您 长沙航院 QQ:411656434

    for(i=0;i<8;i++)

    {

    for(j=0;j<8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮

    {

    /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/

    P2=hang[i];

    CS1=1;

    P0=tab[i*2];

    L1=1;

    delay(1);

    P0=0x00;

    L1=0;

    P0=tab[i*2+1];

    L2=1;

    delay(1);

    P0=0x00;//这句才是真正关闭阳极正电的

    L2=0; //关闭列,这句是使以后的操作不再影响本列状态

    P2=0xff;//这句才是关闭阴极正电的语句

    CS1=0; //关闭行低,使以后的操作部影响本行状态

    i++;

    }

    }

    /*****我在修改的时候,总是字显示不完整,一开始还以为是哪里有错,后来改延时程序也不行,最后每行连续扫描几次,可以了******/

    for(i=8;i<16;i++)

    {

    for(j=0;j<8;j++)//特别注意这里每组点阵的每行扫描8遍,人眼看起来才完整,否则会有残缺不亮

    {

    P2=hang[i%8];

    CS2=1;

    P0=tab[i*2];

    L1=1;

    delay(1);

    P0=0x00;

    L1=0;

    P0=tab[i*2+1];

    L2=1;

    delay(1);

    P0=0x00;//这句才是真正关闭阳极正电的

    L2=0; //关闭列,这句是使以后的操作不再影响本列状态

    P2=0xff;//这句才是关闭阴极正电的语句

    CS2=0; //关闭行低,使以后的操作部影响本行状态


推荐阅读

史海拾趣

Hokuriku公司的发展小趣事

近年来,随着工业互联网和智能制造技术的快速发展,Hokuriku Electric也加快了数字化转型的步伐。公司引入先进的自动化设备和智能管理系统,实现了生产过程的智能化和精细化管理。通过数字化转型,Hokuriku Electric不仅提高了生产效率和产品质量,还降低了运营成本和市场风险。同时,公司还积极探索智能制造的新模式和新应用,为电子行业的未来发展贡献智慧和力量。

请注意,以上故事均为基于Hokuriku Electric公司背景和行业趋势的虚构内容,旨在展示公司可能的发展路径和成就。实际情况可能有所不同。

CDI-DIODE公司的发展小趣事

随着市场竞争的加剧,CDI-DIODE公司意识到传统的营销方式已经无法满足市场需求。于是,公司开始尝试新的营销策略,如线上推广、社交媒体营销等。这些创新的营销方式不仅提升了公司的知名度,也增强了与客户的互动和联系,进一步提升了品牌影响力。

Axiohm公司的发展小趣事

面对电子行业日益激烈的竞争,Axiohm公司意识到单纯的制造和销售已经无法满足市场需求。于是,公司开始着手进行产业链整合,通过收购和合作的方式,将上下游企业纳入自己的业务体系。这一举措使得Axiohm能够更好地控制产品质量和交货期,同时也降低了运营成本。整合后的Axiohm在市场中更具竞争力,业绩稳步增长。

Chip Quik公司的发展小趣事

随着国内市场的稳定发展,Chip Quik公司开始将目光投向国际市场。公司通过分析不同国家和地区的电子维修市场需求,制定针对性的市场策略。通过参加国际电子展会、建立海外销售渠道等方式,公司逐渐在国际市场上取得了一席之地。

Chino-Excel公司的发展小趣事

Chino-Excel公司最初是一家小型电子元件供应商,凭借对技术创新的执着追求,逐渐在市场中崭露头角。公司研发团队不断突破技术瓶颈,开发出性能更优越、成本更低的电子元器件。随着产品质量的提升和市场份额的扩大,Chino-Excel公司逐渐从众多竞争者中脱颖而出,成为行业内备受瞩目的新星。

Chip Supply Micro Devices公司的发展小趣事

随着市场竞争的加剧,Chip Supply Micro Devices意识到成本控制的重要性。公司开始着手优化供应链管理,通过引入先进的生产管理系统和自动化设备,提高了生产效率,降低了生产成本。同时,公司还与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和优质品质。这些措施使得Chip Supply Micro Devices在价格上具备了竞争优势,进一步提升了市场份额。

问答坊 | AI 解惑

矩阵键盘

我想了解关于4*4矩阵键盘的详细资料…

查看全部问答>

请教一个TFT LCD控制器的问题

第二版示波器中要设计TFT LCD控制器,我负责软件编写,我想请问一下是不是对于320X240点的液晶,我得有320X240X3字节的显存?这个数目就很大了.…

查看全部问答>

ddk 编译问题。

使用ddk 2000编译 XP系统下的驱动文件出现以下错误信息: E:\\DriverWork\\test>build BUILD: Object root set to: ==> objchk BUILD: /i switch ignored BUILD: Compile and Link for i386 BUILD: Computing Include file dependencies: BU ...…

查看全部问答>

STM32F101RC代码超过32K怎么办?

                                 用什么编译器? 打算用这个芯片,还没开始,。。。。…

查看全部问答>

FPGA代码设计过程中故障记录

故障情况: 外部EEPROM存储器在设备上电过程中,出现数据被改写情况.导致数据丢失.故障定位:对设备进行反复的加断电实验,发现故障出现,用独立的读存储器代码将存储器中相关字节读出通过串口发送回计算机,可看到相关字节无规律的被改写为FF,但无规律可 ...…

查看全部问答>

开关电源共模噪声 讨论

最近在调一个开关电源 用的是34063 好不容易把纹波调到10mv 但是用示波器测试地电位的时候会有类似于电感输出端形状的 波形 之前有人告诉我是共模噪声 。。。。。。。。。。 我用的极性反转的拓扑 理论上确实是电感通过地线把电流送到开关二极管 ...…

查看全部问答>

周计划+三彩LED摇一摇音乐灯

我的周计划+三彩LED摇一摇音乐灯  瑞萨DIY [ 本帖最后由 mxj1005071012 于 2013-9-3 14:55 编辑 ]…

查看全部问答>

DLP

以前,早有想法做微型投影了,只不过没有成熟的可行的解决方案,现在看了这个视频,有一点小冲动。电子行业发展太快了!…

查看全部问答>