1、实验目的

掌握51单片机A/D转换原理及使用方法;

掌握51单片机访问外部RAM原理及使用方法。

2、实验原理

(1)基础要求:

基于典型51单片机与ADC0809硬件连接方式,采用ADC0809对IN5通道的模拟电压进行转换,电压值通过四位数码管进行显示。例如:1.234伏。其中,模拟电压可由滑动变阻器提供。

在keilC51中编辑代码,分为几个模块

模块1:毫秒延时,这里主要是应用在数码管显示部分。

模块2:模数转换及数码管显示部分,把输入的电压值*5000.0/255.0;用p2作扫描,P2 = 0xf7, 0xfb,0xfd,0xfe;分别对应一个7段数码管,再将四位数每位存入p0。

模块3:初始化部分,CLK=0;ST=1; EOC=1; OE=0;  ADDC=1;ADDB=0;ADDA=1;(101选择通道5)。

模块4:中断函数,用t0,CLK = !CLK。

主函数:设置定时方式2,两级中断。

在while(1)的循环中给st一个正脉冲使其启动,然后调用模块3,模块2。

输出hex文件。

在proteus中设计电路,选择80c51单片机,adc0809,7seg-mpx4数码管,滑动变阻器,连接方式如图1。

1 滑动滑动变阻器,数码管上会显示0-5v的电压变化。

  1. 冲击要求:

在基础要求前提下,通过按键选择ADC0809的某一个通过进行模拟电压转换,电压值通过四位数码管进行显示。同时,将模拟电压转换数值存储在外部RAM中。

在keilC51中编辑代码,分为几个模块

模块1:毫秒延时,这里主要是应用在数码管显示部分。

模块2:模数转换及数码管显示部分,把输入的电压值*5000.0/255.0;用p2作扫描,P2 = 0xf7, 0xfb,0xfd,0xfe;分别对应一个7段数码管,再将四位数每位存入p0。再将各位的电压值存入r1-r4。

模块3:初始化部分,CLK=0;ST=1; EOC=1; OE=0;  ADDC=CC;ADDB=BB;ADDA=AA;CC,BB,AA是p2.5-p2.7脚加一个拨码开关来选择通道。

模块4:中断函数,用t0,CLK = !CLK。

主函数:设置定时方式2,两级中断。

在while(1)的循环中给st一个正脉冲使其启动,然后调用模块3,模块2。

然后在用XBYTE[0]=r4;XBYTE[1]=r3; XBYTE[2]=r2;XBYTE[3]=r1;将电压存到外部ram中。

输出hex文件。

在proteus中设计电路,选择80c51单片机,74ls373锁存器,adc0809,6264外部ram,7seg-mpx4数码管,滑动变阻器,连接方式如图2。

图 2

//基础代码,冲击自己改改就好,主要难点是连接的电路图
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned charuchar code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit OE  = P1^0; //输出使能
sbit EOC = P1^1;//结束转换信号
sbit ST  = P1^2;// 启动信号
sbit CLK = P1^3;// 时钟信号
sbit dp=P0^7;  //小数点接p0.7
sbit ADDC=P1^6;
sbit ADDB=P1^5;
sbit ADDA=P1^4;
void DelayMS(uint n)//毫秒延时
{    uchar i,j; for(i=0;i<n;i++)for(j=0;j<120;j++);//n毫秒分频
}void Display(uint d)
{P2 = 0xf7;P0 = LED[d%10]; //第四个数码管显示个位DelayMS(5);P2 = 0xfb;     P0 = LED[d%100/10]; //第三个数码管显示十位DelayMS(5);P2 = 0xfd;P0 = LED[d/100%10]; //  第二个数码管显示百位DelayMS(5);P2 = 0xfe;P0 = LED[d/1000];  //第一个数码管显示千位dp=1;             //小数点DelayMS(5);
}void main()
{uint v;TMOD = 0x02;//定时方式2TH0  = 0x10;TL0  = 0x10;EA=1;ET0=1;TR0  = 1;ADDC=1;ADDB=0;ADDA=1;CLK=0;ST=1; //内部寄存器清零EOC=1; // 转换结束(未开始)OE=0;while(1){ ST = 0;    // A/D转换启动脉冲输入端,输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。ST = 1;   //ST = 0;  //while(EOC == 0);OE = 1;v=P3*19.607843;Display(v);OE =0;}
}
void t0() interrupt 1
{CLK = !CLK;
}  

4、实验结果

hex文件在这https://download.csdn.net/download/weixin_62487280/85256761

