ad键盘c语言控制,单片机怎么用C语言编程控制AD转化元件-

给你个c0832的应用,你看看吧

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit adrd=P3^7; //IO口定义

sbit adwr=P3^6;

sbit diola=P2^5;

sbit dula=P2^6;

sbit wela=P2^7;

unsigned char j,k,adval;

void delay(unsigned char i) //延时程序

{

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void display(uchar bai_c,uchar sh_c,uchar g_c) //显示程序

{

P0=table[bai_c]; //显示百位

dula=1;

dula=0;

P0=0xfe;

wela=1;

wela=0;

delay(5);

dula=0;

P0=table[sh_c]; //显示十位

dula=1;

dula=0;

wela=0;

P0=0xfd;

wela=1;

wela=0;

delay(5);

P0=table[g_c]; //显示个位

dula=1;

dula=0;

P0=0xfb;

wela=1;

wela=0;

delay(5);

}

void main() // 主程序

{

uchar a,A1,A2,A2t,A3;

while(1)

{

wela=1;

P0=0; //选通ADCS

adwr=0; //AD写入(随便写个什么都行,主要是为了启动AD转换)

_nop_();

adwr=1;

P0=0xff; //关闭ADCS

delay(10);

wela=0; //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化

for(a=20;a>0;a--) //需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据

{ //这里把显示部分放这里的原因也是为了增加写读之间的时间间隔

display(A1,A2,A3);

} //送去显示各位。

wela=1; //重新打开有AD片选信号锁存器的锁存端

P1=0xff; //读取P1口之前先给其写全1

P0=0; //选通ADCS

adrd=0; //AD读使能

adval=P1; //AD数据读取赋给P1口

adrd=1;

P0=0xff; //关闭ADCS

adwr=0;

P1=adval; //同时把AD的值送八个发光二极显示

A1=adval/100; //分出百,十,和个位

A2t=adval0;

A2=A2t/10;

A3=A2t;

};

}。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值