欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求一個點陣鎖的范例~ [打印本頁]

作者: 華林    時間: 2010-12-17 22:35
標題: 求一個點陣鎖的范例~
         我在驅動51hei板子上的LED發光管的時候~  八段數碼管和8*8的點陣都亮了~使得電路電流很大~八位譯碼管我會鎖了~求一個點陣鎖法~
作者: admin    時間: 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.raoushi.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編輯過]

作者: 華林    時間: 2010-12-18 19:49
多謝指點
作者: 華林    時間: 2010-12-22 23:21
為什么我這樣用LED燈也不亮??
作者: admin    時間: 2010-12-22 23:36
你只調用 guandz() //關8*8點陣 這一句  不要調用guanled() 
作者: 華林    時間: 2010-12-23 22:39
  我沒有調用不要調用guanled()   這句啊~~~~~~~~~~ 也不亮~
作者: admin    時間: 2010-12-24 02:32

你把51hei.h 中的guandz()  中有操作P0的語句統統刪掉就行了哦


作者: 華林    時間: 2010-12-24 18:40
   頭文件在哪里可以修改???? 我怎么找不到?
作者: admin    時間: 2010-12-24 20:09
51hei.h 你要打開這個文件就看到了
作者: 華林    時間: 2010-12-26 12:33
我輸入頭文件~它提示無法打開
作者: admin    時間: 2010-12-26 13:04
提示找不到文件那肯定是你沒有把51hei.h頭文件復制到 當前的文件夾里啊,我提供的例程里有幾百個這樣的程序,你隨便復制一個完整的目錄出來按照樣子一模一樣的搞然后修改就行了。這很簡單的

作者: huhao    時間: 2012-5-24 14:23
謝謝 指 點,很有用!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1