久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17069|回復: 16
收起左側

求助:關于最基本的LED的控制

[復制鏈接]
ID:12437 發表于 2009-5-13 23:44 | 顯示全部樓層 |閱讀模式
前天在這里買的160元的板子,教程都是C的,我用匯編的,請教高手們一問題:
下面這段程序可以只使8個LED閃爍,但是只要我改動第5行的#00H為其它值,數碼管對應的段也會閃起來?如:改為#0FEH時第一個LED閃,但數碼管第一個數也閃,是8子沒有上面一橫。
(這款板的LED共正極端通過了一個晶體管控制基極為低時導通,基極通到了P14,所以有第四句。)
         ORG 0000H
         AJMP MAIN
         ORG 030H
MAIN:MOV P1,#0EFH 
        MOV P0,#00H
        ACALL DEL
        MOV P0,#0FFH
        ACALL DEL
        AJMP MAIN
DEL: MOV R5,#04H
DEL1: MOV R6,#0FFH
DEL2: MOV R7,#0FFH
DEL3: DJNZ R7, DEL3
         DJNZ R6, DEL2
         DJNZ R5, DEL1
         RET
         END
請高手幫忙看看,謝謝。
[此貼子已經被作者于2009-5-14 8:39:04編輯過]
回復

使用道具 舉報

ID:12437 發表于 2009-5-14 08:37 | 顯示全部樓層

我頂起,那么多高手去那里了?

回復

使用道具 舉報

ID:12826 發表于 2009-5-14 15:33 | 顯示全部樓層

應該有個跳線帽,給去了。。。

回復

使用道具 舉報

ID:12437 發表于 2009-5-14 20:25 | 顯示全部樓層

收到貨才幾天,我沒有去掉過跳線帽啊。

回復

使用道具 舉報

ID:12793 發表于 2009-5-14 22:40 | 顯示全部樓層

我也是初學者,不過我看你這個延時是不是短了?

回復

使用道具 舉報

ID:6481 發表于 2009-5-15 00:05 | 顯示全部樓層
開發板的8個數碼管為2*4 位共陰數碼管,它的位選端和段選端都連接在MCU 的P0 端,
再通過74HC573 鎖存器直接控制驅動顯示
 建議你去看下 附帶的資料 里面的
STC51-02A開發板資料-總括和說明.pdf
里面的電路圖很清楚
  數碼管的段選和位選都是接在P0上的
剛開始程序
       MOV P0,#00H
        ACALL DEL
        MOV P0,#0FFH
那么直接是給P0全0然后全1 不影響74HC573的 數據鎖存
后面 改第5條語句
MOV P0,#0FEH
即 MOV P0,11111110B
P0。1為0 對應 選中從左到右第一個數碼管  
再改一下程序
MOV P0,#0FH 高4位為0 選中從左到右后4個數碼管 同時 段碼也只顯示A,B,C,D 4位 
P0是數碼管和LED 復用的 改變P0的值對這2個都會有影響
  板子買回來 看下電路圖 再找找上面用的 芯片的PDF 
    找找示例程序 書上的 網上的 (對應的接口定義需要改一下 比如有的板子用MAX7219 有的用其他的來驅動數碼管 )開工吧     
  
 
回復

使用道具 舉報

ID:12437 發表于 2009-5-15 13:51 | 顯示全部樓層
昨天下午看了原理圖搞定了,把P21置低數碼管就不亮了。樓上的回復的比較晚,不過比較詳細,多謝。
但是兩片74HC573的控制端分別是接在P01和P02上,但只要P01為低時,數碼管都不亮,但是P01為高時,P02對數碼管沒影響?請指點。
另外光盤里的KEIL不能使用,重裝了兩臺電腦都不行,后來網上下就解決了,里面的教程都是C的,這些對一個剛入門的來說的確是困難重重啊。

感謝各位關注。
[此貼子已經被作者于2009-5-15 13:52:39編輯過]
回復

使用道具 舉報

ID:6481 發表于 2009-5-15 15:17 | 顯示全部樓層

既然涉及到數碼管部分來了
我把數碼管的原理和程序貼出來
希望能更好的幫助你理解
在 《STC51-02A開發板資料-總括和說明.pdf
里很清楚的看到了
P2。0接的是段碼控制端
P2。1是位碼
74HC573驅動模塊和其他數碼管驅動又是不同的方式
比如MAX7219 或者74HC245等
 它的主要思路是 要要顯示的數據 比如20H-27H單元中的數據
先取20H中的數 查段碼表(這個最基本的查表應該沒問題了 )
 numtab: db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,39H
我們來看段碼表
   第一個數 3FH 就是00111111 對應ABCDEFG DP 就是ABCDEF 亮 G 和DP 不亮
那么這就是顯示數字0
 第二個數    06H 就是00000110  就是 BC 亮 其他不亮  就是顯示數字1
 后面以此類推。。。。。
緊接著  我們要讓20H 的值顯示到第一個數碼管 那么再用
P2。1來選擇位碼位
實現方法是 先做了一張表
tab: db 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
    我們看第一個0FEH 就是11111110 就是第一個數碼管 
    第二個數      0FDH,就是11111101  就是選中第二個數碼管 
    以此類推 。。。。。
 
說一下74HC573 的原理PDF上也有  
 OE:output_enable,輸出使能;  第 1腳
LE:latch_enable,數據鎖存使能,latch是鎖存的意思;  第11腳
Dn:第n路輸入數據;  2-9 腳
On:第n路輸出數據;   19-12腳
我們看這個板子的電路圖
2個573片子的 第1腳都是直接接地的 也就是說輸出使能一直是打開的
那么我們要控制的就是 LE腳  也就是接在單片機上的 P2。0 和P2。1
來控制數據的鎖存
在實際應用的時候是這樣做的:
a. OE=0; (573的第1腳直接接地) 
b. 先將數據從單片機的口線上輸出到Dn; (從P0送數據)
c. 再將LE從0->1->0 (下降沿鎖存)
d. 這時,你所需要輸出的數據就鎖存在On上了,輸入的數據在變化也影響不到輸出的數據了

