找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6413|回复: 11
打印 上一主题 下一主题
收起左侧

求一个点阵锁的范例~

[复制链接]
跳转到指定楼层
楼主
ID:27368 发表于 2010-12-17 22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
         我在驱动51hei板子上的LED发光管的时候~  八段数码管和8*8的点阵都亮了~使得电路电流很大~八位译码管我会锁了~求一个点阵锁法~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2010-12-17 23:42 | 只看该作者
首先我们来了解一下为什么点阵他会亮?看下面的电路图
 


 点阵亮的条件有2个:1.
阴极为0,2.阳极为1

  先说第一个条件因为点阵的阴极是接在u1 74hc573上的,而这个573是接在p0口的,与数码管和流水灯的控制端口重复,所以我们在驱动数码管或者流水灯的时候也会有可能把点阵的阴极置为了0,这时候一旦点阵阳极的某个脚为1,第2个条件也成立了点阵就会立刻出现亮条,
  那么为什么阳极会出现1呢?因为我们没有对74hc164进行初始化,他输出的是一个随机值

  那么如何不让他亮呢?其实我们只要在程序的开头将74hc164的所有输出引脚初始化为0,则点阵将不会再亮

1.c语言的解决办法:

这个功能我已经写在51hei.h 这个头文件里了

你只需要在程序的开头写一行#include"51hei.H"  并且把51hei.h文件复制到当前目录
然后在main主函数的开头加入下面2个函数即可

guanled(); //关8个数码管 

guandz();  //关8*8点阵

关于这两个函数的原理51hei.h里有非常详细的注释你可以看看.

51hei.h这个文件及其使用范例http://www.51hei.com/f/流水灯_c语言.rar
你在"程序"文件夹中搜索一下便可找到很多.

 

2.汇编语言的解决办法:
      ;以下5行的功能是关闭8*8点阵的输出,也就是把所有的行置0,这样不管列为任何电平点阵都不会亮了.
         MOV     R2,#8   ;输出数据8位
hei:     CLR     P2.4     ;拉低SCL,以便下次拉高便可产生上升沿
         CLR     P2.5      ;数据先送入74hc164,等待clk上升沿的到来
         SETB    P2.4     ;低电平到高电平边沿触发到来,并行数据输出至164的Q0-Q7
         DJNZ    R2,hei   ;判断输出完毕了没有

 

总结:
 虽然流水灯,数码管,8*8点阵这3个设备都是接在p0口上的,但因其各自都具有使能端(可令其有效或失效) ,使得我们能独立的控制其中的某一个设备,互不干扰,这样设计的好处就是节约了单片机有限的端口资源

[此贴子已经被作者于2011-1-29 17:50:38编辑过]
回复

使用道具 举报

板凳
ID:27368 发表于 2010-12-18 19:49 | 只看该作者
多谢指点
回复

使用道具 举报

地板
ID:27368 发表于 2010-12-22 23:21 | 只看该作者
为什么我这样用LED灯也不亮??
回复

使用道具 举报

5#
ID:1 发表于 2010-12-22 23:36 | 只看该作者
你只调用 guandz() //关8*8点阵 这一句  不要调用guanled() 
回复

使用道具 举报

6#
ID:27368 发表于 2010-12-23 22:39 | 只看该作者
  我没有调用不要调用guanled()   这句啊~~~~~~~~~~ 也不亮~
回复

使用道具 举报

7#
ID:1 发表于 2010-12-24 02:32 | 只看该作者

你把51hei.h 中的guandz()  中有操作P0的语句统统删掉就行了哦

回复

使用道具 举报

8#
ID:27368 发表于 2010-12-24 18:40 | 只看该作者
   头文件在哪里可以修改???? 我怎么找不到?
回复

使用道具 举报

9#
ID:1 发表于 2010-12-24 20:09 | 只看该作者
51hei.h 你要打开这个文件就看到了
回复

使用道具 举报

10#
ID:27368 发表于 2010-12-26 12:33 | 只看该作者
我输入头文件~它提示无法打开
回复

使用道具 举报

11#
ID:1 发表于 2010-12-26 13:04 | 只看该作者
提示找不到文件那肯定是你没有把51hei.h头文件复制到 当前的文件夹里啊,我提供的例程里有几百个这样的程序,你随便复制一个完整的目录出来按照样子一模一样的搞然后修改就行了。这很简单的
回复

使用道具 举报

12#
ID:39662 发表于 2012-5-24 14:23 | 只看该作者
谢谢 指 点,很有用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表