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

stc12c5a60s2單片機的常用函數(shù)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2011年02月19日   【字體:
#ifndef _SYSTEM_H_
#define _SYSTEM_H_

#include<stc12c5a60s2.h>
#include<intrins.h>
#include<delay.h>
#include<Lcd_1602.h>
#include<ADC.h>
#include<PWM.h>
#include<EPROM.h>
/*===================================================================================
作品名:    _SYSTEM_H_(系統(tǒng)頭文件)
作者:     廣西名族大學(xué)物理與電子工程學(xué)院09電(2)班 風(fēng)子(Only)
完成日期: 2011年2月18日
====================================================================================
該頭文件為stc12c5a60s2型號單片機的系統(tǒng)頭文件目前版本(V1.0)包含intrins,delay,Lcd_1602
ADC,PWM,EPROM等頭文件
各個函數(shù)調(diào)用語句有:
====================================================================================
intrins.h(位操作函數(shù)頭文件)   
    temp=_crol_(temp,n);//其中temp為要操作數(shù),n為位移量如  temp=_crol_(0x01,1);執(zhí)行后為temp=0x02;
====================================================================================                  
delay.h(延時函數(shù)頭文件)       
    delay_s(n);// 延時n秒    
    delay_ms(n);//延時n毫秒
====================================================================================                
Lcd_1602.h(1602液晶驅(qū)動頭文件)  默認(rèn)P0口為數(shù)據(jù)接口 RS為P2^2,EN為P2^3,可自行定義可在主程序文件直接宏定義
如:
    #define Lcd_Date_Port P3
    #define RS P2^5
    #define EN P2^6
        Lcd_Init();//液晶初始化函數(shù)
        Lcd_Locate(x,y);//液晶定位函數(shù)x為行數(shù),y為列數(shù)
        Lcd_Char('a');//顯示單個字符
        Lcd_String("ABCD");//顯示字符串
        Lcd_Number(123);//顯示小于65535的數(shù)據(jù)
        Lcd_N_Number(123,3);//顯示指定位數(shù)的數(shù)據(jù)
        Lcd_Float(123.123);//顯示保留三位浮點數(shù)
====================================================================================                       
ADC.h(stc單片機內(nèi)部10位8通道ADC轉(zhuǎn)換頭文件)    使用前必須將其初始化
如有:
    ADC_Init();//初始化ADC
    Get_ADC(n);//取第n通道的ADC值(帶函數(shù)返回值函數(shù))
    AD_Average(n);//取第n通道的AD電壓均值(平均1000次后的值)(帶函數(shù)返回值函數(shù))(默認(rèn)5V參考電壓)
====================================================================================                       
PWMM.h(可調(diào)制脈沖產(chǎn)生頭文件)
                       
    Module_0L//模塊0低八位寄存器(占空比調(diào)節(jié)參數(shù))
    Module_0H//模塊0高八位寄存器
    Module_1L//模塊1低八位寄存器
    Module_1H//模塊1高八位寄存器
如:
    Module_0L=Module_0H=128;//占空比為50%
    Pwm_Clock(n); //n=0,1,2,3,4,5,6,7共八種模式
                  //n=0 系統(tǒng)時鐘/12
                  //n=1 系統(tǒng)時鐘/2
                  //n=2 定時器0溢出脈沖,通過改變溢出率可改變PWM頻率
                  //n=3 P1.2(P4.1)腳輸入的外部時鐘(最大速率=時鐘/2)
                  //n=4 系統(tǒng)時鐘
                  //n=5 系統(tǒng)時鐘/4
                  //n=6 系統(tǒng)時鐘/6
                  //n=7 系統(tǒng)時鐘/8
                                      
    Pwm_Work_Mode(module,mode);//為工作模式函數(shù)定義
    //module為PCA模塊選擇,分別有0,1,2,其中2為模塊0,與1兩路同時工作
    //mode  為PCA/PWM模式選擇,分別有0,1,2,3,4,5,6,7,8,
      
        mode  CCAPMn
        0     0x42   普通8位PWM, 無中斷
        1     0x53   PWM輸出由(下降沿)高變低可產(chǎn)生中斷
        2     0x63   PWM輸出由(上升沿)低變高可產(chǎn)生中斷
        3     0x73   PWM輸出由低變高或由高變低都可產(chǎn)生中斷      
        4     0x21   16位CEXn上升沿觸發(fā)捕捉功能。
        5     0x11   16位CEXn下降沿觸發(fā)捕捉功能。
        6     0x31   16位CEXn邊沿(上、下沿)觸發(fā)捕捉功能。
        7     0x49   16位軟件定時器。
        8     0x4d   16位高速脈沖輸出。
                                
    Pwm_Work_Mode(0,8);//模塊0的16位高速脈沖輸出
====================================================================================                     
EPROM.h(斷電儲存函數(shù)頭文件) 
    Byte_Read(unsigned int Byte_Read_Addr);//讀取
    Byte_Delete(unsigned int Byte_Delete_Addr );//擦除
    Byte_Write(unsigned int Byte_Write_Addr,unsigned char Original_Data);//寫入
    //其中X_X_Addr為存儲器地址,Original_Data當(dāng)前數(shù)值

                      
===================================================================================*/
#endif

關(guān)閉窗口

相關(guān)文章