您的位置 首页 新能源

PIC16F877A的AD学习

今天晚上开始编写ADC程序!下面是一个3*3AD键盘的原理图程序的头文件#ifndefADC_H#defineADC_H#includemain.hvoidinit_adc();c…

今日晚上开端编写ADC程序!

下面是一个3*3AD键盘的原理图

程序的头文件

#ifndef ADC_H
#define ADC_H

#include “main.h”
void init_adc() ;
char get_key() ;

#endif
子程序

#include “adc.h”
void init_adc()
{
//界说端口方向
TRISA0=1 ;
ADCS1=0 ;//挑选体系时钟
ADCS0=0 ;
//挑选通道RA0 ;
//CH2=0 ;
//CH1=0 ;
//CH3=0 ;
bitclr(ADCON0,5) ;
bitclr(ADCON0,4) ;
bitclr(ADCON0,3) ;
ADON=1 ;//AD安排妥当
ADFM=0 ;

}
char get_key()
{ char adata=0;
ADGO=1;
while(ADGO);
if(ADRESH>0xcb)
adata=1;
else if(ADRESH>0xa8)
adata=2;
else if(ADRESH>0x8f)
adata=3;
else if(ADRESH>0x7d)
adata=4;
else if(ADRESH>0x6f)
adata=5;
else if(ADRESH>0x63)
adata=6;
else if(ADRESH>0x5a)
adata=7;
else if(ADRESH>0x53)
adata=8;
else if(ADRESH>0x4c)
adata=9;
else
adata=0;

return adata;

}
主程序

#include
#include
#include

#include “main.h”
#include “t232.h”
#include “adc.h”
#include “lcd.h”

bank1 char temp ;
bank1 char t1 ;
bank1 char dat[6] ;
bank1 char key_data=0 ;

void init_all()
{
init_adc() ;
init_232() ;
init_lcd() ;
}

void main()
{
init_all() ;
while(1)
{
key_data=0 ;
while(key_data==0)
{
key_data=get_key() ;
}
temp=get_key() ;
if(temp==key_data)
{
while(key_data)
{
key_data=get_key() ;
}
t1=temp+0x30 ;
sprintf(dat,”key%c”,t1) ;
send_str(dat) ;

}
}
}
将读取的键盘数值传送到上位机!

经测验发现AD键盘不是很好用,简单呈现按键过错,不是很安稳,所以实践傍边最好不要运用AD键盘,计划运用zlg7290键盘来作键盘和显现!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/276620.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部