好了  說了這么多文字性的 下面是實驗板源程序 編譯通過 直接運行
 

;-----------------------------
;單片機內存分配申明!
DUAN        BIT P2.0 
WEI         BIT P2.1
led         bit p1.4
GE_BIT      EQU 30H
SHI_BIT     EQU 31H
XCQ_DATA    EQU  40H ;顯存區

;---------------------------
       ORG 0000H
       ljmp main
       org 0020H
;--------------------------------
main:  
       MOV R0,#XCQ_DATA
   MOV a,#20
   mov @r0,a
  
   acall chuli
   acall display
   ajmp main

         
;---------------------
;數據處理子程序
;------------------- 
CHULI:
       mov a,XCQ_DATA
       MOV B,#10
       DIV AB
       MOV GE_BIT,b;個 位存入30H中
       MOV B,#10
       DIV AB
       MOV SHI_BIT,b ;十位存入31H中
       RET
;--------------------------
;數碼管顯示子程序
;-------------------------
DISPLAY:
       mov r0,#4
dpl1:  mov r1,#250 ;
dplop:

       MOV DPTR ,#NUMTAB
       clr DUAN        
       mov a,SHI_BIT ;取十位數
       MOVC A,@A+DPTR ;查十位數的7段代碼
       mov p0,A ;送出十位的7段代碼
       SETB DUAN  ;打開鎖存 給它一個下降沿
       clr DUAN       ; 這里就是上面的第三步c. 再將LE從0->1->0 (下降沿鎖存)
       CLR WEI
       MOV P0,#0DFH
       SETB WEI
       CLR WEI
       lcall DELAY ;

       MOV DPTR ,#NUMTAB
       CLR DUAN
       mov a,GE_BIT ;取個位數
       MOVC A,@A+DPTR ;查個位數的7段代碼
       mov p0,A ;送出個位的7段代碼
       SETB  DUAN ;   打開鎖存 給它一個下降沿
       CLR DUAN
       CLR WEI
       MOV P0,#0BFH
       SETB WEI
       CLR WEI
       lcall DELAY 

       MOV DPTR ,#NUMTAB
       CLR DUAN
       mov a,#11 ;顯示C
       MOVC A,@A+DPTR ;
       mov p0,a ;
       SETB DUAN
       clr DUAN ;
       CLR WEI
       MOV P0,#07FH
       SETB WEI
       CLR WEI
       lcall DELAY

       CLR DUAN
       MOV P0,#00H
       SETB DUAN
       CLR DUAN
       lcall DELAY ;
       djnz r1,dplop ;
       djnz r0,dpl1 ;
       ret
;-------------------
;延時程序
;--------------------
DELAY:
       MOV R7,#250
       DJNZ R7,$
       RET
;------------------------------------------------
;實驗板上的7段數碼管0~9數字的共Y顯示代碼
;-----------------------------
numtab: db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,39H
tab: db 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
;0 1 2 3 4 5 6 7
       END





 

回復

使用道具 舉報

ID:12437 發表于 2009-5-16 14:53 | 顯示全部樓層
多謝耗子。
回復

使用道具 舉報

ID:6481 發表于 2009-5-19 10:54 | 顯示全部樓層

我應該的   加油!

回復

使用道具 舉報

ID:1905 發表于 2010-1-22 05:01 | 顯示全部樓層
好帖啊,讓我學到了不少東西,
回復

使用道具 舉報

ID:26266 發表于 2010-10-7 10:21 | 顯示全部樓層
不錯!!學習中。。。
回復

使用道具 舉報

ID:29055 發表于 2011-5-24 02:45 | 顯示全部樓層
這個帖子讓我學到了 很多東西.
回復

使用道具 舉報

ID:31196 發表于 2011-9-21 14:35 | 顯示全部樓層
,學到了很多,必須一頂
回復

使用道具 舉報

ID:32997 發表于 2011-11-2 18:28 | 顯示全部樓層

 

回復

使用道具 舉報

ID:51335 發表于 2013-6-28 22:11 | 顯示全部樓層
{:soso_e179:}
回復

使用道具 舉報

ID:56665 發表于 2013-12-17 10:24 | 顯示全部樓層
單片機c程序適合新手學習。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久一区二区 | 99精品一区二区 | 国产原创视频 | 高清一区二区三区 | 天天操一操 | 99看片网| 日韩色视频 | 久久亚洲天堂 | 天天操夜夜拍 | 国产精品成人在线播放 | 国产精品福利网 | 在线播放一区 | 亚洲精品99 | 国产精品久久精品 | 中文字幕在线网 | 欧美视频一区 | 久久国产精品一区二区三区 | 久久综合久久综合久久综合 | 欧美一区二区三区在线观看视频 | 日本91av视频 | 欧美精品久久久久 | 亚洲高清在线观看 | 色婷婷影院| 久久青青| 中文字幕在线观看视频一区 | 99精品欧美一区二区蜜桃免费 | 中文字幕在线三区 | 欧美激情一区二区 | 超碰电影 | 天天爽夜夜骑 | 婷婷福利视频导航 | 色吧久久 | 亚洲欧美日本在线 | 免费同性女女aaa免费网站 | 精品国产乱码久久久久久蜜柚 | 亚洲视频第一页 | 国产片网站 | 色网站视频 | 亚洲欧美日韩系列 | heyzo在线| 国产精品明星裸体写真集 |