?? main.c
字號:
//-----------------------------------------------------------------
// 名稱: 交流電壓檢測系統仿真
//-----------------------------------------------------------------
// 說明: 本例運行時,0~222V的交流電壓將顯示在數碼管上,調整外部“被測”
// 交流電壓時,數碼將實時刷新顯示當前交流電壓。
//
//-----------------------------------------------------------------
#include <pic.h>
#include <math.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define INT32U unsigned long
#define _XTAL_FREQ 4000000UL
//595引腳定義
#define ST_CP RB0 //輸出鎖存器控制脈沖
#define DS RB1 //串行數據輸入
#define SH_CP RB2 //移位時鐘脈沖
//數碼管段碼表
const INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 };
int Sample_Array[40];//40次電壓采樣
double max_AC_Volt,AC_Volt,ui;
INT8U digit[4],i;
//-----------------------------------------------------------------
// 串行輸入子程序
//-----------------------------------------------------------------
void Serial_Input_595(INT8U dat)
{
}
//-----------------------------------------------------------------
// 并行輸出子程序
//-----------------------------------------------------------------
void Parallel_Output_595()
{
}
//-----------------------------------------------------------------
// ADC初始化
//-----------------------------------------------------------------
void ADC_Initialise()
{
}
//-----------------------------------------------------------------
// CCP2模塊初始化
//-----------------------------------------------------------------
void CCP2_Initialise()
{
}
//-----------------------------------------------------------------
// A/D中斷服務程序,讀取一次A/D轉換結果并保存到采樣數組
//-----------------------------------------------------------------
void interrupt AD_Int_ISR()
{
}
//-----------------------------------------------------------------
// 將4位整數分解位為4個數位
// 該函數僅使用加/減運算符,這比使用/與%分解的效率要高
//-----------------------------------------------------------------
void DEC_TO_4DIGIT(int x, INT8U d[])
{
d[0] = d[1] = d[2] = d[3] = 0;
while (x >= 1000) { x -= 1000; d[0]++; }
while (x >= 100) { x -= 100; d[1]++; }
while (x >= 10) { x -= 10; d[2]++; }
d[3] = x;
}
//-----------------------------------------------------------------
// 交流電壓檢測
//-----------------------------------------------------------------
void get_AC_Voltage()
{
max_AC_Volt = 0.0;
//共進行5趟計算
for (INT8U j = 0; j < 5; j++)
{
}
}
//-----------------------------------------------------------------
// 串行輸出到595驅動數碼管顯示
//-----------------------------------------------------------------
void Output_To_595_Display()
{
//將數字段碼字節串行輸入595
//595移位寄存數據傳輸到存儲寄存器并出現在輸出端
}
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
void main()
{
//RB端口設為輸出,控制74HC595
TRISB0 = TRISB1 = TRISB2 = 0;
ADC_Initialise(); //ADC初始化
CCP2_Initialise(); //CCP2模塊初始化
while (1)
{
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -