基于单片机扩展接线(2764,6264,8255,0832,0809)系统Proteus仿真(含全部资料)
·
全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等
资料下载:
通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu
目录
项目功能:
扩展:
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转换
}
}
六、全套资料包含
七:项目资源获取
需要完整的资料可以点击下面的名片关注,回复“资料”!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)