機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
用51單片機(jī)做的拉幕式數(shù)碼顯示課程設(shè)計(jì)
用51單片機(jī)做的拉幕式數(shù)碼顯示課程設(shè)計(jì)
 更新時(shí)間:2008-7-27 13:54:21  點(diǎn)擊數(shù):4
【字體: 字體顏色

1  實(shí)驗(yàn)任務(wù) 

AT89S51單片機(jī)的P0.0/AD0P0.7/AD7端口接數(shù)碼管的ah端,8位數(shù)碼管的S1S8通過74LS138譯碼器的Y0Y7來控制選通每個(gè)數(shù)碼管的位選端。AT89S51單片機(jī)的P1.0P1.2控制74LS138AB,C端子。在8位數(shù)碼管上從右向左循環(huán)顯示“12345678”。能夠比較平滑地看到拉幕的效果。

2 電路原理圖

 

3 系統(tǒng)板上硬件連線

1       把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD78芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ah端口上;

2       把“三八譯碼模塊”區(qū)域中的Y0Y78芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S8端口上;

3       把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0P1.2端口用3根導(dǎo)線連接到“三八譯碼模塊”區(qū)域中的A、BC“端口上;

4 程序設(shè)計(jì)方法

動(dòng)態(tài)數(shù)碼顯示技術(shù):如何進(jìn)行動(dòng)態(tài)掃描,由于一次只能讓一個(gè)數(shù)碼管顯示,因此,要顯示8位的數(shù)據(jù),必須經(jīng)過讓數(shù)碼管一個(gè)一個(gè)輪流顯示才可以,同時(shí)每個(gè)數(shù)碼管顯示的時(shí)間大約在1ms4ms之間,所以為了保證正確顯示,我必須每隔1ms,就得刷新一個(gè)數(shù)碼管。而這刷新時(shí)間我們采用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來控制,每定時(shí)1ms對(duì)數(shù)碼管刷新一次,T0采用方式2。在進(jìn)行數(shù)碼顯示的時(shí)候,要對(duì)顯示單元開辟8個(gè)顯示緩沖區(qū),每個(gè)顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。

5 程序框圖

 主程序框圖

 

中斷服務(wù)程序

 

6 匯編源程序

DISPBUF         EQU 30H

DISPCNT         EQU 38H

DISPBIT         EQU 39H

T1CNTA          EQU 3AH

T1CNTB          EQU 3BH

CNT             EQU 3CH

 

                ORG 00H

              LJMP START

                ORG 0BH

                LJMP INT_T0

START:          MOV DISPCNT,#8

                MOV A,#10

                MOV R1,#DISPBUF

LP:             MOV @R1,A

                INC R1

                DJNZ DISPCNT,LP

                MOV DISPBIT,#00H

                MOV T1CNTA,#00H

                MOV T1CNTB,#00H

                MOV CNT,#00H

                MOV TMOD,#01H

                MOV TH0,#(65536-1000) / 256

                MOV TL0,#(65536-1000) MOD 256

                SETB TR0

                SETB ET0

                SETB EA

                SJMP $

 

INT_T0:

                MOV TH0,#(65536-1000) / 256

                MOV TL0,#(65536-1000) MOD 256

                MOV A,DISPBIT

                ADD A,#DISPBUF

                MOV R0,A

                MOV A,@R0

                MOV DPTR,#TABLE

                MOVC A,@A+DPTR

                MOV P0,A

                MOV A,P1

                ANL A,#0F8H

                ADD A,DISPBIT

                MOV P1,A                

                INC DISPBIT

                MOV A,DISPBIT

                CJNE A,#08H,NEXT

                MOV DISPBIT,#00H

NEXT:           INC T1CNTA

                MOV A,T1CNTA

                CJNE A,#50,LL1

                MOV T1CNTA,#00H

                INC T1CNTB

                MOV A,T1CNTB

                CJNE A,#8,LL1

                MOV T1CNTB,#00H

                INC CNT

                MOV A,CNT

                CJNE A,#9,LLX

                MOV CNT,#00H

                MOV A,CNT

LLX:            CJNE A,#01H,NEX1

                MOV 30H,#8

LL1:            LJMP DONE

NEX1:           CJNE A,#02H,NEX2

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX2:           CJNE A,#03H,NEX3

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX3:           CJNE A,#04H,NEX4

                MOV 33H,#8

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX4:           CJNE A,#05H,NEX5

                MOV 34H,#8

                MOV 33H,#8

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX5:           CJNE A,#06H,NEX6

                MOV 35H,#8

                MOV 34H,#8

                MOV 33H,#8

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX6:           CJNE A,#07H,NEX7

                MOV 36H,#8

                MOV 35H,#8

                MOV 34H,#8

                MOV 33H,#8

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX7:           CJNE A,#08H,NEX8

                MOV 37H,#8

                MOV 36H,#8

                MOV 35H,#8

                MOV 34H,#8

                MOV 33H,#8

                MOV 32H,#8

                MOV 31H,#8

                MOV 30H,#8

                LJMP DONE

NEX8:           CJNE A,#00H,DONE

                MOV 37H,#10

                MOV 36H,#10

                MOV 35H,#10

                MOV 34H,#10

                MOV 33H,#10

                MOV 32H,#10

                MOV 31H,#10

                MOV 30H,#10

LL:             LJMP DONE

DONE:           RETI

TABLE:          DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H

                END

7 C語言源程序

#include <AT89X51.H>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

                               0x66,0x6d,0x7d,0x07,

                               0x7f,0x6f,0x77,0x7c,

                               0x39,0x5e,0x79,0x71,0x00};

unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,

                             0xfc,0xfd,0xfe,0xff};

unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};

unsigned char dispbitcnt;

unsigned int t02scnt;

unsigned char t5mscnt;

unsigned char u;

unsigned char i;

 

void main(void)

{

  TMOD=0x02;

  TH0=0x06;

  TL0=0x06;

  TR0=1;

  ET0=1;

  EA=1;

  while(1);

}

 

void t0(void) interrupt 1 using 0

{

  t5mscnt++;

  if(t5mscnt==4)

    {

      t5mscnt=0;

      P0=dispcode[dispbuf[dispbitcnt]];

      P1=dispbitcode[dispbitcnt];

      dispbitcnt++;

      if(dispbitcnt==8)

        {

          dispbitcnt=0;

        }

    }

  t02scnt++;

  if(t02scnt==1600)

    {

      t02scnt=0;

      u++;

      if(u==9)

        {

          u=0;

        }

      for(i=0;i<8;i++)

        {

          dispbuf[i]=16;

        }

      for(i=0;i<u;i++)

        {

          dispbuf[i]=8;

        }

    }

}

 

  • 上一篇: 智能型電話遠(yuǎn)程遙控器--畢業(yè)論文
  • 下一篇: 報(bào)警產(chǎn)生器-課程設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(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)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

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

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