当前位置:文档之家› 基于51单片机16x64点阵设计报告(附程序及效果图)

基于51单片机16x64点阵设计报告(附程序及效果图)

基于51单片机16x64点阵设计报告(附程序及效果图)
基于51单片机16x64点阵设计报告(附程序及效果图)

物理与电子信息工程学院电子设计竞赛设计方案

制作项目:基于单片机的Led点阵设计

团队成员:电子科学技术协会技术部

第一章:实物图展示

第二章:芯片简介

2.1 点阵简介:

8x8点阵是由64个发光二极管排列成8行8列的矩阵,一个发光二极管控制着点阵的一个点。这种显示比较逼真,能显示的字符比较多。实际应用比较广泛,如点阵广告牌,交通灯报站台。

16*64点阵屏构成

首先,我们来分析一下16*16点阵行控线,列控线。

级联方法:如图四个点阵。

●把00,01相同的行线相连接。

●把10,11相同的行线相连接。

●把00,10相同的列线相连接。

●把01,11相同的列线相连接。

●最后,00,01的列就作为16x16点阵的列控线。00,10的行就作为16x16

点阵的行控线。

同理:16*64的点阵也是一样的,将同一行的所有行连在一起,同一列的所有列连在一起!(我们这次点阵用的是共阳型点阵,即行接阳极)

这里的16*64设计我们使用的是proteus画图的,里面使用的是网络标号!

2.2 AT89S52简介:

AT89S52有P0,P1,P2,P3。四个口,18,19号引脚提供外部时钟信号。

2.3 74HC595简介:

74HC595是8位串行输入,8位串行或并行输出。

●Q A~Q H为并行输出。可以将信号输送到LED,类似流水灯。

●Q’H为串行输出。

●10号角:移位寄存器清零端,低电平有效。

●11号引脚:移位寄存器时钟脉冲,高电平有效。

●12号引脚:存储寄存器时钟脉冲,高电平有效。

●13号引脚:控制输出的使能端,低电平有效。

●14号角传送串行信号,信号源可以来单片机。

●16,8号引脚分别接VCC,GND。

2.4 74HC 154简介:

74HC154是一个类似于74LS138一样的译码器,它为4-16线译码,它为单片机的引脚扩展发挥了很大的作用。

●23,22,21,20号引脚:传送地位到高位的地址码。

●18,19号引脚:154的使能端,低电平有效。

●12,24引脚:分别接GND,VCC。

●Y0~Y15:译码的结果,一出来的是低电平。

第三章各部分详细电路

3.1单片机最小系统与说明及连接电路

●AT89S52的最小系统其中,C1 ,C2都是30 pF的片状电容,C3 为10

μF的电解电容。R1为10K的电阻。

●X1为12MHz的晶振,连接到单片机的18,19引脚,为单片机提供内部

时钟信号,内部反相放大器自激振荡产生时钟信号。时钟发生器对振荡

脉冲2分频,即石英频率f=12MHz,则单片机时钟信号为6MHz。

●9号角接上电复位电路。当给单片机加电,高电平脉冲通过10μF的电

解电容,到达9号引脚(RST),实现主复位。如果正常工作中产生意想

不到的情况发生,可以用按键开关控制发送一个高电平实现主复位。

Protues省略了电源端,20,40号引脚分别接GND,VCC。

八片74HC595级联控制列数据:

●八片的11号引脚:相连接单片机的P3.1口,作为移位时钟脉冲。

●第一片的14号角接单片机的P3.0口,提供串行数据。

●八片的12号引脚:相连接单片机的P1.6为存储寄存器的时钟脉冲。

●10号角:接单片机P1.5

●13:都同时接地。

●第一片的9号引脚级联到第二片的14号引脚,第二片的9号引脚级联到

第三片的14号引脚,依次类推,最后一片9号脚空着。

●100~807接到16x64的点阵的列引脚。

3.4我们使用的字模软件

字模提取软件设置如下:

3.5硬件设计注意事项:

●整个系统需要加载5V左右的电压。

●行信号经过154后要加载几百欧姆的电阻限流,而后接到8550,经其放

大后接到点阵。

第四章:Keil实现C代码与程序下载:

#include

#define BLKN 8//列锁存数(为LED显示字数*2)

#define TOTAL 8//待显示字个数,本例共八个

#define TOTAL1 30//待显示字个数,本例共30个

#define CONIO P1//显示控制口

sbit G=CONIO^7;//为154译码器显示允许控制信号,0时输出,1时输出全为高请

求高阻态

sbit CLK=CONIO^6;//为595输出锁存器时钟信号端,1时输出数据,从1到0时锁

存输出数据

sbit SCLR=CONIO^5;//为595移位寄存器清0口,平时为1,为0时,输出全为0

unsigned char idata dispram[(BLKN/2)*32]={0};//显示区缓存,4字共4*32

//*****************字模表*********************//

unsigned char code Bmp[][32]={ //我们使用的是阳码、逐行式、顺向

{0xFD,0xFF,0xFD,0xF7,0xC0,0x2F,0xFD,0xDF,0xFD,0xBF,0x00,0x01,0xFE,0xFF,0xFD,0xFF,0xC0,

0x1F,0xEF,0xBF,0xDF,0x7F,0xA0,0x03,0x7F,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"孝",0*/

{0xFF,0xD7,0xFF,0xDB,0xC0,0x01,0xDF,0xDF,0xD0,0x5B,0xDF,0xDB,0xD0,0x57,0xD7,0x67,0xD7

,0x6D,0xB0,0x55,0xBF,0xB9,0x7F,0x7D,0xFE,0xFF,0xB7,0x7B,0xB7,0xED,0x78,0x0D},/*"感",1*/

{0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0

xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",2*/

{0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4,

0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",3*/

};

//*****************字模表*********************//

unsigned char code Bmp1[][32]={

{0xEF,0x7F,0xEF,0x7F,0xAF,0x7F,0xAF,0x03,0x82,0xAB,0xAD,0xAB,0x6F,0xAB,0xEF,0x6B,0xE3,

0x6B,0x0E,0xDB,0xAD,0xDB,0xEF,0xBB,0xEF,0xBB,0xEF,0x7B,0xEE,0xD7,0xEF,0xEF},/*"物

",0*/

{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,

0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",1*/

{0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0

xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",2*/

{0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4,

0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院

",3*/};

unsigned char code Bmp2[][32]={

{0xFE,0xFF,0xFE,0xFF,0xFD,0x7F,0xFD,0x7F,0xFD,0x7F,0xFB,0xBF,0x03,0x81,0xBF,0xFB,0xCF,0

xE7,0xF7,0xDF,0xF7,0xDF,0xEE,0x6F,0xE9,0xAF,0xE7,0xCF,0xDF,0xF7,0xFF,0xFF},/*"☆",0*/

{0xFF,0xFF,0x06,0x01,0xF7,0xDF,0xAF,0xBF,0xDE,0x03,0xEE,0xFB,0x02,0xDB,0xDA,0xDB,0xD6

,0xDB,0xDE,0xDB,0xDE,0xDB,0xDE,0xBB,0xDF,0xAF,0xDF,0x77,0x5E,0xFB,0xBD,0xFD},/*"预

",0*/

{0xDF,0xFF,0xEC,0x03,0xED,0xFB,0x05,0xFB,0xF5,0xFB,0xED,0xFB,0xEC,0x03,0xC7,0x6F,0xAB

,0x6F,0x6B,0x6F,0xEF,0x6F,0xEE,0xED,0xEE,0xED,0xED,0xED,0xEB,0xF1,0xE7,0xFF},/*"祝",1*/

{0xFD,0xFF,0xFD,0xF7,0xC0,0x2F,0xFD,0xDF,0xFD,0xBF,0x00,0x01,0xFE,0xFF,0xFD,0xFF,0xC0,

0x1F,0xEF,0xBF,0xDF,0x7F,0xA0,0x03,0x7F,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"孝",2*/ {0xFF,0xD7,0xFF,0xDB,0xC0,0x01,0xDF,0xDF,0xD0,0x5B,0xDF,0xDB,0xD0,0x57,0xD7,0x67,0xD7 ,0x6D,0xB0,0x55,0xBF,0xB9,0x7F,0x7D,0xFE,0xFF,0xB7,0x7B,0xB7,0xED,0x78,0x0D},/*"感",3*/ {0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0 xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",4*/ {0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4, 0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",5*/ {0xEF,0x7F,0xEF,0x7F,0xAF,0x7F,0xAF,0x03,0x82,0xAB,0xAD,0xAB,0x6F,0xAB,0xEF,0x6B,0xE3, 0x6B,0x0E,0xDB,0xAD,0xDB,0xEF,0xBB,0xEF,0xBB,0xEF,0x7B,0xEE,0xD7,0xEF,0xEF},/*"物",6*/

{0xFF,0xFF,0xFE,0x03,0x02,0xDB,0xEE,0xDB,0xEE,0x03,0xEE,0xDB,0xEE,0xDB,0x82,0x03,0xEF ,0xDF,0xEF,0xDF,0xEE,0x03,0xEF,0xDF,0xE3,0xDF,0x1F,0xDF,0xBC,0x01,0xFF,0xFF},/*"理",7*/ {0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xE0,0x03,0xEF,0xFF,0xDF,0xFF,0xDF,0xFF,0xC0,0x07,0xFF,0x F7,0xFF,0xF7,0xFF,0xF7,0x00,0x37,0xFF,0xF7,0xFF,0xF7,0xFF,0xAF,0xFF,0xDF},/*"与",8*/

{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE, 0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",9*/ {0xFF,0xFF,0x80,0x07,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFE,0xF F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"子",10*/

{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",11*/ {0xFE,0xFF,0xFD,0xFF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xE0,0x 0F,0xEF,0xEF,0xFE,0xFF,0xF7,0x7B,0xB7,0x6D,0xB7,0xED,0x78,0x0F,0xFF,0xFF},/*"息",12*/ {0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x FF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"工",13*/

{0xF7,0xFF,0xE2,0x03,0x0E,0xFB,0xEE,0xFB,0xEE,0xFB,0x02,0x03,0xEF,0xFF,0xCF,0xFF,0xC6,0 x01,0xAB,0xDF,0xAB,0xDF,0x6E,0x03,0xEF,0xDF,0xEF,0xDF,0xEC,0x01,0xEF,0xFF},/*"程",14*/ {0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0 xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",15*/ {0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4, 0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",16*/ {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE, 0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",17*/ {0xFF,0xFF,0x80,0x07,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFE,0xF F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"子",18*/

{0xFF,0xFF,0xDE,0x0F,0xEE,0xEF,0xEE,0xEF,0xFE,0xEF,0xFD,0xF1,0x0B,0xFF,0xEC,0x07,0xEE, 0xF7,0xEE,0xEF,0xEF,0x6F,0xEB,0x5F,0xE7,0xBF,0xEF,0x5F,0xFC,0xE7,0xF3,0xF9},/*"设",19*/ {0xFF,0xBF,0xDF,0xBF,0xEF,0xBF,0xEF,0xBF,0xFF,0xBF,0xFF,0xBF,0x08,0x01,0xEF,0xBF,0xEF,0x BF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEB,0xBF,0xE7,0xBF,0xEF,0xBF,0xFF,0xBF},/*"计",20*/ {0xFD,0xFF,0xFE,0xFF,0xC0,0x07,0xF7,0xDF,0xFB,0xBF,0x00,0x01,0xFF,0xFF,0xE0,0x0F,0xEF,0x EF,0xEF,0xEF,0xE0,0x0F,0xFB,0xBF,0xFB,0xBF,0xF7,0xBD,0xCF,0xBD,0x3F,0xC1},/*"竞",21*/ {0xFE,0xFF,0x80,0x01,0xBB,0xBD,0x60,0x0B,0xFB,0xBF,0xC0,0x07,0xFB,0xBF,0x00,0x01,0xF7,0 xDF,0xE0,0x0F,0xD6,0xD7,0x36,0xD9,0xF6,0xDF,0xF5,0x5F,0xFB,0xBF,0xE7,0xDF},/*"赛",22*/ {0xFF,0xFF,0x00,0x7F,0xDD,0x03,0xDD,0xBB,0xC1,0xBB,0xDD,0xBB,0xDD,0xBB,0xC1,0xBB,0x DD,0xD7,0xDD,0xD7,0xD8,0x57,0x05,0xEF,0xBD,0xEF,0xFD,0xD7,0xFD,0xBB,0xFD,0x7D},/*"取",23*/

{0xF7,0xFF,0xF4,0x07,0xED,0xF7,0xDC,0x07,0xB5,0xF7,0xF4,0x07,0xEF,0xFF,0xCC,0x03,0xAF,0 xEF,0x68,0x01,0xEF,0xEF,0xED,0xEF,0xEE,0xEF,0xEF,0xEF,0xEF,0xAF,0xEF,0xDF},/*"得",24*/ {0xFF,0xFF,0x80,0x03,0xBF,0xFB,0xB0,0x1B,0xB7,0xDB,0xB0,0x1B,0xBF,0xFB,0xA0,0x0B,0xAF, 0xEB,0xAE,0xEB,0xAE,0xEB,0xAD,0x6B,0xBB,0xBB,0xB7,0xDB,0x80,0x03,0xBF,0xFB},/*"圆",25*/

{0xFE,0xF7,0xDE,0xF7,0xE8,0x01,0xEE,0xF7,0x7F,0xFF,0xB8,0x01,0xBF,0x6F,0xEF,0x6F,0xE8,0x 01,0xDB,0x6D,0x1B,0x6D,0xDA,0x95,0xD9,0xB9,0xDB,0xFD,0xDB,0xF5,0xFB,0xFB},/*"满",26*/ {0xFF,0xAF,0xFF,0xB7,0xFF,0xBF,0xC0,0x01,0xDF,0xBF,0xDF,0xBF,0xDF,0xBB,0xC1,0xBB,0xDD ,0xBB,0xDD,0xD7,0xDD,0xD7,0xDD,0xED,0xD5,0xCD,0xBB,0xB5,0xBF,0x79,0x7E,0xFD},/*"成",27*/

{0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0x01,0xBF,0xEE,0x03,0xEF,0xBB,0xEF,0xBB,0xEF,0xBB,0xEF,0 xBB,0xEF,0x7B,0xEF,0x7B,0xE1,0x7B,0x0E,0xFB,0xBE,0xFB,0xFD,0xD7,0xFB,0xEF},/*"功",28*/

};

unsigned char code Bmp3[][32]={

{0xF7,0xFF,0xF6,0x03,0xF7,0xBB,0x81,0xBB,0xF7,0xBB,0xF7,0x6B,0x00,0xF7,0xF7,0x03,0xD7,0 x7B,0xD7,0x7B,0xD1,0x7B,0xD7,0x03,0xD7,0xFF,0xA7,0xFF,0xB0,0x01,0x7F,0xFF},/*"超",0*/ {0xEF,0xD7,0xEF,0xDB,0xEF,0xDF,0x82,0x03,0xEE,0xDF,0xEE,0xDB,0x02,0xDB,0xEE,0xD7,0xE E,0xD7,0xAE,0xEF,0xA2,0x6B,0xAE,0xD3,0x8F,0xBB,0xAF,0xFF,0xB0,0x01,0x7F,0xFF},/*"越",1*/

{0xF7,0xDF,0xF7,0xDF,0x81,0x03,0xF7,0xDF,0xE3,0x8F,0xD5,0x57,0x37,0xD9,0xFB,0xFF,0xF8,0x 0F,0xF7,0xEF,0xEB,0xDF,0xDD,0xBF,0xFE,0x7F,0xFD,0xFF,0xF3,0xFF,0x8F,0xFF},/*"梦",2*/

{0xF7,0xFF,0xF7,0x07,0xF7,0x77,0x81,0x77,0xF7,0x07,0xE7,0x77,0xE3,0x07,0xD5,0x77,0xB7,0x7 7,0xF7,0x07,0xFE,0xFF,0xF7,0x7B,0xB7,0x6D,0xB7,0xED,0x78,0x0F,0xFF,0xFF},/*"想",3*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"一",4*/

{0xF7,0xFF,0xF7,0xFF,0xF7,0x07,0x81,0xF7,0xF7,0xF7,0xF7,0xF7,0x01,0x07,0xF7,0x77,0xD7,0x7 F,0xD7,0x7F,0xD1,0x7B,0xD7,0x7B,0xD7,0x83,0xA7,0xFF,0xB0,0x01,0x7F,0xFF},/*"起",5*/

{0xFF,0xFF,0x00,0x3F,0xFF,0xBF,0xFF,0xBB,0xFF,0xB7,0xFF,0xAF,0xFF,0x9F,0xFF,0xAF,0xFF,0x B7,0xFF,0xBB,0xFF,0xDF,0xFF,0xDF,0xFF,0xED,0xFF,0xF5,0xFF,0xF9,0xFF,0xFD},/*"飞",6*/ };

unsigned char code Bmp4[][32]={

{0xF7,0xFF,0xF7,0x03,0xF7,0x7B,0xF7,0x7B,0x01,0x7B,0xF7,0x03,0xE7,0x7B,0xE3,0x7B,0xD5,0x 7B,0xD5,0x03,0xB7,0x7B,0x77,0x7B,0xF7,0x7B,0xF7,0x7B,0xF7,0x03,0xF7,0x7B},/*"相",0*/

{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",1*/ {0xFE,0xFF,0xFD,0xFF,0xFB,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0x EF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF},/*"自",2*/

{0xFF,0xFF,0xC0,0x0F,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xC0,0x0F,0xDF,0xF F,0xDF,0xFF,0xDF,0xFF,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xE0,0x03,0xFF,0xFF},/*"己",3*/

{0xF7,0xFF,0xF7,0x03,0xF7,0x7B,0xF7,0x7B,0x01,0x7B,0xF7,0x03,0xE7,0x7B,0xE3,0x7B,0xD5,0x 7B,0xD5,0x03,0xB7,0x7B,0x77,0x7B,0xF7,0x7B,0xF7,0x7B,0xF7,0x03,0xF7,0x7B},/*"相",4*/

{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",5*/ {0xFF,0xFF,0xFF,0x03,0x83,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x03,0x83,0x7B,0xBB,0x7B,0xBB, 0x7B,0xBB,0x03,0x83,0x7B,0xBB,0x7B,0xFE,0xFB,0xFE,0xFB,0xFD,0xEB,0xFB,0xF7},/*"明",6*/ {0xFF,0xFF,0xC0,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x 7F,0xFD,0x7F,0xFB,0xBF,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xDF,0xF7,0x3F,0xF9},/*"天",7*/}; unsigned char code Bmp5[][32]={

{0xFB,0xBF,0xF1,0xAF,0x87,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xBB,0xF5,0 xBB,0xF3,0xB7,0xE7,0xCF,0x97,0xDD,0xF7,0xAD,0xF7,0x75,0xD4,0xF9,0xEF,0xFD},/*"我",0*/ {0xEF,0xBF,0xDB,0xBB,0xBD,0xB7,0x00,0x8F,0xFE,0xBF,0xFF,0xBD,0x81,0xBD,0xBD,0xC1,0xB D,0xFF,0x81,0xBB,0xBD,0xB7,0xBD,0x8F,0x81,0xBF,0xBD,0xBD,0xB5,0xBD,0xBB,0xC1},/*"能",1*/

{0xF7,0xFF,0xF6,0x03,0xEF,0xFF,0xDF,0xFF,0xB7,0xFF,0xF7,0xFF,0xEC,0x01,0xCF,0xDF,0xAF,0x DF,0x6F,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0x5F,0xEF,0xBF},/*"行",2*/ };

/*************延时函数(约1ms)**************/

void delay(unsigned int dt)

{

register unsigned char bt;

for (;dt;dt--)

for(bt=0;bt<250;bt++);

}

/***********主函数**********/

void main(void)

{

register unsigned char i,j,k,l,q,w;//初始化

SCON=0X00;//串口工作模式0:移位寄存器方式

TMOD=0X01;//定时器T0工作方式1:16位方式

TR0=1;//启动定时器T0

CONIO=0x3f;//初始化控制口

IE=0x82;//允许定时器T0中断

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

{

for(q=0;q

if(i%2)delay(1);

}

while(1)

{

//第一种显示效果:向上滚屏,每次BLKN/2个字

for(i=0;i

{

for (j=0;j<16;j++)

{

for(k=0;k<15;k++)

{

for(q=0;q

{dispram[k*2+q*32]=dispram[(k+1)*2+q*32];

dispram[k*2+1+q*32]=dispram[(k+1)*2+1+q*32];}

}

for(q=0;q

{dispram[30+q*32]=Bmp[q+i*BLKN/2][j*2];dispram[31+q*32]=Bmp[q+i*BLKN/2][j *2+1];}

delay(100);

}

delay(1500);//滚动暂住

}

//卷帘出黑屏

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

{

for(q=0;q

if(i%2)delay(120);

}

delay(1000);

//第二种显示效果:向下滚屏

for (w=0;w

{

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

{

for(q=0;q

if(i%2)delay(120);

}

delay(1000);

}

//切换:卷帘出黑屏

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

{

for(q=0;q

if(i%2)delay(60);

}

delay(500);

//第三种显示效果我能行

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

{

for(q=0,w=2;q<1,w<3;q++,w++){dispram[i+q*32]=Bmp5[0][i];dispram[i+w*32]=Bmp 5[0][i];}

if(i%2)delay(40);

}

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

{

for(q=1,w=3;q<2,w<4;q++,w++){dispram[i+q*32]=Bmp5[1][i];dispram[i+w*32]=Bmp 5[1][i];}

if(i%2)delay(60);

}

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

{

for(q=0;q

if(i%2)delay(60);

}

delay(1000);

//切换:卷帘出白屏

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

{

for(q=0;q

if(i%2)delay(60);

}

delay(500);

//第四种显示效果:一起闪

for(j=0;j<7;j++)

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

{

for(q=0;q

if(i%2)delay(35);

}

delay(1000);

//切换:卷帘出黑屏

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

{

for(q=0;q

if(i%2)delay(120);

}

delay(1000);

//第五种显示效果:左移出显示

for(i=0;i

{

for (j=0;j<2;j++)

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

{

for(l=0;l<16;l++)

{

for(q=0;q

{

dispram[l*2+q*32]=dispram[l*2+q*32]<<1|dispram[l*2+1+q*32]>>7; if(q==BLKN/2-1)dispram[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|Bmp2[i][l*2+j]>>(7 -k);

else

dispram[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|dispram[l*2+(q+1)*32]>>7;

}

}

delay(80);

}

}

delay(2000);

//切换:卷帘出黑屏

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

{

for(q=0;q

if(i%2)delay(120);

}

delay(1000);

}

}

//主函数结束

/**********显示屏扫描(定时器T0中断)函数******************/ void leddisplay(void)interrupt 1 using 1

{

register unsigned char m,n=BLKN;

TH0=0xfc;

TL0=0x18;

m=CONIO;

m=++m&0x0f;

do{

n--;

SBUF=dispram[m*2+(n/2)*30+n];

while(!TI);TI=0;

}while(n);

G=1;

CONIO&=0xf0;

CLK=1;

CONIO|=m;

CLK=0;

G=0;

}

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

基于51单片机的led点阵显示

项目名称:基于51单片机的LED点阵显示器 目录 一、项目介绍 (2) 1.1 项目背景 1.2 功能介绍 二、电路结构 (3) 三、实现模块 (5) 四、运行程序 (7) 一、项目介绍 1.1项目背景 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工

作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。 1.2功能介绍 2本次设计的用单片机控制的显示电路使用比较简单,操作方便。它主要是通过一个8×8点阵来显示图案,通过不同的按键来选择控制图案的种类及显示方式。在通电以后,显示屏全亮,随后进入逐字显示状态。按下复位键K1,系统自动复位,显示diligent,随后进入待命状态。按键1、2、3、4分别控制不同的图案。另外,我们可以通k5键来控制字符移动速度的快慢。 二、电路结构 单片机最小系统设计 2.2.1 各部分具体电路 1 单片机的时钟电路 AT89C52单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。 内部时钟方式:利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图2-1电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为6MHz的石英晶体,电容器一般选择30PF左右。

基于51单片机的汉字点阵显示设计

湖南科技大学测控技术与仪器专业
单 片 机 课 程 设 计
题 姓 学 名 号

指导教师 成 绩 ____________________
湖南科技大学机电工程学院 二〇一五年十二月制

湖南科技大学课程设计
摘要
LED 显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。作为 一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的 东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更 能给人一种美的享受。LED 显示屏是由多个发光二极管按矩阵形式排列封装而成,通常 用来显示时间、图文等各种信息。本设计是基于 ATS52 单片机的 16*16 点阵式显示屏, 该 LED 显示屏能实现 16*16 个汉字,简单的显示图像, 然后一直循环着显示下去。该设 计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意 不要超过负载能力。本次设计的作品体积小、功能多、方便实用、花费小,电路具有结 构简单、操作方便、精度高、应用广泛的特点。 关键词: LED,ATS51 单片机,显示屏
-2-

湖南科技大学课程设计
目录
摘要…………………………………………………………………………i 第一章 系统功能要求 ……………………………………………………1 1.1 系统设计要求 ……………………………………………………1 第二章 方案论证 …………………………………………………………1 2.1 方案论证 …………………………………………………………1 第三章 系统硬件电路设计 ………………………………………………1 3.1 AT89S51 芯片的介绍 ………………………………………………1 3.1.1 系统单片机选型…………………………………………………1 3.1.2 AT89S51 引脚功能介绍 …………………………………………2 3.2 LED 点阵介绍………………………………………………………2 3.2.1LED 点阵……………………………………………………………2 3.3 系统各硬件电路介绍 ………………………………………………3
3.3.1 系统电源电路设计介绍……………………………………………3 3.3.2 复位电路……………………………………………………………4 3.3.3 晶振电路……………………………………………………………4 3.4 系统的总的原理图……………………………………………………5 第四章 系统程序设计 ………………………………………………………5 4.1 基于 PROTEUS 的电路仿真……………………………………………5 4.2 用 PROTEUS 绘制原理 ………………………………………………6
4.3PROTEUS 对单片机内核的仿真 ………………………………………6
-3-

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

51单片机驱动16×16LED点阵显示动画汉字汇编程序

51单片机驱动16×16LED点阵显示动画汉字汇编程序 这里提供一个完整的AT89S51单片机驱动驱动led点阵显示具有动画效果的汉字的汇编程序列子. ORG 0000H ST: MOV A,#0FFH ;初始化 MOV P1,A MOV P2,A MOV P3,A MOV P0,A CLR A MOV R0,#50H ;显示缓存清0 MOV R1,#20H ;控制清0的次数 ST0: MOV R0,A INC R0 DJNZ R1,ST0 ;正文显示 CHINESE: MOV DPTR,#TAB1 ;查表指针指向TAB1 LCALL HZ ;结束动画 SCREE: MOV DPTR,#TAB2;查表指针指向TAB2 ACALL DD MOV DPTR,#TAB3;查表指针指向TAB3 ACALL DD MOV DPTR,#TAB4;查表指针指向TAB4 ACALL DD LJMP CHINESE ;显示8幅画面子程序,SCREE专用,用字模软件字要倒置(表必须深256字节) DD: MOV B,#00H

MOV R0,#08H ;显示8幅画面 AJMP CC CC0: MOV A,B ADD A,#20H ;指向下一幅画面 MOV B,A CC: MOV R7,#08H ;画面停留时间 MOV R3,B MOV 37H,R0 LCALL ENTER DIS00: LCALL DISPLAY DJNZ R7,DIS00 MOV R0,37H DJNZ R0,CC0 RET ;汉字上移子程序,可显示8个汉字,(表必须深256字节) HZ: MOV R3,#00H ;查表偏移量 MOV R5,#81H ;查表128次 MOVBACK: MOV R4,#10H ;使显示完一个汉字 MOVBACK0: MOV R7,#02H ;一桢画面显示时间 MOV R0,#6DH ;低8位R0指向显示缓存倒数第3个字节,以备与最后1个字节交换MOV R1,#6CH ;高8位R1指向显示缓存倒数第4个字节,以备与倒数第2个字节交换MOV R2,#10H ;存后移的次数 DJNZ R5,MOVBACK1 RET ;显示完该表,返回 MOVBACK1: MOV A,R0 ;低8位被后移的存单元数据暂存入A INC R0 ;后移两字节 INC R0 MOV R0,A ;放入要移的低8位数据 MOV A,R0 ;R0指向下一个要后移的存单元 SUBB A,#04H

单片机LED点阵显示方法与程序代码

单片机LED点阵显示方法与程序代码 点阵的接法有共阴和共阳两种(共阳指的是对每一行LED来讲是共阳)。 由于51单片机驱动能力有限,亮度不够,所以一般需要三极管驱动,下图为一个8X8点阵原理图,仅仅是仿真,如果需要接实物的话,加上三极管才足够亮。 显示的方法有两种: 1、逐列扫描方式。如下图所示,P1口输出列码决定哪一列能亮(相当于位码),P2口输出行码(列数据)决定列上哪些LED亮(相当于段码),能亮的列从左向右扫描完8列(相当于位码循环移位8次)即显示出一帧完整的图像。 2、逐行扫描方式,与逐列扫描调换,即P2口输出位码,P1口输出段码,扫描完8行显示出一帧图像。 以逐行扫描为例,从上图可以很明了的知道点阵的显示原理了(红色表示高电平,绿色表示低电平),当把扫描速度加快,人的视觉停留,看见的就是一幅图或一个字了,如下图所示。

一、行扫描静态显示, 用51单片机实现上图静态显示的程序如下: #include #define uchar unsigned char #define uint unsigned int uchar code TAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3}; uchar i,t; delay(uchar t) { while (t--) {;} } void main(void) { while(1) { P2=0x01; for(i=0;i<8;i++) { P1=TAB; delay(100); P2=P2<<1|P2>>7; } } } 二、行扫描翻页显示 字码取模方式为逐行 第一次从字码数组中取出第1~8个数据置于列上,行扫描顺序为1~8行,显示一帧,第二次取第9~16个数据,行扫描顺序仍为1~8行,显示第二帧,第三次取第17~24个数据,…… 实现图显示效果的程序如下:

51单片机课程设计源程序

TIME0_DOWN EQU F0 ;将F0设置为定时器0定时到标志 FINISH_ID EQU 30H ;学号发送标志 KEY_FLAG BIT 00H ;有键按下标志 KEY_LONG BIT 01H ;键长按 KEY_D EQU 31H ;键值存放地址 ADC0809_AD EQU 8000H ;设置ADC0809地址 DAC0832_AD EQU 0000H ;设置DAC0832地址 ADC_FLAG BIT 02H ;设置ADC0809读数据标志 ADC_DATE EQU 32H ;设置ADC0809数据地址 ADC_0 EQU 33H ;ADC0809转化为BCD码后个位存放地址 ADC_1 EQU 34H ;十分位存放地址 ADC_2 EQU 35H ;百分位存放地址 ADC_3 EQU 36H ;千分位存放地址 ORG 0000H ;程序开始,跳转至主程序 0000 020030 LJMP MAIN ORG 0003H ;外部中断0入口0003 020141 LJMP INT0_IN ORG 000BH ;设置定时器0中断入口地址 000B 020132 LJMP TIME0 ORG 0013H ;外部中断1入口0013 020151 LJMP INT1_IN ORG 0030H ;主程序开始地址 0030 758169 MAIN: MOV SP,#69H ;初始化堆栈指针 0033 C292 CLR P1.2 ;显示器清零 0035 D292 SETB P1.2 0037 753000 MOV FINISH_ID,#0 ;将标志位清零 003A C2D5 C LR TIME0_DOWN 003C C200 CLR KEY_FLAG 003E C201 CLR KEY_LONG 0040 753100 MOV KEY_D,#0 0043 C202 CLR ADC_FLAG 0045 753200 MOV ADC_DATE,#0 0048 753300 MOV ADC_0,#0 004B 753400 MOV ADC_1,#0 004E 753500 MOV ADC_2,#0 0051 753600 MOV ADC_3,#0 0054 C291 CLR P1.1 ;初始化键盘,行线置零,有键按下触发中断 0056 C293 CLR P1.3

51单片机点阵设计

51单片机点阵设计 在做点阵之前先来了解下点阵的原理和点阵显示的 过程。 点阵实际上就是64个单独的led灯排列为8行8列 ROW1-8、COL1-8分别控制行和列的1-8led。ROWx高电平、COLy低电平,对应的第x行、第y列led灯亮。 电路图

简化了实际应用电路硬件根据要求自己加 P3口驱动ROW P2口驱动COL 如何让点阵显示字符?点阵显示字符都是动态的,和多位的数码管一样,并不是一次就显示行或列,而是一次只显示1行,在很短的时间内将8行分别显示出来。由于时间很短,我们的眼睛是看不出来是分开显示的。以字符'1'为例。 分别显示8行 ROW-0x01 COL-0xef ROW-0x02 COL-0xe7 ROW-0x04 COL-0xef ROW-0x08 COL-0xef ROW-0x10 COL-0xef ROW-0x20 COL-0xef

ROW-0x40 COL-0xef ROW-0x80 COL-0xc7 源程序: #include ; unsigned char code NUM[8]={0xef,0xe7,0xef,0xef,0xef,0xef,0xef,0xc7}; #define ROW P3 #define COL P2 void main(void) { unsigned char i,j,k; while(1) { k=0x01; for(i=0;i 电路图

源程序 #include ; #include ; unsigned char code NUM[8]={0x00,0x00,0xe00,0x82,0xff,0x80,0x00,0x00}; #define ROW P3 sbit SI=P2^0; sbit RCK=P2^2; sbit SCK=P2^1; void HC595SendData(unsigned char SendVal) { unsigned char i; for(i=0;i<8;i++) { if((SendVal<

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

基于51单片机的LED点阵设计

毕业设计(论文)题目: 院 (系): 专业: 姓名: 学号: 指导教师:

毕业设计(论文)任务书

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,作为微型机的一个主要分支,单片机在结构上的最大特点是把CPU、RAM和ROM 存储器、定时器和多种I/O接口电路集成在一块超大规模集成电路芯片上。从它的组成和功能来看,一块单片机芯片其实就是一台计算机。 本次设计是采用MSC-51单片机来设计的四位数计算器, 采用C语言进行程序编写实现计算器功能。外接4X4的键盘,通过键盘扫描来完成输入数的控制,利用驱动电路使数值与结果在七段共阴极数码管上正常显示,并设有清零键可随时完成计算与显示的清零。计算器将完成的0至9999整数的一次加/减/乘/除运算。 执行过程如下: 开机即显示0,等待键入数值,当输入数字,将通过数码管显示出来,在输入+、-、*、/运算符之后,计算器在内部执行数值转换和存储,并等待再次输入数值,当在键入数值后将显示键入的数值,按等号就会在数码管上显示运算结果。 关键字:单片机计算器键盘扫描程序

n recent years, as computer penetration in the social field and large-scale development of integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields, As one of the main branch of microcomputer, microcontroller in the structure of the biggest feature is the CPU, RAM and ROM memory, timer and multiple I / O interface circuit integrated on a VLSI chip. The composition and function from its point of view, a single chip is actually a computer. This design is the use of MSC-51 microcontroller to design the four-digit calculator, using C programming language to achieve calculator functions. 4X4 external keyboard, the keyboard scan to finish by the number of control values and make the drive circuit to the cathode results in a total of seven-segment digital tube display properly, and has cleared at any time to complete key calculation and display clear. Calculator to complete an integer from 0 to 9999 plus / minus / multiply / divide. Implementation of the process is as follows: Power is displayed 0, waiting type value, when the input numbers, will come out through the digital display, the input +,-,*,/ operator, the calculator in the internal implementation of the numerical conversion and storage, and wait for the re-enter the value, when Type the value in the type of value will be displayed by an equal sign will be displayed in the digital control operation results. Key words: SCM calculator keyboard scan C language

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

51单片机 8x8点阵显示程序参考

本程序用的是51单片机控制8*8点阵显示I(心形)U #include #define uint unsigned int #define uchar unsigned char //使用的IO口要根据自己接在单片机里的情况来更改 sbit RCK = P3^6; //声明串行输出存储锁存线RCK sbit SCK = P3^5; //声明串行数据输入时钟线SCK sbit SER = P3^4; //声明串行数据输入线SER sbit HC = P0^0; //声明C信号接口 sbit HB = P0^1; //声明B信号接口 sbit HA = P0^2; //声明A信号接口 #define ROW1 HC = 0; HB = 0; HA = 0; //定义使能第1行#define ROW2 HC = 0; HB = 0; HA = 1; //定义使能第2行#define ROW3 HC = 0; HB = 1; HA = 0; //定义使能第3行#define ROW4 HC = 0; HB = 1; HA = 1; //定义使能第4行#define ROW5 HC = 1; HB = 0; HA = 0; //定义使能第5行#define ROW6 HC = 1; HB = 0; HA = 1; //定义使能第6行#define ROW7 HC = 1; HB = 1; HA = 0; //定义使能第7行#define ROW8 HC = 1; HB = 1; HA = 1; //定义使能第8行

uchar h; //显示数据,可以用取模软件来获取 uchar iloveu[] = { 0x00,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00, 0x00,0x36,0x7F,0x7F,0x3E,0x1C,0x08,0x00, 0x00,0x22,0x22,0x22,0x22,0x22,0x1C,0x00, 0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00, 0x7C,0x08,0x10,0x08,0x04,0x44,0x38,0x00, 0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00, 0x08,0x18,0x28,0x48,0x7C,0x08,0x08,0x00}; void delay(uint z) //延时函数,单位ms { uint i, j; for(i = z; i > 0; i--) for(j = 110; j > 0; j--); } void ROW() //行驱动函数

(完整word版)51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。 1、详细描述硬件安装过程中出现的故障现象,并作故障分析,及解决方法。 六、软件调试

基于单片机的Led点阵广告牌设计

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 基于单片机的LED广告牌设计 班级电子2班姓名秦地学号0902214075 成绩 一、设计背景 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED 显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 二、任务要求 设计一个简易的LED广告牌,用于显示自己的名字或其它个性信息。显示的字符用LED 发光二极管排列成固定形状,在控制电路驱动下各字符轮流循环点亮。或者用LED点阵显示,显示内容可更新。汉字一般是以点阵式方式存储的,如16×16,24×24点阵。汉字的字模其实是汉字字形的图形化。所谓16点阵字模,就是把汉字写在一个16×16的网格内,汉字的笔划通过某网格时该网格就对应1,否则该网格对应0,这样,每一网格均对应1或0,把对应1的网格连起来看,就是这个汉字。汉字就是这样通过字节表示其点阵存储在字形中的。为了方便查找所需要汉字的点阵,每个汉字都与一个双字节的内码相对应。通过汉字的内码可以计算出它的点阵起始字节。 三、整体设计方案 如图所示,本设计通过单片机来控制行列驱动器使LED显示屏显示出汉字,单片机选用AT89C52芯片,行驱动器采用74HC154的P0口,列驱动器选用74HC595芯片。该系统主要由AT89C52芯片、电源、行驱动器、列驱动器、16×64LED点阵5部分组成。

51单片机课程设计 AD转换

课程设计报告 华中师范大学武汉传媒学院 传媒技术学院 电子信息工程2011 仅发布百度文库,版权所有.

AD转换 要求: A.使用单片机实现AD转换 B.可以实现一位AD转换,并显示(保留4位数字)设计框图:

方案设计: AD转换时单片机设计比较重要的实验。模数转换芯片种类多,可以满足不同用途和不同精度功耗等。 外部模拟量选择的是简单的电位器,通过控制电位器来改变模拟电压。显示电压值采用一般的四位七段数码管。而AD转换芯片采用使用最广的ADC0809 ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。 下面说明各引脚功能: ?IN0~IN7:8路模拟量输入端。 ?2-1~2-8:8位数字量输出端。 ?ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。?ALE:地址锁存允许信号,输入端,高电平有效。 ?START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 ?EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 ?OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ?CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

?REF(+)、REF(-):基准电压。 ?Vcc:电源,单一+5V。 ?GND:地 工作原理: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 本次实验采用中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

基于51单片机的88点阵

基于51单片机的8*8点阵 ——Mezer chen编辑整理 一、Protues仿真效果图 二、8*8点阵C程序 #include #define uchar unsigned char #define uint unsigned int uchar code wela[]={0x01,0x02,0x04,0x08}; uchar code dula[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; voiddelayms(uint c) { uinti,j; for(i=c;i>0;i--) for(j=11;j>0;j--); } uintt,u; uchar code table[]= { 0xFF,0xFD,0xEF,0x7D,0xEF,0xBD,0xEF,0xCD,0x00,0xF0,0xEF,0xFD,0xEF,0xFD,0xEF,0

xFD, 0xEF,0xFD,0xEF,0xFD,0x00,0x00,0xEF,0xFD,0xEF,0xFD,0xEF,0xFD,0xFF,0xFD,0xFF,0 xFF,/*"井",0*/ 0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xFD,0xFF,0xDD,0xF7,0xBD,0xFB,0x7D,0xFD,0xFD,0 xFE, 0x7D,0xFD,0xBD,0xFB,0xDD,0xF7,0xFD,0xBF,0xFD,0x7F,0x01,0x80,0xFF,0xFF,0xFF,0 xFF,/*"冈",1*/ 0xFF,0xFF,0xFF,0xFF,0x0F,0xC0,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0x00,0 xC0, 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0x0F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0 xFF,/*"山",2*/ 0xDF,0x7F,0xDF,0x7F,0xDF,0xBF,0xDF,0xDF,0xDF,0xEF,0xDF,0xF3,0xDF,0xFC,0x00,0 xFF, 0xDF,0xFC,0xDF,0xF3,0xDF,0xEF,0xDF,0xDF,0xDF,0xBF,0xDF,0x7F,0xDF,0x7F,0xFF,0 xFF,/*"大",3*/ 0xBF,0xFB,0xCF,0xFB,0xEE,0xFB,0x69,0xFB,0x6F,0xFB,0x6F,0xBB,0x6E,0x7B,0x69,0 x81, 0x6F,0xF9,0x6F,0xFA,0x67,0xFB,0xEB,0xFB,0xEC,0xFB,0xAF,0xFB,0xCF,0xFB,0xFF,0 xFF,/*"学",4*/ 0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0 xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0 xFF,/*",",5*/ 0xFF,0x7F,0x01,0x80,0xDD,0xFD,0xDD,0x7D,0x01,0x00,0xD7,0xFE,0x56,0xDF,0x91,0 xD2, 0xD7,0xD6,0xC0,0xD6,0xD7,0xD6,0x93,0xB0,0x54,0x77,0xD7,0x86,0xDF,0xFE,0xFF,0 xFF,/*"腾",6*/ 0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0 xFF, 0xFD,0xFF,0x01,0xFC,0xBF,0xF3,0x5F,0xEF,0xEF,0xDE,0xF7,0xBD,0xFF,0x0F,0xFF,0 xFF,/*"飞",7*/ 0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x00,0 x80, 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x07,0x60,0xFF,0x7F,0xFF,0x0F,0xFF,0

相关主题
文本预览
相关文档 最新文档