89C51做16*16点阵问题 不显示 对其不是很了解就开始做了 就是用2个138作行驱动,2个595作列驱动

作者&投稿:莱露 (若有异议请与网页底部的电邮联系)
做一个16*16点阵汉字动态显示,就是硬件不太懂,接线接到这不会了,求单片机大神帮忙补全!谢谢,!~


拼一下就行

74hc154的驱动能力比较差。。。

从理论上说不论是图形还是文字,只要控制与组成这些图形文字的led器件的亮暗就可以得到预期的结果,这种同时控制各个放光点的亮暗的方法称为静态驱动显示方法。16x32点阵中有512个放光二极管,很显然单片机没有那么多端口,如果采用8位锁存器来扩充端口的话,则至少需要64个,这是一个庞大的数据,为了节省锁存器成本,简化电路,我们可采用另一种称为动态扫描的方法来进行控制,这样把所有发光二级管的阴极连在一起,先送入控制第一行发光二极管的亮灭的锁存器,然后通过第一行使其燃亮一定时间,然后熄灭。再送第二行的锁存器,并使其燃亮相同的时间,然后熄灭。以此类推,第十六行之后又返回第一行。由于人眼视觉的停留时间,因此屏幕上将显示出所预期的团现象。
采用扫描显示时,每一行都有一个行驱动器,各行的同名列共用一个驱动器。显示数据主要存储于单片机中,显示时要把相应的数据存储在列锁存器中。从控制电路到驱动器可通过并列方式或串接方式来实现。对于列锁存器应具有与并行锁存器的功能,串并移位锁存器就可准备下一行的显示数据,而不会影响本行显示。
解决串行输出中列数据准备和列数据显示的矛盾,可采用数据重叠处理的方法。在传送数据是送入下一行数据的显示。控制电路主要采用单片机,主要负责控制存储显示数据模块、安排控制显示的定时与顺序等,控制驱动led显示的电路等。驱动电路则分为航驱动电8536路和列驱动电路,用来驱动led点阵显示。综上就是我们设计的主要电路原理。

我做了好多个小点阵了,可参考我百度空间。
我写的程序没有一个用的串口通信的。
也帮别人写也好多程序,别人的电路都是接在串口上,
但我也可以就当IO口用呀。不一定要用串口。


如何用c51编写51单片机控制步进电机转动程序
A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次...

c51单片机中如何用汇编语言编写流水灯
AJMP START;ORG 001BH;T1中断 AJMP T1INT;;定义变量=== YSJSEQU 30H;延时计数器 LEDEQU 31H;LED控制缓冲器 ;主程序=== START:MOV LED,#0FEH;初始化数据 MOV YSJS,#0;;MOV TMOD,#10H;定时器1工作于方式1,16位定时器 MOV TL1,#0B0H;设置定时初值 MOV TH1,#3CH;定时时间=50mS SETB ...

C51单片机,位进制怎么换算代码的啊? 我是初学的,请教一下那位高手能给...
10进制就是从1到9,也就是最大,再增大一个就变为10。16进制就是从1到9,然后A B C D E F,F代表15,也就是最大,再增大一个就变为10。8进制同样到了7之后,就变为10。二进制过了1就变10。

单片机C51设计电子密码锁的程序 goto(1,0)和按键是怎么识别的_百度知 ...
密码锁 按键一般是 矩阵键盘 ,识别键盘是通过发送扫描码,比如行扫描,发送行扫描码,依次检测列状态。goto(1,0)是不对的,因为这里goto是内部关键字,不会允许使用,程序里面是gotoxy(1,0),这应该是显示位置,比如这个,就是0行1列。

用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器...
用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。用proteus做的时钟 可以显示年月日时分秒 可调整时间 有图 \/ includereg52.h

单片机显示16*16汉字
做一个完整的系统。进一步学习下面的软件或者语言(知识):BVprotel 99 se keil c51proteusc\/c++easy isp 51Easy 51Pro.exe2007-5-25 下面为静止显示“农林大学”四个字的程序: #include <REG51.h>#define uchar unsigned char#define uint unsigned intuchar disrow;uchar code HZ[];uchar BUFF[9];void ...

C51中宏的定义
!!!这是最基本的C语言语法,没于任何难点。简单的替代关系。。。[Oldkey] [67次] 2008-6-9 7:03:31 宏只是简单的替换,只要定义过的宏后边的宏就可以用前边的宏[ddllxxrr] [51次] 2008-6-9 8:17:45 参考资料:http:\/\/www.c51bbs.com\/thread-25740-1-13.html ...

求教一个51单片机程序。。(LCD电子时钟)
ri=1;write_nyr(9,ri);temp=(ri)\/10*16+(ri)%10;write_1302(0x8e,0x00);write_1302(0x86,temp);write_1302(0x8e,0x80);write_1602com(yh+10);break;case 6:yue++;if(yue==13)yue=1;write_nyr(6,yue);temp=(yue)\/10*16+(yue)%10;write_1302(0x8e,0x00);write_1302(0x88,temp);...

Keil C51单片机 字符串数组问题高手来啊
看到了你前面的提问,用sprintf函数是可以的,但是数据部分要转为整形,sprintf没有uchar类型。

stc89 c51的引脚个数?
8. 6通道15位专门的高精度PWM(带死区控制) + 2通道CCP(利用它的高速脉冲输出功能可实现11~16位PWM)---可用来再实现8路D\/A,或2个16位定时器,或2个外部中断(支持上升沿\/下降沿中断)9. 6路增强型PWM 10. 内部高可靠复位,ISP编程时16级复位门槛电压可选,可彻底省掉外部复位电路 11. 工作...

川汇区18890542403: 我想弄一个8*8点阵的LED,,用89C51实现,,是不是不用译码器了???如果是16*16的话就需要译码器??? -
蔡淑清热: 是这样的,用不用译码器是节不节省单片机管脚的问题.如果你16*16你也可以不用译码器的,但是你就要用16只管脚,如果用译码器你只要用4只就行了.这个纯属是扫描的问题,当然是加比较好啦

川汇区18890542403: 51单片机能不能 直接驱动16*16点阵 -
蔡淑清热: 直接驱动主要问题是电流驱动能力太小,另外需占用32个IO口,对于40脚的芯片,没有一个闲置端口了

川汇区18890542403: C51芯片不能驱动太大的LED点阵吗? -
蔡淑清热: 你的朋友所说是在不扩展I/O口的情况下,由于51单片机有32根I/O口线,所以可以用16根做LED阵列的行控制,用16根做列控制,再通过软件来控制16*16的LED点阵的显示.这种方式更多的是用于教材或样例,用来说明单片机原理及其在LED...

川汇区18890542403: 用51单片机做16*16点阵需要哪些材料 -
蔡淑清热: 师弟...不能做伸手党丫...: )好吧说正经的..首先最基本的要求是点阵驱动.因为16x16,要用32个I/O口,对于89S51单片机这是不现实的.所以需要I/O口扩展.I/O扩展有很多方法,比较常用的是用四个锁存器(74HC573),...

川汇区18890542403: 我用51系列单片机做16*16汉字点阵,但是点阵显示偏暗怎么办?我想是单片机出来的电流太小的缘故吧? -
蔡淑清热: 一般都用595来做,8行一个595 需要2个595送数据; 再用2个595当列扫描,共需要4个595 就可以完成; 另外,你也可以用三极管来驱动行,但是这样会造成行列显示亮度不一致,但绝对比用IO直接驱动要好的多,单片机的驱动电流是很弱的,即便是加上拉电阻也不足以驱动点阵

川汇区18890542403: 你好,谢谢,我完善一下,主芯片类型89c51采用四个74hc595作为16*16点阵显示芯片,采用c语言编程, -
蔡淑清热: 关键程序如下:uint arr[]={ 0x7fff,0xffff,0xffff,0xffff},*p=arr ;void delay (void) {TMOD=0X01;TR0=1;TH0=0X63;TL0=0X18;while(!TF0);TF0=0;TR0=0; }void ST595(void) {ST=0;_nop_();_nop_();ST=1;_nop_();_nop_();ST=0; }void ...

川汇区18890542403: 我想做个16*16的LED点阵,用51单片机控制,请问是否要外加电压电源已达到亮度,是不是还要加上拉电阻.我还想问下,怎么才能排除在组成的图形中的“... -
蔡淑清热:[答案] 单片机采用MSC-51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定.单片机的串口与列驱动器相连,用来显示数据.P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信...

川汇区18890542403: 如何用c51单片机和8255扩展芯片设计16*16LED点阵显示屏设计 -
蔡淑清热: 一般建议用2片3-8译码器做片选信号(控制16个口),然后再用两个P口(也是16脚)进行数据传输,这样就能实现16*16的数据显示了,建议PROTUES仿真,网上这样的例子很多,但仿真时可能效果不如实际开发板上效果好. 这里有个视频教材,protues 仿真实现,很好很强大,希望对你有用.http://v.youku.com/v_show/id_XMjYwOTgzMjky.html 另外 如果有试验箱,就会有指导手册和例程,多问问老师.

川汇区18890542403: 单片机16X16点阵程序问题 -
蔡淑清热: void SLCD_Wr_Data() { uint i,h,k,temp,temp1; // delay(); // P0 = stable_OE[h]; //7个74ls154的位选用途 for(i = 0;i < 16;i++) { P1 = i; for(h = 0;h < 7;h++) { temp = stable[6-h][2*i]; for(k = 0;k < 8;k++) { if(temp&0x01) { P2_0 = 0; } else { P2_0 = 1; } temp = ...

川汇区18890542403: 做了一个16*16的点阵屏STC89C52RC做控制芯片行是阴74LS164+9013)列是阳74HC595)不能正常显示,运行. -
蔡淑清热: 先确定一下问题存在哪里.是硬件还是软件...可以先写一个简单的程序,只点亮一行或是一列...看下效果.如果能正常发光的话,换其他行多试几次,如果都没问题说明硬件没什么问题了,接下来就调程序了...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网