

实现的效果是

急求!!!

#include<reg51.h>
#include<intrins.h>
#define NOP() _nop_()
sbit MOSIO=P3^0;
sbit R_CLK=P3^2;
sbit S_CLK=P3^1;
void HC595Send(unsigned int SendVal);
unsigned int Val;
unsigned char codetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char codedigittab[24][8]={
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00},//9
{0x00,0x00,0x7F,0x48,0x48,0x30,0x00,0x00},//P
{0x00,0x00,0x7F,0x48,0x4C,0x73,0x00,0x00},//R
{0x00,0x00,0x7F,0x49,0x49,0x49,0x00,0x00},//E
{0x00,0x00,0x3E,0x41,0x41,0x62,0x00,0x00},//C
{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00},//H
{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00},//I
{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00},//N
{0x7C,0x48,0x48,0xFF,0x48,0x48,0x7C,0x00},
{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00},//H
{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00},//I
{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00},//N
{0x7C,0x48,0x48,0xFF,0x48,0x48,0x7C,0x00}
};
unsigned int timecount;
unsigned char cnta;
unsigned char cntb;
void HC595Send(unsigned int SendVal)
{
unsigned char i;
for(i = 0; i < 16; i++)
{
if((SendVal << i)&0x8000)
{
MOSIO=1; //setdatalinehigh0X8000
}
else
{
MOSIO=0; //MOSIO=1
}
S_CLK = 0;
NOP();
NOP();
S_CLK = 1;
}
R_CLK = 0; //setdatalinelow
NOP();
NOP();
R_CLK = 1;
}
void main(void)
{
TMOD=0x01;
TH0 = (65536 - 3000) / 256;
TL0 = (65536 - 3000) % 256;
TR0 = 1;
ET0 = 1;
EA = 1;
cntb = 0;
while(1)
{
}
}
void timer0() interrupt 1 using 0
{
TH0=(65536-3000) / 256;
TL0=(65536-3000) % 256;
if(cntb < 16)
{
P0 = ~codedigittab[cntb][cnta];
Val = codetab[cnta]&0x00ff;
Val <<= 8;
Val = Val + 0x00ff;
HC595Send(Val);
}
else
{
P0 = ~codedigittab[cntb - 24][cnta];
Val = codetab[cnta];
Val = Val + 0xFF00;
HC595Send(Val);
}
if(++cnta >= 8)
cnta = 0;
if(++timecount >= 333)
{
timecount = 0;
if(++cntb >= 36)
cntb = 0;
}
}
reg51.h> #include <intrins.h>//要用到 _nop_() #define uint unsigned int #define uchar unsigned char sbit SH_595=P2^1; sbit DATA_595=P2^0; sbit ST_CP_595=P2^2;//74HC595(12)-ST_CP上升沿...
51单片机 16X192点阵程序动态显示任意汉字 程序参考源代码如下: #include<AT89X52.H> sbit ST=P3^5; sbit E1=P3^4; sbit MR=P3^7; char cashe[12]; char code wd[12][16]={ {0xFF,0xC0,0xFE,0xFE,0xFE,0xFE...
使用51单片机实现点阵汉字平滑滚动显示 #说明:采用的芯片是89C51,LED点阵屏的规格是16*16,同时使用了两个74HC595芯片,字模生成软件在文末有网盘链接。 1 连接原理图 整体的电路连接如上图所示,单片机只需要...
根据点阵原理图,P00-P07接低电平,D0-D7接高电平时led点亮,由于单片机控制端口有限,于是只能每次点亮一列,逐列扫描,利用人眼的视觉暂留形成同时点亮的现象。将要点亮的LED灯标记为1,每一列根据D0-D7...
德菲来 51开发板,双色点阵 2.基本流程 蛇身用二维数组存储,上下左右通过dx,dy组合,有4个使能位(上行时不能向下),HC595锁存发数据。 功能:暂停、加减速、上下左右(keyscan()里扫描改变状态)、变色、...
实验目的:用8*8的LED点阵显示一颗爱心。 ...单片机上集成的电路方式为第二种。 其中,行由P0口控制,列由D7~D0(HC595芯片控制,见下方)控制。 图一 首先考虑,如何先点亮一个灯? eg:让...
目录目录................................................................................................................................1函数的使用和熟悉********************************/.................
上学期期末的课设题目是led点阵广告牌,当时的要求如下: (1)能够显示不同字符的LED点阵广告牌;...当时用的是我用是的普中科技的STC89C51RD+的单片机,不过只要是51单片机,换哪个51内核的芯片都可...
题目:基于51单片机的RGB三色LED灯点阵(8*8)要求: 1、主控:必须是51单片机 2、RGB三色LED灯: 必须是三色的LED彩灯(即一个灯四个引脚,很重要!!!), 共阴共阳无所谓 3、驱动芯片:驱动三色LED点阵必须用专门的驱动芯片,...
51单片机的8-8点阵汇编语言仿真,有proteus仿真和汇编程序
10.4 51 单片机 RAM 区域的划分 10.5 长短按键的应用 10.6 练习题 第11章 UART串口通信 11.1 串行通信的初步认识 11.2 RS232 通信接口 11.3 USB 转串口通信 11.4 IO 口模拟 UART 串口通信 11.5 UART 串口...
a 单色点阵与双色点阵发光原理 1)单色点阵 ...因此要实现一根柱形的亮法,如图上图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对
名称:按键控制 8X8LED 点阵屏显示图形 说明:每次按下 K1 时,会使 8X8LED点阵屏循环显示不同图形。本例同时使用外部中断和定时中断。
单片机C语言程序设计实训100例大集合 本书基于Keil μVision程序设计平台和Proteus硬件仿真平台,精心编写了100余个8051单片机C语言程序设计案例。完整的资料已经上传到闯客网技术论坛了,关于这个资料已经创建了一...
(注:在51清翔单片机上面,这8个引脚是引出来,所以88使用的是这个原理图里面的1-6个引脚) (注:清翔的点阵屏把需要使用的74HC595放到了点阵屏模块里面) 实物: 74HC595 因为点阵里面有88个LED灯,所以直接用串口去...
#include <reg52.h> #include <intrins.h> sbit DIO=P3^4; sbit S_CLK=P3^5; sbit R_CLK=P3^6; void Dio_Byte(unsigned char dat) {unsigned char i; for(i=0;i<8;i++) { S_CLK=0;...vo..
51单片机入门——用库函数实现流水灯左右移动(向右移动N次后再向左移标题动M次 由于电路图决定P0口为低电平时,led亮! #include<reg52.h> //头文件 #include<intrins.h> //库函数头文件 #define ...
实现用12864显示一个汉字,字符串,数字,浮点数以及可调节的电子时钟。
一、设计目的 ...88LED点阵,AT89C51单片机,120欧姆电阻,数据总线,复位电路与晶振电路。 (3) 设计过程及调试关键步骤 首先对88LED点阵的行与列通过高低电平进行检测,将行与列的显示条件检测完毕后,将
近年来,点阵LED显示屏利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,已成为众多显示媒体以及户外作业显示的电子工具...
主函数 #include #include "boxfunction.h" #define uchar unsigned char #define uint unsigned int sbit swit = P1^0; sbit left = P1^1; sbit right = P1^2; sbit down = P1^3; sbit reset = P1^4;...sbit l
3.单片机上电或复位后会给下位机发送一个字符串问候语,之后便一直等待接收下位机的数据,并在P0口将接收到的数据显示出来。 /*------------------------------------------------------------ Function...
这一定要有一个实际的实物:单片机和电机,或仿真软件,软硬结合才能实现
采用STC51RC单片机和16*16的点阵来实现汉字滚动显示,采用的是C语言的编程实现。
2006-05-02 19:32:58 0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" height=86 src="http://www.51c51.com/51test/51ctou.JPG" width=
本文档是由C语言编写的代码,可以直接下载到51系列单片机中使用。大家使用时请注意端口的设置。键盘的端口是P1.0-P1.6,LED灯的端口是P3.3-P3.7,空出的P3.0,P3.1端口可以用来下载程序。数码管的端口是P0口和P2口。...
先看看电路图
我的51版型号是HC6800-ES 上图中画圈的地方是控制74HC595的OE引脚的电平,OE位低电平时,74HC595芯片输出正常。 8*8LED矩阵主要时由74HC595芯片和P0 I/O口控制。如上图所示,P0口控制显示列, D0-D7(595芯片的...
C程序单片机8X8点阵上下滚动显示,用C语言实现单片机控制电路,实现8X8点阵上下滚动显示。
51单片机C语言程序设计经典实例 LCD液晶显示设计 LED点阵显示设计 串行总线扩展及应用设计 单片机串行通信设计 定时_计数器控制的应用设计 键盘控制与LED数码管显示 数模转换 中断控制的应用设计