功能:定時器間隔50us采集一次AD電壓,一共采集30次,并通過LCD1602顯示。
軟件:MPLAB X IDE v5.35,ISIS 7 Professional
注意事項:系統時鐘配置為外部時鐘8Mhz,由于間隔50us采集一次,所以AD采集一次時間應該小于50us。可通過調整定時器的數值,間隔不同的時間采集AD。
代碼如下:
#include "pic.h"
#define RS RC1 //command or data
#define RW RC2 //read write io
#define EN RC3 //enable
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF & BOREN_ON & LVP_ON & CPD_OFF);
void LCD1602_Init(void);
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str); //display
void Time_Init(void);
void ADC_Init(char k);
int AD_CollectVolt(void);
char AD_Complete_Flag = 0;
unsigned int arr[30];
unsigned int ad_volt = 0;
unsigned long sum = 0;
unsigned char num = 0,j = 0;
unsigned int Data = 0;
unsigned char volt_num[5];
void main(void) //Fosc = 8Mhz
{
PEIE = 1;
GIE = 1;
TRISC = 0X00; //OUTPUT
TRISD = 0X00; //OUTPUT
Time_Init(); //50us interrupt
ADC_Init(0); //Channel 0 RA0
LCD1602_Init();
while(1)
{
AD_CollectVolt();
volt_num[0] = ad_volt/1000 + 48;
volt_num[1] = ad_volt/100%10 + 48;
volt_num[2] = ad_volt/10%10 + 48;
volt_num[3] = ad_volt%10 + 48;
volt_num[4] = ' 主站蜘蛛池模板: 遵义县| 锦屏县| 普洱| 泗洪县| 武城县| 惠安县| 沈阳市| 云南省| 贺兰县| 绥中县| 日照市| 都匀市| 合作市| 敖汉旗| 长治市| 太康县| 上思县| 宜君县| 正蓝旗| 松江区| 来宾市| 永寿县| 革吉县| 定西市| 仁化县| 双流县| 龙门县| 德令哈市| 南宫市| 永济市| 崇明县| 大庆市| 遂溪县| 吉安县| 中方县| 岳阳市| 泗水县| 建阳市| 明溪县| 张家界市| 武夷山市|