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

📄 main.c

📁 实验3 DAC0832(8位并行DAC). 实验3 DAC0832(8位并行DAC).
💻 C
字号:
/*******************************************************************************
程序名称:8位并行D/A芯片DAC0832实验
硬件接法:DAC0832地址为XDATA:0xA000
运行效果:按K1~K4键对应4个电压值输出
*******************************************************************************/


//包含头文件
#include <reg51.h>
#include <absacc.h>


//定义I/O接口
sbit K1 = P1^7;
sbit K2 = P3^3;
sbit K3 = P3^4;
sbit K4 = P3^5;


/*******************************************************************************
函数:Delay()
功能:延时0.01s~2.56s
参数:t>0时,延时(t*0.01)s
      t=0时,延时2.56s
说明:定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
*******************************************************************************/
void Delay(unsigned char t)
{
	do
	{
		TH0 = 0xDC;			//设置定时器初值(定时10ms)
		TL0 = 0x00;
		TR0 = 1;			//启动定时器
		while ( !TF0 );		//等待定时器溢出
		TR0 = 0;			//停止定时器
		TF0 = 0;			//清除溢出标志
	} while ( --t != 0 );	//循环t次
}


/*******************************************************************************
函数:KeyScan()
功能:键盘扫描
返回:扫描码
*******************************************************************************/
unsigned char KeyScan()
{
	unsigned char k = '\0';
	if ( !K1 ) k = '1';
	if ( !K2 ) k = '2';
	if ( !K3 ) k = '3';
	if ( !K4 ) k = '4';
	return k;
}


//主函数
void main()
{
	unsigned char k;
	TMOD &= 0xF0;
	TMOD |= 0x01;
	Delay(10);
	XBYTE[0xA000] = 128;
	for (;;)
	{
		for (;;)
		{
			Delay(10);
			k = KeyScan();
			if ( k != '\0' ) break;
		}
		switch ( k )
		{
		case '1':
			XBYTE[0xA000] = 50;
			break;
		case '2':
			XBYTE[0xA000] = 100;
			break;
		case '3':
			XBYTE[0xA000] = 150;
			break;
		case '4':
			XBYTE[0xA000] = 200;
			break;
		default:
			break;
		}
		for (;;)
		{
			Delay(10);
			if ( KeyScan() == '\0' ) break;
		}
	}
}

⌨️ 快捷键说明

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