⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc0804模数转换实验.c

📁 花钱购买的C51学习板里的源码
💻 C
字号:
/**********************************************************************
* 程序名称:ADC0804模拟测试电压,用POT电位器调节,数码管显示000~255

***********************************************************************/

#include<reg51.h>
#include <intrins.h>
sbit duan=P3^3;//段选通端
sbit wei=P3^4;//位选通端
#define uchar unsigned char
#define uint unsigned int

unsigned char code
table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳段码
table1[]={
        0x40,/*9*/
        0x79,/*9*/
        0x24,/*9*/
        0x30,/*9*/
        0x19,/*9*/
        0x12,/*9*/
        0x02,/*9*/
        0x78,/*9*/
        0x00,/*9*/
        0x10,/*9*/
		};//共阳段码(带小数点)
table2[]={0x01,0x02,0x04,0x08,0x10,0x20};//共阳位码
sbit cs=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
/*************延时子程序*******************************/
void delay(uint Temp) 
{
uint i;
while(Temp)
	{
	i=200;
	while(i>0)
	i--;
	Temp--;
	}
}
/*************读AD0804 子程序*******************************/
unsigned char adc0804( void ) //读AD0804 子程序
{ 
	unsigned char ad_data,j;
	rd=1;wr=1;	//int1=1;读ADC0804
	P1=0xff; 	//P1 置位
	cs=0;wr=0;wr=1; //启动ADC0804
	rd=0; 		//开始读转换后数据
	j=j; j=j; 	//小延时,等待ADC0804 读完数
	ad_data=P1;	//读出的数据赋与ad_data
	rd=1;cs=1;	//读数完毕
	return(ad_data);//返回最后读出的数据
}

void display(int sum) //显示子程序
{
	duan=1;		//打开段选
	P0=table1[sum/100]; //显示百位数
	duan=0;		//关闭段选
	wei=1;		//打开位选
	P0=table2[3]; //显示的位置
	wei=0;		//关系位选
	delay(5);	//延时
	//--------------------------
	duan=1;
	P0=table[sum%100/10]; //显示十位
	duan=0;
	wei=1;
	P0=table2[4]; //显示的位置
	wei=0;
	delay(5);
	//-------------------------
	duan=1;
	P0=table[sum%10]; //显示个位
	duan=0;
	wei=1;
	P0=table2[5]; //显示的位置
	wei=0;
	delay(5);
}

void main()
{
	while(1) display(adc0804());
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -