#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