51单片机外部扩展实验相关推荐

  1. 51单片机 | 外部中断实验

    文章目录 一.外部中断介绍 二.外部中断配置 三.硬件设计 四.软件设计 五.实验现象    51 单片机外部中断有 2 个,外部中断 0 和外部中断 1,它们的使用方法是一样的,所以只要学会一个即可 ...

  2. 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...

  3. 单片机中存储器扩展位地址线怎么算_51单片机外部扩展存储器时,分时复用做数据线和低8位地址线的是( )...

    [单选题]AT89C51单片机的P3.4脚功特殊能( ) [简答题] [判断题]读风玫瑰图时,它的f风向中心吹向外缘. [简答题](16.0分) [判断题]项目建议书仅是项目建设轮廓的一个初步研究,批 ...

  4. 51单片机外部中断的C51编程

    51单片机外部中断的C51编程 相关知识: 1.51单片机的5大中断源:串行口中断.定时中断1.外部中断1.定时中断0.外部中断0: 2.中断源的编号: 串行口中断为4.定时中断1为3.外部中断1为2 ...

  5. 51单片机中断系统实验

    51单片机中断系统实验 一.实验内容 INT0端接单次脉冲发生器.按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转. 根据实验内容编写一个程序,并在实验系统 ...

  6. 51单片机的仿真实验——1602显示屏显示万年历与温度

    实验内容: 1:数字钟设计 2:基于DS18B20的温度测量模块设计 问题描述: 之前笔者写过一篇用数码管显示日历与温度的实验记录(51单片机的仿真实验--数码管显示日历与温度).但是数码管在仿真软件 ...

  7. 51单片机8255扩展c语言,51单片机8255A扩展IO口

    <51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...

  8. 【Proteus仿真】51单片机红外无线通信实验

    [Proteus仿真]51单片机红外无线通信实验 Proteus仿真 使用说明 接收端的单片机加载接收端的Hex文件,发射端加载发射端的Hex文件,仿真过程中,接收端响应有点慢,当长时间无数据发送时, ...

  9. 自学51单片机 - 矩阵按键实验

    自学51单片机 - 矩阵按键实验 1.开发板原理图 2.程序 2.1 行列式扫描法 2.2 线翻转扫描法 3.结果 1.开发板原理图 2.程序 2.1 行列式扫描法 /**************** ...

  10. 单片机中存储器扩展位地址线怎么算_单片机外部扩展存储器时,分时复用做数据线和低8位地址线的是( )。 (2.0分)_学小易找答案...

    [判断题]数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程() [单选题]单片机的P1口的功能是( ). (2.0分) [单选题]当52单片机应用系统需要扩展外部存储器或其他接口芯片时, ...

最新文章

  1. J2EE 13规范(4)-JSP
  2. Learning to Rank简介
  3. 关于HTML头文件中的meta
  4. 【MySQL】如何让数据库查询区分大小写
  5. 容器源码解析之LinkedHashMap(九)
  6. leetcode239. 滑动窗口最大值
  7. win7电脑浏览器证书过期的解决方法
  8. 西电计算机达标测试挂科保研,西电竞赛保研
  9. 饼状图改变数据显示位置_Tableau--饼图大作战
  10. 2020-12-04
  11. 在内核中使用线程与skb队列发送数据
  12. 简单好玩的手机编程代码
  13. matlab设计低通滤波器
  14. PS如何制作炫酷的字体,有什么好的教程吗
  15. linux后门rootkit程序介绍
  16. Android Studio Dolphin 稳定版正式发布
  17. 新媒体时代下如何践行网络口碑营销?
  18. 设计 QQ、微信、微博、Github 等第三方账号登陆
  19. VC苹果版:iPhone iOS下载安装《罪恶都市》侠盗飞车GTA的方法
  20. 大一学生WEB前端静态网页——旅游网页设计与实现(15页面)

热门文章

  1. 面向对象:静态 非静态 实参 形参 值传递 类与对象的关系 创建初始化对象 构造器的调用 有参构造
  2. 猎聘发布海外留学生报告 海归留学生数量将持续稳定增长
  3. 豌豆淘细谈会员制电商,忠诚度将是电商未来机会
  4. 10 个最佳 PDF 编辑器,带来轻松的 PDF 编辑体验
  5. 目标检测IoU GIoU DIoU CIoU EIoU Loss
  6. BBE Sound Sonic Sweet更新 - MacOS Big Sur 的兼容性和增强功能
  7. Linux固化虚拟系统,[操作系统]SD卡, EMMC固化 ,关于bootloader linux
  8. 人口预报:世界上最大的国家
  9. [附源码]Nodejs计算机毕业设计闲置物品交易平台Express(程序+LW)
  10. ArcGIS产品体系