实验一 王慧敏0235

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

实验器材: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文件

结果:


从完全不会开始的,修改多次,心累,不想说了。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、实验目的 1.了解LED8×8点阵的内部结构。 2.学会编写点阵显示实验的代码程序。 3.了解编写程序各部分的...
    石雅文0129阅读 23,314评论 0 4
  • 实验目的:为了进一步掌握单片机中点阵的使用,理解单片机的工作原理,实现在单片机上实现显示 实验器材:keil、单片...
    李小东0105阅读 320评论 0 2
  • 一、实验目的:为了进一步掌握单片机中点阵的使用,理解单片机的工作原理,实现在单片机上实现显示 二、实验器材:kei...
    关震0138阅读 231评论 0 0
  • 一、实验目的 用单片机实现汉字的显示 二、实验器材 装有keil的计算机、大板单片机 三、实验步骤 1.观看原理视...
    樊文静0215阅读 3,483评论 0 1
  • 小朱同学: 你好呀! 你现在在干嘛呢?也许正在旅行,也许正在吃东西,也许…… 四月的最后一天,有些话我想对你说。 ...
    橘子酱啊阅读 163评论 0 0