新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 帶以太網口的中西文VFD字符顯示器

        帶以太網口的中西文VFD字符顯示器

        作者: 時間:2004-12-08 來源:網絡 收藏

        摘要:介紹一種帶口的,根據口的實現方法、的控制要點以及字庫的植入和程序的流程。該為單位內部、公共場所的監控系統發布信息提供了完整的方案。

        關鍵詞:字庫 Rabbit2000微處理器

        在一些單位內部、醫院和公共場所的監控系統中,常要發布流動的信息。現采用Rabbit半導體公司Rabbit2000微處理器為主控制器,植入二級漢字字庫和ASCII碼字庫,驅動Noritake公司(伊勢電子工業株式會社)生產的真空熒光顯示器(VFD)模塊,只要通過10M以及網口或串行口輸入要顯示的信息內容,要發布的信息就可以顯示在VFD上。

        1 10M以太網口的實現

        圖1所示為字符顯示器模塊組成框圖。

        Rabbit2000微處理器是Rabbit半導體公司生產的8位微處理器。它和Z80系列微處理器有相似的結構和高度的兼容性,但性能有很大的提高。要使以太網控制器RTL8019AS正常工作,Rabbit2000微處理器必須進行以下初始化。

        *CR=0X60:選擇頁1寄存器,使控制器處于離線狀態;

        *設置以太網卡地址PAR0~PAR5;

        *CR=0x21:選擇頁0寄存器,使控制器處于離線狀態,中止遠程DMA;

        *RBCR0=0,RBCR1=0:遠程DMA的接收計數寄存器清零;

        *CRDA0=0,CRDA1=0x40:遠程DMA起始地址為4000h;

        *RCR=0X20:接收監控模式;

        *TCR=0X02:環路測試模式;

        *PSTART=0x46,BNRY=0x46:設置接收緩沖起始地址、接收和發送緩沖邊界;

        *PSTOP=0x80:設置接收緩沖的末地址;

        *ISR=0xff:屏蔽所有中斷;

        *TPSR=0x40:發送緩沖從4000h開始;

        *CR=0X61:選擇頁1寄存器;

        *CURR=0x46:設置當前接收緩沖指針;

        *CR=0x22:選擇頁0,正常工作模式;

        *TCR=0:發送器正常工作狀態;

        *RCR=0x04:允許接收廣播包;

        *ISR=0xff:清除所有中斷。

        Rabbit2000微處理器的軟件開發平臺Dynamic C集編程、編譯、鏈接、調試、下載于一體,并有完善的TCP/IP協議棧,配備各種I/O驅動函數庫。建立SOCKET后,直接調用sock_init()函數可實現TCP包的初始化。根據需要,調用int sock_read(void *s,byte *dp,int len)等函數可實現TCP包的接收;調用int sock_write(void *s,byte *dp,int len)等函數可實現TCP包的發送。

        2 VFD模塊的控制

        VFD模塊包括顯示器、顯示驅動、存儲顯示內容的RAM、微處理器以及控制接口。模塊控制接口的引腳和功能如表1所列。

        表1 VFD顯示模塊引腳功能

        引 腳

        功 能

        D0D7數據線(輸入/輸出)
        WR寫信號(輸入)
        RD讀信號(輸入)
        CS片選信號(輸入)
        C/D命令/數據選擇信號(輸入)
        C/D="1"命令
        C/D="0"數據
        FPR幀信號(輸出)(一個顯示幀輸出個脈沖)
        BL顯示空白信號(輸入)

        VFD顯示模塊共有23條指令,通過C/D引腳來區別命令和數據。以下就是一個向顯示模塊發出命令或寫入數據的子函數:當flag=1時,ldata為對顯示模塊發出的命令;當flag=0時,ldata為對顯示模塊寫入的數據。子函數用匯編語言寫成,主要目的是為了節約機器的運行時間。

        root void VFD_C_D(char flag,char ldata){

        #asm

        pop h1 ;彈出跳入地址

        ex de,h1 ;保存

        pop h1 ;彈出flag

        ioi ld a,(PEDR)

        bit 0,1

        jr Z,VFD_C_D0 ;判斷flag的值

        set V_CD,a ;準備發命令

        jp VFD_C_D1

        VFD_C_D0:res V_CD,a ;準備寫入數據

        VFD_C_D1:res V_CS,a

        ioi ld(PEDR),a ;C/D信號發出

        pop h1 ;彈出ldata

        ld,b,1

        ld hl,WR_ADD ;讀顯示模塊的外部地址

        ioe ld(h1),b ;將ldata發出

        set V_CS,a

        set V_CD,a

        ioi ld(PEDR)a ;一個完整的時序完成

        push de

        push de

        push de ;恢復堆棧現場,準備退出子函數

        #endasm

        }

        3 字庫的植入和程序的流程

        一個標準的二極漢字字庫(1616點陣)約有256KB,標準的ASCII碼字符庫(168點陣)約有4KB,可以與編譯好的程序bin文件整合在一起,并用Dynamic C提供的RFU下載工具寫入目標板。經整合后的內存空間分為以下幾個區間:程序區、字庫區、信息斷電保存區。當然,字庫的格式和VFD顯示器所要求的格式有所不同,還要進行格式轉換。限于篇幅此處不再描述。

        costate指令是Dynamic C對標準C的擴展功能。每一個costate實體就是一個任務。每一個costate實體都可以自愿地懸掛起來,等待一段時間后繼續運行。本機的主程序就采用了costate結構。圖2是主程序的流程圖。

        結語

        綜上所述,本機的最大特點就是帶有漢字和ASCII碼字庫,配備以太網和串口兩種物理接口,可以通過指令方便地修改和顯示信息,真正實現了信息發布的無紙化。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 霞浦县| 汝阳县| 城固县| 梅河口市| 湘西| 西青区| 邵阳市| 黔西县| 康马县| 措勤县| 宁南县| 高平市| 吕梁市| 奉贤区| 宁海县| 临江市| 文安县| 天津市| 扎鲁特旗| 平安县| 巧家县| 庆元县| 军事| 绵阳市| 额尔古纳市| 桐乡市| 贵阳市| 肇源县| 孝感市| 鄯善县| 清苑县| 永新县| 潼关县| 河北区| 松阳县| 嫩江县| 通化县| 深泽县| 大埔区| 社会| 镇巴县|