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

專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

規(guī)范編程——走馬燈

作者:寒竹子   來源:用戶上傳   點擊數(shù):  更新時間:2014年05月18日   【字體:

 此程序是基于51i單片機開發(fā)板上面寫的,如需要移植到自己的電路上,修改相應(yīng)的端口即可,開發(fā)板完整的電路圖下載:  點這里  

/**

  ***************************************************************************
  * @file    :  led.h
  * @author  :  xr
  * @date    :  2014年5月15日10:33:21
  * @brief   :  LED頭文件
  ***************************************************************************
  * @ttention
  * 實驗平臺 :  51開發(fā)板
  *
  *
  ***************************************************************************
  */
#ifndef _LED_H_
#define _LED_H_
 
#include <reg52.h>
 
/* 138譯碼器配置及LED數(shù)據(jù)口配置 */
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
 
#define LED_DB P0
 
void ConfigHC138( void );
void LED_Scan( void );
 
#endif /* _LED_H_ */
 
/*************************************************END OF FILE******************/
 
/**
  ***************************************************************************
  * @file    :  led.c
  * @author  :  xr
  * @date    :  2014年5月15日10:33:21
  * @brief   :  LED功能文件
  ***************************************************************************
  * @ttention
  *     實驗平臺 :  Kingst51開發(fā)板
  *     單片機   :  STC89C52RC MCU
  *     晶振頻率 :  11.0592 MHZ
  ***************************************************************************
  */
#include "led.h"
 
/* 定義跑馬燈數(shù)組 */
unsigned char code LedTable[] = {
                                    0xE0,    // 11100000
                                    0xC1,    // 11000001
                                    0x83,    // 10000011
                                    0x07,    // 00000111
                                    0x0E,    // 00001110
                                    0x1C,    // 00011100
                                    0x38,    // 00111000
                                    0x70     // 11100000
                                  };
 
 
/**
  * @brief   :  138譯碼器配置
  * @param   :  無
  * @retval  :  無
  */
void ConfigHC138( void )
{
    /* 配置138譯碼器選擇LEDS6 */
    ADDR3 = 1;
    ENLED = 0;                 /* 選擇U3 */
    
    ADDR2 = 1;
    ADDR1 = 1;
    ADDR0 = 0;                 /* 選擇LEDS6 */
}
 
/**
  * @brief  :  Led小燈掃描
  * @param  :  無
  * @retval :  無
  */
void LED_Scan( void )
{
    static unsigned char j = 0;
    LED_DB = 0xFF;              /* 消隱 */
    
    LED_DB = LedTable[j++];    /* 送入要求的數(shù)據(jù)到LED顯示數(shù)據(jù)口 */
    j &= 0x07;                 /* 到8歸零 */
}
 
/*******************************************END OF FILE***********/
 
/**
  ***********************************************************************
  * @file    :  main.c
  * @author  :  xr
  * @date    :  2014年5月15日10:27:27
  * @version :  V1.2.3
  * @brief   :  跑馬燈  
  ***********************************************************************
  * @attention
  *     實驗平臺 :  Kingst51開發(fā)板
  *     單片機   :  STC89C52RC MCU
  *     晶振頻率 :  11.0592 MHZ
  ***********************************************************************
  */
#include <reg52.h>
#include "led.h"
 
/* 定義系統(tǒng)時鐘 */
#define SYS_XTAL (11059200/12)
 
/* 定時器T0高低字節(jié)重載值 */
unsigned char thr0, tlr0;
 
/* 200ms到標志 */
bit flag200ms = 0;
 
/***********************Local function defines***************************/
 
void ConfigTimer0(unsigned int xms);
 
/************************************************************************/
 
 
/**
  * @brief   :  主函數(shù)
  * @param   :  無
  * @retval  :  無
  */
void main(void)
{
    ConfigHC138();                      /* 配置HC138譯碼器選擇LED小燈 */
    ConfigTimer0(4);                    /* 定時器T0配置定時4ms */
    
    while (1)
    {
        if ( flag200ms )
        {
            flag200ms = 0;
            LED_Scan();                    /* 掃描LED小燈 */
        }
    }
}
 
/**
  * @brief  :  配置定時器T0
  * @param  :  無
  * @retval :  無
  */
void ConfigTimer0(unsigned int xms)
{
    unsigned long tmp;
    
    tmp = (SYS_XTAL * xms) / 1000;   /* 定時xms需要的計數(shù)值 */
    tmp = 65536 - tmp + 13;               /* 定時xms需要裝入的初值 */
    thr0 = (unsigned char)(tmp >> 8);
    tlr0 = (unsigned char)tmp;
    
    TMOD &= 0xF0;                    /* 清零T0控制位 */
    TMOD |= 0x01;                    /* 設(shè)定T0工作方式1 */
    TH0  = thr0;
    TL0  = tlr0;
    ET0  = 1;                        /* 開定時器0中斷 */
    TR0  = 1;                        /* 開啟定時器T0 */
    
    EA   = 1;                        /* 開總中斷 */
}
 
/**
  * @brief  :  定時器T0中斷服務(wù)函數(shù)
  * @param  :  無
  * @retval :  無
  */
void Timer0_ISP() interrupt 1
{
    static unsigned int counter = 0;   /* 計數(shù)器 */
    
    TH0 = thr0;
    TL0 = tlr0;
    
    counter++;
    
    if ( counter >= 50 )
    {
        counter = 0;
        flag200ms = 1;                 /* 置位200ms標志位 */
    }
}
 
/******************************************************END OF FILE********/
關(guān)閉窗口
主站蜘蛛池模板: 日本大香伊一区二区三区 | 一区二区三区亚洲精品国 | 国产精品美女一区二区 | 中文字幕在线观看一区 | 成人在线免费观看视频 | 日本久久视频 | 欧美久久不卡 | a视频在线 | 国产一区二区在线播放 | 成人免费观看男女羞羞视频 | 中文字幕电影在线观看 | 亚洲第一福利网 | 精品免费国产视频 | 国产麻豆乱码精品一区二区三区 | 欧美专区在线视频 | 中文字幕第一页在线 | 国产精品av久久久久久毛片 | 人人人人干| 精品伊人 | 欧美精品一区在线 | 一级毛片成人免费看a | 一区免费视频 | 久www| 色影视| 亚洲国产成人一区二区 | 欧美成人性生活 | 中文字幕精品一区二区三区精品 | av毛片| 日本不卡一区二区 | 国产精品久久久久久久久久 | 日本不卡免费新一二三区 | 成人av一区二区三区 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 狠狠操av | 亚洲精品九九 | 日韩精品一区二区三区中文字幕 | 真人女人一级毛片免费播放 | 亚洲精品二三区 | 91精品中文字幕一区二区三区 | 日日天天| 久久精品一二三影院 |