100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Proteus仿真实验之 51单片机模数转换

Proteus仿真实验之 51单片机模数转换

时间:2020-03-23 10:54:17

相关推荐

Proteus仿真实验之 51单片机模数转换

实验目的:

实现模拟电压采集,直接数码管显示模数转换器的转换值

硬件原理图:

软件设计:

#include "reg51.h"#define u8 unsigned char sbit A0=P2^6;//第一个数码管sbit A1=P2^7;//第二个数码管sbit OP=P2^0;//读写引脚的使能位sbit EOC=P3^3;//AD转换完成信号sbit W=P3^6;//单片机写引脚sbit R=P3^7;//单片机读引脚unsigned char seg[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//上边是共阳极数码管的段码//延时函数,大约延时1ms,单片机晶振12MHZvoid delay_ms(u8 m){u8 i;u8 j;u8 k;for(i=0;i<m;i++){for(j=0;j<10;j++){for(k=0;k<110;k++);}}}//显示函数,数码管显示void xianshi(u8 v){A0=0;//关闭两个数码管A1=0;A0=1;//选中第一个数码管P1=seg[v/16];//发送段码,数值16进制显示,高四位delay_ms(3);//暂留3MS显示A0=0;//关闭数码管A1=1;//打开第二个数码管P1=seg[v%16];//发送段码显示,数值的后4位delay_ms(3);//暂留3MSA1=0;//关闭数码管}// 读取指定A/D转换通道的值u8 ReadAD(u8 m){u8 value;W=0; //单片机写信好拉低P0=m;//发送AD通道地址W=1;//关闭写信好R=0;//读信号拉低value=P0;//读取0808数据R=1;//读信号拉高return value;//返回读到的AD值}void main(){u8 value;OP=0;//使能读写可控制信号线开关while(1){value=ReadAD(0);//读取 通道0 的AD值xianshi(value);//16进制 显示}}

演示视频

Proteus 51单片机模数转换仿真实验(从4:40秒开始看)

下载链接

Proteus仿真实验之 51单片机模数(A/D)转换

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。