关闭

举报

  • 提交
    首页 > 城乡供需 > 日常供需 > 车找人 > 正文
    购物车
    0

    姬家寨村电子科技研究所C51单片机点阵实验

    姬学瑞     2018-09-13 22:01:50     浏览:3    回复:0    点赞:0
    发帖人:姬学瑞
    级 别
    贡献值
    免费发布 注册会员 点击查看电话号码

    一《姬家寨村电子科技研究所51单片机LED点阵操作1:

    https://v.qq.com/x/page/f0700c8w6gn.html?__t=1&ptag=1.qzone&_out=101

    二《姬家寨村电子科技研究所51单片机LED点阵操作2:

    https://v.qq.com/x/page/m0700qz9a9k.html?__t=1&ptag=1.qzone&_out=101

    ////////////////////////////////////////////////////////////////////////////

    //                给力者单片机开发学习系统,开发学习都给力!              //

    ////////////////////////////////////////////////////////////////////////////

    //                     学习51单片机,其实可以很简单                       //

    ////////////////////////////////////////////////////////////////////////////

    //                宁波芯动电子有限公司  www.MovingChip.com                //

    ////////////////////////////////////////////////////////////////////////////

     

    #include <AT89X52.h>       //调用51单片机的头文件

     

    //---------------------------------------

    //"宁波芯动电子有限公司"10个字的字形表的上半屏,供显示时查询

    unsigned char code han1[]=

    {                          //定义表格一定要使用code,这样会做到程序存储区中

     

    /*--  文字因为移动汉字,所以首尾都填充一些0 --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x09,0x31,0x21,0x21,0x21,0xA1,0x61,0x21,0x21,0x21,0x21,0x29,0x71,0x20,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x08,0x06,0x80,0x67,0x00,0x1F,0x11,0x11,0x11,0xFF,0x11,0x11,0x11,0x18,0x10,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x20,0x20,0x20,0x21,0xF8,0x24,0x23,0x21,0x20,0xF8,0x21,0x20,0x20,0x20,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x04,0x24,0x24,0x27,0x24,0x24,0x24,0x04,0x08,0x08,0xFF,0x08,0x08,0x0F,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x1F,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x1F,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x47,0x48,0x50,0x60,0x40,0x00,0x01,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x20,0x21,0x22,0x27,0x2C,0x34,0xE4,0x24,0x24,0x24,0x27,0x20,0x20,0x20,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x7F,0x40,0x4C,0x72,0x41,0x00,0x7F,0x52,0x53,0x52,0x52,0x52,0x7E,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x01,0x02,0x0C,0x70,0x21,0x00,0x00,0x70,0x08,0x06,0x03,0x01,0x01,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x08,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x48,0x40,0x40,0x7F,0x00,0x00,

     

    /*--  文字因为移动汉字,所以首尾都填充一些0 --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    };

     

    //---------------------------------------

    //"宁波芯动电子有限公司"10个字的字形表的下半屏,供显示时查询

    unsigned char code han2[]=

    {                          //定义表格一定要使用code,这样会做到程序存储区中

     

    /*--  文字因为移动汉字,所以首尾都填充一些0 --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x00,0x00,0x00,0x02,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x20,0x20,0xFF,0x02,0x0C,0xF1,0x01,0x82,0x64,0x18,0x18,0x64,0x86,0x03,0x02,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x08,0x70,0x00,0x00,0xFC,0x02,0x02,0x02,0xC2,0x02,0x02,0x1E,0x84,0x70,0x20,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x10,0x38,0xD0,0x10,0x30,0xA0,0x72,0x24,0x08,0x30,0xC0,0x04,0x02,0xFC,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0xF0,0x20,0x20,0x20,0x20,0xFC,0x22,0x22,0x22,0x22,0xF2,0x02,0x0E,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x80,0x80,0x80,0x80,0x80,0x82,0x81,0xFE,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x40,0x80,0x00,0x00,0xFF,0x90,0x90,0x90,0x94,0x92,0x93,0xFE,0x00,0x00,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0xFF,0x00,0x40,0x20,0xC0,0x00,0xFF,0x02,0x04,0xC0,0x30,0x48,0x84,0x06,0x04,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x80,0x04,0x0E,0x14,0x24,0xC4,0x8C,0x08,0x08,0x28,0x1E,0x0C,0x80,0x00,0x00,

     

    /*--  文字  --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0xF8,0x20,0x20,0x20,0x20,0x20,0x20,0xF0,0x00,0x04,0x02,0xFC,0x00,0x00,

     

    /*--  文字因为移动汉字,所以首尾都填充一些0 --*/

    /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x=16x16   --*/

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

     

    };

     

    //---------------------------------------

    //LED点阵屏相关I/O设置

    sbit U15E3=P1^3;           //LED点阵屏单元的U15(74HC138)的使能端E3脚接在P1.3口上

    sbit U14E3=P1^4;           //LED点阵屏单元的U14(74HC138)的使能端E3脚接在P1.4口上

    //---------------------------------------

     

    //---------------------------------------

    //LED点阵屏寄存器设置

    unsigned char m=15;        //设置8位的unsigend char型寄存器用来做汉字显示的索引

    unsigned char n;           //设置8位的unsigend char型寄存器用来做延时用

    unsigned char w;           //设置8位的unsigend char型寄存器用来做延时用

    unsigned char v;           //设置8位的unsigend char型寄存器用来做移动索引

    //---------------------------------------

     

    //---------------------------------------

    //名称: 主函数

    //适用:给力者GL9单片机开发学习系统

    //公司:宁波芯动电子有限公司

    //网址:www.MovingChip.com

    //日期:20120914

    //---------------------------------------

    void main(void)            //主函数,单片机开机后就是从这个函数开始运行

    {

     

        while(1)               //死循环,单片机初始化后,将一直运行这个死循环

        {

     

            for(n=0;n<80;n++); //做一个0-80的循环,不执行其他操作,只为延时

            if(++w>220)        //再嵌套一个延时,每220个扫描周期将汉字左移一格

            {

                w=0;           //清零,以准备下一个延时

                if(++v>176) v=0;//移动索引,限定在0-176

            }

            if(++m>15) m=0;    //每调用一次函数将m1,并限制在0-15以内

            P1=0;              //LED点阵屏的列控制信号全部清零,准备重置

            P0=han1[m+v];      //LED点阵屏的上半屏,按m+v索引查表han1P0

            P2=han2[m+v];      //LED点阵屏的下半屏,按m+v索引查表han2P2

            P1|=m&0x07;        //将索引m的低3位送给P1的低3位,以使74HC138去片选

            if(m<8) U15E3=1;   //8列需要使能U15(74HC138)

            else U14E3=1;      //8列需要使能U14(74HC138)

     

        }

    }

     


    打赏捐赠
    0
    !我要举报这篇文章
    声明 本文由村网通注册会员上传并发布,村网通仅提供信息发布平台。文章仅代表作者个人观点,不代表村网通立场。本文如涉及侵权请及时联系我们,我们将在24小时内予以删除!