找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1319|回复: 0
打印 上一主题 下一主题
收起左侧

单片机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, 下载次数: 31)

图片1.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表