实验一 王慧敏0235

作者: 王慧敏0235 | 来源:发表于2018-06-22 21:20 被阅读9次

    实验目的:为了进一步掌握单片机中点阵的使用,理解单片机的工作原理,实现在单片机上实现显示

    实验器材:keil、单片机(大板)、PZ-ISP普中自动下载软件。

    实验原理:8*8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线上的交叉点上,当对应的某一行置高电平,某一列置低电平是,相应的二极管就会发亮。设计出汉字,将其转化为二进制进而转化为十六进制。

    实验步骤:

    1.在keil中新建工程,编写.c文件。

    2.编译调试文件,修改错误及警告。

    3.生成.hex文件。

    4.在烧录软件中下载生成的.hex软件。

    过程:

    根据要显示的图形的16进制如下

    新建项目

    编写程序

    #include#includesbit SRCLK=P3^6;

    sbit RCLK=P3^5;

    sbit SER=P3^4;

    //--定义要使用的IO口--//

    #define COMMONPORTS P0

    //--列选通控制--//

    unsigned char code TAB[8]  =

    {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

    //--点阵字码--//

    unsigned char code CHARCODE[1][8]=

    {

    0x1c,0x18,0x24,0x12,0x11,0x12,0x24,0x18,  //心

    };

    void delay(unsigned int time){ unsigned int

    i,j; for(i=0;i>7;

    dat<<=1;

    SRCLK=1;

    _nop_();

    _nop_();

    SRCLK=0;

    }

    RCLK=1;

    _nop_();

    _nop_();

    RCLK=0;

    }

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

    * 函数名   

        : main

    * 函数功能   : 主函数

    * 输入   

          : 无

    * 输出   

        : 无

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

    void main()

    {

    unsigned char tab, j;

    unsigned int  i;

    while(1)

    {

    for(i= 0; i<50; i++ )  //两个字之间的扫描间隔时间

    {

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

    {

    Hc595SendByte(0x00);     //消隐

    COMMONPORTS = TAB[tab]; //输出字码

    Hc595SendByte(CHARCODE[j][tab]);

    delay(2);

    }

    }

    j++;

    if(j == 6)

    {

    j = 0;

    }

    }

    }

    编写完成后需生成hex文件

    结果:

    从完全不会开始的,修改多次,心累,不想说了。

    相关文章

      网友评论

        本文标题:实验一 王慧敏0235

        本文链接:https://www.haomeiwen.com/subject/kbslyftx.html