立即注冊(cè) 登錄
返回首頁(yè)

uid:266904的個(gè)人空間

日志

頻率計(jì)的C程序

已有 758 次閱讀2017-12-26 10:25

#define LED_GLOBAL 1
#include "led.h"
/*******************************************************************************************
*函數(shù)名稱(chēng):delay_us(uint us)
*函數(shù)功能:實(shí)現(xiàn)微秒級(jí)的延時(shí)
*函數(shù)入口:us,延時(shí)函數(shù)循環(huán)后期數(shù)
*函數(shù)出口:無(wú)
*******************************************************************************************/
void delay_us(uint us)
{
  uint i;
  while(us--)
  {
    for(i=0;i<100;i++);
  }
}
/*******************************************************************************************
*函數(shù)名稱(chēng):led_init(void)
*函數(shù)功能:四位七段數(shù)碼管顯示初始化
*函數(shù)入口:無(wú)
*函數(shù)出口:無(wú)
*******************************************************************************************/
void init_led(void)
{
   LED=segLedCode[0];
   LED_CS1=0;
   LED_CS2=0;
   LED_CS3=0;
   LED_CS4=0;
}
/*******************************************************************************************
*函數(shù)名稱(chēng):ledWrite(uchar c,uchar n,uchar mod)
*函數(shù)功能:對(duì)一組數(shù)碼管的某一位進(jìn)行短暫顯示
*函數(shù)入口:c,要顯示的數(shù)據(jù);n,顯示一組數(shù)碼管中的第n位;mod,c的數(shù)據(jù)形式
*函數(shù)出口:無(wú)
*說(shuō)明:當(dāng)mod==DIGITAL時(shí),c為數(shù)字0~9的ANCII碼形式,此時(shí)在n位數(shù)碼管上顯示想用數(shù)字
       當(dāng)mod==CHARACTER,直接將c輸出數(shù)據(jù)口
*******************************************************************************************/
void ledWrite(uchar c,uchar n,uchar mod)
{
   if(CHARACTER==mod)
   {
          LED=c;  
   }
   else if(DIGITAL==mod)
           {
              if((c-'0')<0x0a)
                  {
                    LED=segLedCode[c-'0'];
                  } 
                  else
                  {  
                        LED=segLedCode[0];
                  }
           }
   switch(n)
   {
                case 0x01:
                {
                  LED_CS1=0;
                  delay_us(10);
                  LED_CS1=1;
                  break;
                }
                case 0x02:
                {
                  LED_CS2=0;
                  delay_us(10);
                  LED_CS2=1;
                  break;
                }
                case 0x03:
                {
                  LED_CS3=0;
                  delay_us(10);
                  LED_CS3=1;
                  break;
                }
            case 0x04:
                {
                  LED_CS4=0;
                  delay_us(10);
                  LED_CS4=1; 
                  break;
                }
                default:
                  break;

   }

}
/*******************************************************************************************
*函數(shù)名稱(chēng):ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
*函數(shù)功能:循環(huán)在數(shù)碼管上顯示緩沖區(qū)中的數(shù)據(jù)
*函數(shù)入口:segCode,指向顯示緩沖區(qū)中的指針;segCodeMod,0~7位為1或0標(biāo)示1~8位數(shù)碼管顯示的數(shù)據(jù)的類(lèi)型(DIGITAL或者CHARACTER);segNumber,代表要顯示數(shù)碼管的位數(shù)
*函數(shù)出口:無(wú)
*說(shuō)明:本函數(shù)主要實(shí)現(xiàn)將顯示緩沖區(qū)中的數(shù)據(jù)在數(shù)碼管上顯示出來(lái)
*******************************************************************************************/                     
void ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
{
           uchar segCount;
        for(segCount=0;segCount<segNumber;segCount++)
        {
           if(segCodeMod&0x01)           /*1代表此處顯示任意字符 */
           {
             ledWrite(segCode[segCount],segCount+1,CHARACTER); 
           }
           else
           {
             ledWrite(segCode[segCount],segCount+1,DIGITAL);
           }
           segCodeMod=segCodeMod>>1;
        }
}


路過(guò)

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部