全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等

资料下载:

通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu


目录

资料下载:

Proteus仿真功能

项目文件资料:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、Keil c语言程序源代码


项目功能:

扩展:
1.键盘、显示界面(已有,保持不变)
2.扩展A/D接口,芯片为ADC0809.
3.扩展D/A接口,芯片为DAC0832,设计为一级缓存。
4.扩展一片8255,作系统的1/0接口,A口作输人,其一路为光耦隔离输入。B口作输出其中一路为光耦隔离输出带12v单刀继电器
5.用普通三端稳压器芯片,设计上述各接口电路所需的各种电源,用多次级线包绕组的一只变压器供电。
6.简单说明主要设计指标,如A/D,为多少位转换时间等
7.每个接口必须标明地址,所有扩展需译码地址时只能用系统138芯片提供的地址空间不准用线选译码。


项目文件:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、器件清单

元件 型号 数量
单片机 AT89C51 1
电容 10uf 8
电容 30pf 2
晶振 12MHZ 1
电阻 10k 1
按钮 17
扩展芯片 8255 2
模数芯片 ADC0832 1
电位器 1k 1
LED 红色 4
电阻 100欧 4
显示器 LCD1602 1
光耦 OPTOCOUPLER-NPN 1
数码管 8位共阴 1
锁存器 74LS373 1
译码器 74LS138 1
集成运放 LM324 1
稳压芯片 7805 1
稳压芯片 7812 1
稳压芯片 7912 1
或非门 74LS02 2
继电器 12V 1
存储器 2764 1
存储器 6264 1

五、Keil c语言程序源代码(部分)

#include "reg51.h"
#include"absacc.h"
#define uchar unsigned char
#define uint unsigned int
#define DAC XBYTE[0x5fff]//DAC0832
#define	PA1 XBYTE[0X9FFC]//8255
#define	PB1 XBYTE[0X9FFD]
#define	PC1 XBYTE[0X9FFE]
#define	PD1 XBYTE[0X9FFF]
#define	PA2 XBYTE[0X7FFC]//8255
#define	PB2 XBYTE[0X7FFD]
#define	PC2 XBYTE[0X7FFE]
#define	PD2 XBYTE[0X7FFF]
#define	ADC0 XBYTE[0X3FF8]//adc
#define	ADC1 XBYTE[0X3FF9]
#define	ADC2 XBYTE[0X3FFA]
#define	ADC3 XBYTE[0X3FFB]
#define	ADC4 XBYTE[0X3FFC]
#define	ADC5 XBYTE[0X3FFD]
#define	ADC6 XBYTE[0X3FFE]
#define	ADC7 XBYTE[0X3FFF]
sbit led1=P1^4;//LED
sbit led2=P1^5;
sbit led3=P1^6;
sbit led4=P1^7;

//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,mode=0;//系统变量

//延时
void delay(uint i)
{
	while(i--);
}
//按键检测
void key_scan()
{
	uchar i=0,j=0,k=0;
	PD1=0x81;
	delay(100);
	PC1=0;
	i=PC1;
	if((i & 0x0f)<0x0f) //按键按下
	{	
		switch(i & 0x0f)
		{
			case 0x0e:j=0;break;
			case 0x0d:j=1;break;
			case 0x0b:j=2;break;
			case 0x07:j=3;break;
		}
		PD1=0x88;
		delay(100);
		PC1=0;
		i=PC1;
		switch(i & 0xf0)
		{
			case 0xe0:k=1;break;
			case 0xd0:k=5;break;
			case 0xb0:k=9;break;
			case 0x70:k=13;break;
		}
		if(j+k>0)
		{	
			if(j+k<11)
				PA1=smgduan[j+k-1];
			if(j+k==13)
				led1=!led1;
			if(j+k==14)
				led2=!led2;
			if(j+k==15)
				led3=!led3;
			if(j+k==16)
				led4=!led4;
		}
		while((PC1 & 0xf0)<0xf0);
	}
}
void main()	//主函数
{
	PD1=0x80;
	PD2=0x90;
	PA1=smgduan[0];
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	{
		DAC=ADC0;//把AD值输出到DA
		PB2=PA2;//光耦控制
		delay(50000);
		key_scan();//按键检测
	}
}
//定时器中断
void Timer0() interrupt 1
{
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		ADC0=0XFF;//启动AD转换
	}
}

六、全套资料包含

七:项目资源获取

需要完整的资料可以点击下面的名片关注,回复“资料”!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