标题: 这是我写的一个51单片机led点阵显示大字的程序,为啥植入单片机中点阵并未显示呢 [打印本页]
作者: 哈哈我哈哈 时间: 2018-10-22 20:59
标题: 这是我写的一个51单片机led点阵显示大字的程序,为啥植入单片机中点阵并未显示呢
下面是程序:
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^6;
u8 ledduan[]={0x00,0x00,0x48,0x50,0xe0,0x50,0x48,0x00};
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay(u16 i)
{
while(i--);
}
void Hc595SendByte(u8 dat)
{
u8 a;
SRCLK=0;
RCLK=0;
for(a=0;a<8;a++)
{
SER=dat>>7;
dat<<=1;
SRCLK=1;
_nop_();
_nop_();
SRCLK=0;
}
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
void main()
{
u8 i;
while(1)
{
P0=0x7f;
for(i=0;i<8;i++)
{
P0=ledwei[i];
Hc595SendByte(ledduan[i]);
delay(100);
Hc595SendByte(0x00);
}
}
}
我反复检查了几遍并没有啥问题啊,点阵显示其他汉字倒是可以。请问这是为什么?
作者: angmall 时间: 2018-10-22 21:56
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4; //P3^6; 红字这里错了
作者: 杀手cdx 时间: 2018-10-22 22:54
感觉没有什么问题
作者: HC6800-ES-V2.0 时间: 2018-10-23 08:24
程序正确,就是没有调好路线冒。
JP595要接上,JOE要接到GND一边。
作者: zl2168 时间: 2018-10-23 21:58
本帖最后由 zl2168 于 2018-10-24 09:09 编辑
实例66 LED 16×16点阵扫描显示汉字
⒈ 电路设计…
⒉ 汉字编码…
⑴ 汉字编码概述…
⑵ 汉字点阵显示代码…
⑶ 汉字点阵取模软件…
⒊ 电路设计…
说明:用一片154(4-16译码器)代替2片138(3-8译码器),性价比更高。
对LED显示来说,164比595性价比更高(都是串入并出移位寄存器,164控制更简单)⒋程序设计 …⒌Keil调试…
6. Proteus仿真…
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1.书中电路和程序设计有详细说明,程序语句条条有注解。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |