機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
單片機編程入門白金教程系列之五
單片機編程入門白金教程系列之五
 更新時間:2008-8-19 13:45:49  點擊數(shù):33
【字體: 字體顏色
  目標:顯示“12345678”
  P1端口接8聯(lián)共陰數(shù)碼管SLED8的段極:P1.7接段h,…,P1.0接段a
  P2端口接8聯(lián)共陰數(shù)碼管SLED8的段極:P2.7接左邊的共陰極,…,P2.0接右邊的共陰極
  方案說明:晶振頻率fosc=12MHz,數(shù)碼管采用動態(tài)刷新方式顯示,在1ms定時斷服務程序中實現(xiàn)

#include <at89x92.h>
unsigned char DisBuf[8]; //全局顯示緩沖區(qū),DisBuf[0]對應右SLED,DisBuf[7]對應左SLED,
void DisplayBrush( void )
{ code unsigned char cathode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //陰極控制碼
Code unsigned char Seg7Code[16]= //用十六進數(shù)作為數(shù)組下標,可直接取得對應的七段編碼字節(jié)
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
static unsigned char i=0; // (0≤i≤7) 循環(huán)刷新顯示,由于是靜態(tài)變量,此賦值只做一次。
P2 = 0xff; //顯示消隱,以免下一段碼值顯示在前一支SLED
P1 = Seg7Code[ DisBuf[i] ]; //從顯示緩沖區(qū)取出原始數(shù)據(jù),查表變?yōu)槠叨未a后送出顯示
P2 = cathode[ i ]; //將對應陰極置低,顯示
if( ++i >= 8 ) i=0; //指向下一個數(shù)碼管和相應數(shù)據(jù)
}
void Timer0IntRoute( void ) interrupt 1
{
TL0 = -1000; //由于TL0只有8bits,所以將(-1000)低8位賦給TL0
TH0 = (-1000)>>8; //取(-1000)的高8位賦給TH0,重新定時1ms
DisplayBrush();
}
void Timer0Init( void )
{ TMOD=(TMOD & 0xf0) | 0x01; //初始化,定時器T0,工作方式1
TL0 = -1000; //定時1ms
TH0 = (-1000)>>8;
TR0 = 1; //允許T0開始計數(shù)
ET0 = 1; //允許T0計數(shù)溢出時產(chǎn)生中斷請求
}
void Display( unsigned char index, unsigned char dataValue ){ DisBuf[ index ] = dataValue; }
void main( void )
{
unsigned char i;
for( i=0; i<8; i++ ){ Display(i, 8-i); } //DisBuf[0]為右,DisBuf[7]為左
Timer0Init();
EA = 1; //允許CPU響應中斷請求
While(1);
}
  • 上一篇: 單片機編程入門白金教程系列之四
  • 下一篇: 單片機編程入門白金教程系列之七
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

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