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

📄 7 adc.c

📁 很好的51单片机仿真模板。
💻 C
字号:
//拧动 AD 旁边的电位器,会在数码管的前三位显示 0-255 之间的数值。这就
//是把模拟信号转换成数字信号,即模数转换。说明:由于不同 AD 的自身特性
//不同,所以时序如果掌握不好的话,很有可能在数码管上不会动态显示变化数
//值,但按下实验板上复位键后可更新内容。 
#include<reg51.h> 
#include <intrins.h> 
#define uint unsigned int    //宏定义,详情请看 C 语言书。 
#define uchar unsigned char 
sbit adrd=P3^7;                   //AD 读引角 
sbit adwr=P3^6;                  //AD 写引角 
sbit diola=P2^5; 
sbit dula=P2^6;                   //数码管段选锁存 
sbit wela=P2^7;                   //数码管位选锁存 
unsigned char j,k,adval; 
void delay(unsigned char i)   //延时程序 
{
	for(j=i;j>0;j--) 
	for(k=125;k>0;k--); 
} 
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,                    
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管编码 
void display(uchar bai_c,uchar sh_c,uchar g_c)      //显示程序 
{ 
	dula=0; 
	
	P0=table[bai_c];   //显示百位 
	dula=1; 
	dula=0; 
	wela=0; 
	P0=0x7e; 
	wela=1; 
	wela=0; 
	delay(5); 

	P0=0;   	  //------------
	dula=1; 	  //该部分仿真必须要。
	dula=0; 	  //因为每次下一位的段选打开后,码值会先赋值给上一位,
	P0=0x7e; 	  //从而改变上一位的显示。然后再打开下一位的位选。
	wela=1; 	  //
	wela=0; 	  //------------
		
	//dula=0; 
	P0=table[sh_c];    //显示十位 
	dula=1; 
	dula=0; 
	wela=0; 
	P0=0x7d; 
	wela=1; 
	wela=0; 
	delay(5); 
	
	P0=0;   	  //------------
	dula=1; 	  //该部分仿真需要
	dula=0; 	  //
	P0=0x7d; 	  //
	wela=1; 	  //
	wela=0;		  //-------------

	P0=table[g_c];    //显示个位 
	dula=1; 
	dula=0; 
	P0=0x7b; 
	wela=1; 
	wela=0; 
	delay(5); 

	P0=0;   	  //------------
	dula=1; 	  //该部分仿真需要
	dula=0; 	  //
	P0=0x7b; 	  //
	wela=1; 	  //
	wela=0;		  //-------------
} 
void main() //     主程序 
{ 
	uchar a,A1,A2,A2t,A3; 
	diola=0; 
	while(1)             //主循环程序不断的采样、显示 
	{ 
		adwr=0;  //AD 写入(随便写个什么都行,主要是为了启动//AD 转换) 
		_nop_();            //一个延时字函数 
		adwr=1; 
		adrd=0; 
		adval=P1;      //AD 数据读取 
		adrd=1; 
		delay(10); 
		A1=adval/100;   //分出百,十,和个位 
		A2t=adval%100; 
		A2=A2t/10; 
		A3=A2t%10; 
		for(a=10;a>0;a--)  // 显示十次,然后去采集一次电压信号 
		{     
			display(A1,A2,A3);
		} //送去显示各位。 
	}; 
} 
 

⌨️ 快捷键说明

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