广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    双色点阵显示程序详解

    来源:网络收集  点击:  时间:2024-04-30
    【导读】:
    双色点阵显示程序详解,8X8双色点阵工具/原料more电脑开发板方法/步骤1/8分步阅读

    主要利用二极管的动态扫描,根据电路图,分配I/O整理思路

    2/8

    #include reg52.h//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

    3/8

    #define uint unsigned int

    #define uchar unsigned char

    4/8

    sbit smg=P3^7;

    uchar count=0,j=0,a=0;

    uchar code saomiao={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,}; //共阳极

    uint code xianshi ={

    {0xff,0xff,0xc1,0xbe,0xbe,0xbe,0xc1,0xff}, //0

    {0xff,0xff,0xff,0xff,0xde,0x80,0xfe,0xff}, //1

    {0xff,0xff,0xd8,0xba,0xba,0xba,0xc6,0xff}, //2

    {0xff,0xff,0xdd,0xb6,0xb6,0xb6,0xc9,0xff}, //3

    {0xff,0xff,0xf3,0xeb,0xdb,0x80,0xfb,0xff}, //4

    {0xff,0xff,0x8d,0xae,0xae,0xae,0xb1,0xff}, //5

    {0xff,0xff,0xc1,0xb6,0xb6,0xb6,0xd9,0xff}, //6

    {0xff,0xff,0xbf,0xbf,0xbf,0xb0,0x8f,0xff}, //7

    {0xff,0xff,0xc9,0xb6,0xb6,0xb6,0xc9,0xff}, //8

    {0xff,0xff,0xcd,0xb6,0xb6,0xb6,0xc1,0xff}, //9

    {0xff,0xff,0x80,0xb7,0xb7,0xcf,0xff,0xff}, //P

    {0xff,0xff,0x80,0xb7,0xb3,0x8c,0xff,0xff}, //R

    {0xff,0xff,0x80,0xb6,0xb6,0xb6,0xff,0xff}, //E

    {0xff,0xff,0xc1,0xbe,0xbe,0x9d,0xff,0xff}, //C

    {0xff,0xff,0x80,0xf7,0xf7,0x80,0xff,0xff}, //H

    {0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff}, //I

    {0xff,0x80,0xef,0xf7,0xfb,0x80,0xff,0xff}, //N

    {0x83,0xb7,0xb7,0x00,0xb7,0xb7,0x83,0xff}//中

    };

    5/8

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

    /* 延时函数声明 */

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

    /*void mdelay(uint t)

    {

    uchar n;

    for(;t0;t--)

    for(n=0;n125;n++)

    {;}

    }*/

    void mdelay(uint t)

    {

    uchar n;

    while(t--)

    {

    for(n=0;n123;n++)

    {;}

    }

    }

    6/8

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

    /* 主函数 */

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

    void main()

    {

    uchar i;

    EA=1;//开总中断开关

    TH0=0x3c;//设置初值50ms

    TL0=0xb0;

    ET0=1;//打开定时器中断

    TR0=1;//启动定时器

    TMOD=0x01;//设置定时器0为工作方式1

    while(1)

    { if(a==1)

    {

    for(i=0;i8;i++)

    {

    P0=saomiao;//公共端,高电平有效

    smg=1; //锁存

    smg=0;

    P0=0xff;

    P0=xianshi;//数组显示

    mdelay(2);

    }

    }

    else

    {

    for(i=0;i8;i++)

    {

    P0=saomiao;//公共端,高电平有效

    smg=1; //锁存

    smg=0;

    P0=0xff;

    P2=xianshi;//数组显示

    mdelay(2);

    }

    }

    }

    }

    7/8

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

    /* 定时器0 */

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

    void time0() interrupt 1

    {

    TH0=0x3c;

    TL0=0xb0;

    count++;

    if(count==20)

    {

    j++; //间隔1s

    a++;

    count=0;

    if(j==18)

    j=0;

    if(a==2)

    a=0;

    }

    }

    8/8

    本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

    注意事项

    电脑

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_634767.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 01:57:57  耗时:0.025
    0.0246s