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

📄 text1.c

📁 单片机快速入门原程序
💻 C
字号:
#include <reg51.h>
#include<stdio.h>
#define ADC0809CH0 0xDFEF8 //0809通道0地址
#define ADC0809CH1 0xDFEF9 //0809通道1地址
#define ADC0809CH2 0xDFEFA //0809通道2地址
#define ADC0809CH3 0xDFEFB //0809通道3地址
#define uchar unsigned char	//uchar代表单个字节无符号数
#define uint unsigned int	//uint无符号字
xdata uint cChannelIndex;
xdata uchar cDigitalData[4]=0;
xdata uint nCurrentAddr;
Uart_Init();				//输出口初始化
sbit EOCFlag=0xB2;				//P3.2位 外部中断0
void SelectChannel(uint c0809addr,uchar c0809data);
uchar GetResult( );//得到转换结果
main()
{	Uart_Init();	//
	P0=0XFF;		//端口初始化为0xFF
	P1=0XFF;		
	P2=0XFF;
	P3=0XFF;
	cChannelIndex=0;
	nCurrentAddr=ADC0809CH0;
	SelectChannel(ADC0809CH0,cChannelIndex);	//选择ADC0809通道0
while(!EOCFlag);	//等待转换结束,转换期间EOCFlag=0
cDigitalData[cChannelIndex]=GetResult();//读取转换后结果
	cChannelIndex++;
	nCurrentAddr=ADC0809CH1;
	SelectChannel(ADC0809CH1,cChannelIndex);	//选择ADC0809通道1
while(!EOCFlag);	//等待转换结束,转换期间EOCFlag=0
cDigitalData[cChannelIndex]=GetResult();//读取转换后结果
	cChannelIndex++;
	nCurrentAddr=ADC0809CH2;
	SelectChannel(ADC0809CH2,cChannelIndex);	//选择ADC0809通道2
while(!EOCFlag);	//等待转换结束,转换期间EOCFlag=0
cDigitalData[cChannelIndex]=GetResult();//读取转换后结果
	cChannelIndex++;
	nCurrentAddr=ADC0809CH3;
	SelectChannel(ADC0809CH3,cChannelIndex);	//选择ADC0809通道3
while(!EOCFlag);	//等待转换结束,转换期间EOCFlag=0
cDigitalData[cChannelIndex]=GetResult();//读取转换后结果
	while(1);
}
Uart_Init()
	{SCON = 0x52;    /* 设置串行口控制寄存器SCON*/
	 TMOD = 0x21;    /* 12M时钟时波特率为2400  */
	 TCON = 0x69;    /* TCON */
	 TH1 =  0xf3;    /* TH1 */
	}
void SelectChannel(uint c0809addr,uchar c0809data)
	{
		*((uchar xdata *)c0809addr)=c0809data;
		//选择ADC0809通道
	}
uchar GetResult( )//得到转换结果
{uchar cResult;
cResult=*((uchar xdata *)nCurrentAddr);
return cResult;		//返回转换后数字量
}

⌨️ 快捷键说明

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