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

📄 1230.txt

📁 DAC1230是一个12位的模数转换的芯片!而使用时候是在8位的单片机上运行,所以需要注意高四位和低八位的写入时序
💻 TXT
字号:
#include "reg51.h"
#define Con_Port P1
#define Date_Port P0
sbit	CS=Con_Port^0;
sbit	WR1=Con_Port^1;
sbit 	XFER=Con_Port^2;
sbit 	WR2=Con_Port^3;
sbit	BYTE=Con_Port^4;

unsigned char Date_H,Date_L;
unsigned int  Date;
void DelayMs(unsigned char k) {
	unsigned char i;
	while (k--) {
		for (i=0;i<125;i++);
	}
}

void DelayUs(unsigned char k) {
	while (k--) {
	}
}

void Write_Date() {
	unsigned temp;
	temp = Date;
	temp = temp >>4;
	Date_H = temp;
	Date_Port = Date_H;
	BYTE = 1;
	WR1 = 0;
	DelayUs(1);
	WR1 = 1;
	temp = Date;
	temp = temp <<4;
	Date_L = temp ;
	Date_Port = Date_L;
	BYTE = 0;
	WR1 = 0;
	DelayUs(1);
	WR1 = 1;
}

void Start() {
	XFER = 0;
	WR2 = 0;
	DelayUs(2);
	XFER = 1;
	WR2 = 1;
}

void Init_() {
	Date = 0;
	Date_H = 0;
	Date_L = 0;
	Date_Port = 0;
	CS = 0;
}

void main () {
	unsigned char i,j;


	unsigned int k[11];
	k[0] = 0;
	k[1] = 1;
	k[2] = 2;
	k[3] = 3;
	k[4] = 4;
	k[5] = 100;
	k[6] = 1000;
	k[7] = 2000;
	k[8] = 3000;
	k[9] = 4000;
	k[10] = 4095;


	Init_();
	i = 0;
	while (1) {
		Date = k[i];
		Write_Date();
		Start();
		i = i+1;
		for (j=0;j<40;j++) 
			DelayMs(100);
			if(i==11) i=0; 
	}
}

⌨️ 快捷键说明

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