专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

stc12c5a60s2单片机的常用函数

作者:佚名   来源:本站原创   点击数:  更新时间: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_(系统头文件)
作者:     广西名族大学物理与电子工程学院09电(2)班 风子(Only)
完成日期: 2011年2月18日
====================================================================================
该头文件为stc12c5a60s2型号单片机的系统头文件目前版本(V1.0)包含intrins,delay,Lcd_1602
ADC,PWM,EPROM等头文件
各个函数调用语句有:
====================================================================================
intrins.h(位操作函数头文件)   
    temp=_crol_(temp,n);//其中temp为要操作数,n为位移量如  temp=_crol_(0x01,1);执行后为temp=0x02;
====================================================================================                  
delay.h(延时函数头文件)       
    delay_s(n);// 延时n秒    
    delay_ms(n);//延时n毫秒
====================================================================================                
Lcd_1602.h(1602液晶驱动头文件)  默认P0口为数据接口 RS为P2^2,EN为P2^3,可自行定义可在主程序文件直接宏定义
如:
    #define Lcd_Date_Port P3
    #define RS P2^5
    #define EN P2^6
        Lcd_Init();//液晶初始化函数
        Lcd_Locate(x,y);//液晶定位函数x为行数,y为列数
        Lcd_Char('a');//显示单个字符
        Lcd_String("ABCD");//显示字符串
        Lcd_Number(123);//显示小于65535的数据
        Lcd_N_Number(123,3);//显示指定位数的数据
        Lcd_Float(123.123);//显示保留三位浮点数
====================================================================================                       
ADC.h(stc单片机内部10位8通道ADC转换头文件)    使用前必须将其初始化
如有:
    ADC_Init();//初始化ADC
    Get_ADC(n);//取第n通道的ADC值(带函数返回值函数)
    AD_Average(n);//取第n通道的AD电压均值(平均1000次后的值)(带函数返回值函数)(默认5V参考电压)
====================================================================================                       
PWMM.h(可调制脉冲产生头文件)
                       
    Module_0L//模块0低八位寄存器(占空比调节参数)
    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 系统时钟/12
                  //n=1 系统时钟/2
                  //n=2 定时器0溢出脉冲,通过改变溢出率可改变PWM频率
                  //n=3 P1.2(P4.1)脚输入的外部时钟(最大速率=时钟/2)
                  //n=4 系统时钟
                  //n=5 系统时钟/4
                  //n=6 系统时钟/6
                  //n=7 系统时钟/8
                                      
    Pwm_Work_Mode(module,mode);//为工作模式函数定义
    //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输出由(下降沿)高变低可产生中断
        2     0x63   PWM输出由(上升沿)低变高可产生中断
        3     0x73   PWM输出由低变高或由高变低都可产生中断      
        4     0x21   16位CEXn上升沿触发捕捉功能。
        5     0x11   16位CEXn下降沿触发捕捉功能。
        6     0x31   16位CEXn边沿(上、下沿)触发捕捉功能。
        7     0x49   16位软件定时器。
        8     0x4d   16位高速脉冲输出。
                                
    Pwm_Work_Mode(0,8);//模块0的16位高速脉冲输出
====================================================================================                     
EPROM.h(断电储存函数头文件) 
    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当前数值

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

关闭窗口

相关文章