标题: 单片机ADC0808转换 [打印本页]
作者: 嘻嘻哈哈哦 时间: 2020-4-1 16:37
标题: 单片机ADC0808转换
分析:
程序启动前可将滑动电阻调至最大值,4位8段共阳极数码管初始值显示为0。拖动滑动电阻器向上,电压表电压增大,数码管显示的数值也变大。
当滑动电阻器滑至中央,电压表显示2.5V是数码管显示127;
当滑动电阻器滑至最小时,电压表显示5V数码管显示255。
工作方式2
16位
TH0=(65536-250)/256;
TL0=(65536-250)%256;
C语言源码
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
sbit clock=P1^4;
sbit start=P1^5;
sbit eoc=P1^6;
sbit oe=P1^7;
void DelayMS(unsigned int ms)
{
unsigned char i;
while(ms--)
for(i=0;i<200;i++);
}
display(unsigned char d){
P1=0xe1;
P0=tab[d/1000];
DelayMS(2);
P1=0xe2;
P0=tab[d/100%10];
DelayMS(2);
P1=0xe4;
P0=tab[d%100/10];
DelayMS(2);
P1=0xe8;
P0=tab[d%10];
DelayMS(2);
}
init(){
TMOD=2;
TL0=0x6;
TH0=0x6;
IE=0x82;
TR0=1;
}
t0_int() interrupt 1
{
clock=!clock;
}
main()
{
//0111
//高4位
init();
while(1)
{
start=0;
start=1;//清零
start=0;//启动
while(eoc==0); //等待转换结果
oe=1; //允许输出
display(P2);//显示A/D转换结果
oe=0; //关闭输出
}
}
-
图片1.png
(116.84 KB, 下载次数: 32)
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |