機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
PIC單片機(jī)控制LED點(diǎn)陣顯示屏
PIC單片機(jī)控制LED點(diǎn)陣顯示屏
 更新時(shí)間:2008-7-26 17:07:20  點(diǎn)擊數(shù):3
【字體: 字體顏色
本實(shí)驗(yàn)在proteus軟件上模擬完成。

       實(shí)驗(yàn)器件:208X8LED點(diǎn)陣顯示屏,1074LS164移位寄存器,1074LS273數(shù)據(jù)鎖存器,274LS138譯碼器,1PIC16F877A單片機(jī)。

       proteus元件庫(kù)中中沒(méi)有16X80點(diǎn)陣顯示屏,所以用208X8LED點(diǎn)陣屏拼裝而成。

       1074LS164移位寄存器和1074LS273數(shù)據(jù)鎖存器用于傳送和保存一行數(shù)據(jù)。

274LS138構(gòu)成416譯碼器用于行選。

實(shí)驗(yàn)截圖:

源程序:

 list  p=16f877A ; list directive to define processor
 #include <p16f877A.inc> ; processor specific variable definitions
 
 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.

;***** VARIABLE DEFINITIONS
w_temp  EQU 0x7D  ; variable used for context saving
status_temp EQU 0x7E  ; variable used for context saving
pclath_temp EQU 0x7F  ; variable used for context saving  


DELAY_REG EQU 0x20
LINE_NUM EQU 0x21  ;行號(hào)
BYTE_NUM EQU 0x22  ;字節(jié)號(hào)
WORD_NUM EQU 0x23  ;字號(hào)
       ;字號(hào)X32 + 行號(hào)X2 + 字節(jié)號(hào) 得查表偏移量。
BYTE_BIT_COUNT EQU 0x24 ;一個(gè)字節(jié)的位數(shù),移位時(shí)用


SER   EQU 0x07   
SCK   EQU 0x00   
RCK   EQU 0x01

;**********************************************************************
 ORG     0x000             ; processor reset vector

 nop     ; nop required for icd
   goto    main              ; go to beginning of program


 ORG     0x004             ; interrupt vector location
 retfie                    ; return from interrupt

main

; remaining code goes here

 BSF  STATUS,RP0
 CLRF TRISB
 CLRF TRISC
 CLRF TRISD
 BCF  STATUS,RP0

 CLRF PORTB
 CLRF PORTC
 CLRF PORTD
 CLRF LINE_NUM

MAIN_LOOP:
 CALL LOAD_A_LINE    ;加載一行
 
MOVF LINE_NUM,W    ;行選
 MOVWF PORTC     
 BSF  PORTB,RCK    ;將一行數(shù)據(jù)送入鎖存器
 NOP
 NOP
 BCF  PORTB,RCK
 CALL DELAY     ;延時(shí)
 INCF LINE_NUM    ;下一行
 BCF  LINE_NUM,4    ;一共16行,模16
 GOTO MAIN_LOOP


;加載一行
LOAD_A_LINE:      
 CLRF WORD_NUM    ;字號(hào)清零
LOAD_A_WORD:
 CLRF BYTE_NUM    ;字節(jié)號(hào)清零
LOAD_A_BYTE: 
 BCF  STATUS,C    ;清除C標(biāo)志位,為移位乘2做準(zhǔn)備
 RLF  LINE_NUM,W    ;每個(gè)字一行占兩個(gè)字節(jié),所以乘2    
 ADDWF WORD_NUM,W    ;下面WORD_NUM每次加32,不用再乘
 ADDWF BYTE_NUM,W    ;行號(hào)X2 + 字號(hào)X32 + 字節(jié)號(hào)
 CALL ENCODE     ;查表,取出對(duì)應(yīng)的字節(jié)
 MOVWF PORTD     
 MOVLW D'8'
 MOVWF BYTE_BIT_COUNT   ;一個(gè)字節(jié)有8位
LOAD_A_BIT:
 BSF  PORTB,SCK    ;將PORTD最高位送入移位寄存器
 NOP
 NOP
 BCF  PORTB,SCK
 RLF  PORTD     ;移位,準(zhǔn)備將下一位送入移位寄存器
 DECFSZ BYTE_BIT_COUNT   ;循環(huán)8次
 GOTO LOAD_A_BIT

 INCF BYTE_NUM
 BTFSS BYTE_NUM,1    ;BYTE_NUM==2?一行有兩個(gè)字節(jié)
 GOTO LOAD_A_BYTE
 MOVLW D'32'
 ADDWF WORD_NUM    ;一個(gè)字32個(gè)字節(jié),每次加32,使用時(shí)不用再乘32
 MOVF WORD_NUM,W
 SUBLW D'160'
 BTFSS STATUS,Z    ;WORD_NUM==160?5個(gè)字160個(gè)字節(jié)
 GOTO LOAD_A_WORD
 RETURN

;延時(shí)
DELAY:
 DECFSZ DELAY_REG
 GOTO DELAY
 RETURN
 
 
ENCODE:
 ADDWF PCL
 ;黑
 DT 0x3F,0xF8,0x21,0x08,0x29,0x28,0x25,0x48,0x25,0x88,0x3F,0xF8,0x01,0x00,0x01,0x00,
 DT 0x3F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x00,0x48,0x84,0x44,0x42,0x84,0x42,0x00,0x00
 ;龍
 DT 0x02,0x00,0x02,0x40,0x02,0x20,0x02,0x20,0x7F,0xFE,0x02,0x80,0x02,0x90,0x02,0x90,
 DT 0x04,0xA0,0x04,0xC0,0x08,0x80,0x09,0x80,0x12,0x82,0x20,0x82,0x40,0x7E,0x00,0x00
 ;江
 DT 0x20,0x00,0x10,0x00,0x13,0xFC,0x00,0x40,0x88,0x40,0x48,0x40,0x50,0x40,0x10,0x40,
 DT 0x10,0x40,0x20,0x40,0xE0,0x40,0x20,0x40,0x20,0x40,0x2F,0xFE,0x20,0x00,0x00,0x00
 ;大
 DT 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
 DT 0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04
 ;學(xué)
 DT 0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
 DT 0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00


 END                       ; directive 'end of program'



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1599263

  • 上一篇: PIC單片機(jī)通訊例程
  • 下一篇: P87LPC764單片機(jī)的I2C總線(xiàn)顯示電路
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話(huà):0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1