一、实验目的
1. 掌握单片机与A/D转换器ADC0809的接口技术;
2. 熟悉模拟信号采集与数据输出显示的综合程序设计与调试方法。
3. 掌握硬件仿真软件ISIS的使用。
二、实验设备(仪器)
计算机
三、实验内容
将调节器一端接+5V,另一端接地,中间抽头接A/D转换芯片ADC0809的任意通道,ADC0809采集来自调节器的0~5V连续可变的模拟电压信号,将其转换为8位数字信号00~FFH后,送单片机处理,并在最右端两位数码管上显示出电压值(显示格式:0.0~5.0),同时最左端数码管显示采集的通道数。
四、实验步骤
1.硬件仿真原理图如图1所示。
2.创建ISIS设计文件,绘制图1仿真原理图。
3.运行Keil uVision2软件,新建工程项目,编写简易数字电压表功能的源程序。
4.对源程序调试,连接,生成可执行文件。
5.切换到ISIS仿真界面,双击AT89C51器件,弹出“edit component”对话框,打开”Program File”文件夹,选中简易数字电压表程序所对应的可执行文件,再点击确定按钮。
6.在ISIS仿真界面中,点击运行按钮,观察运行结果,若结果不正确,再重新调试,编译,直至结果正确。
复习A/D转换器ADC0809芯片的功能引脚及其控制方法和数码管的动态显示控制,并按题目要求编写程序。
单片机源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay();
- void display();
- sbit START=P2^4;
- sbit EOC=P3^2;
- sbit OE=P3^0;
- sbit ADDA=P2^5;
- sbit ADDB=P2^6;
- sbit ADDC=P2^7;
- uint result;
- uchar code tabe0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code tabe1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
- void main()
- {
- while(1)
- {
- ADDA=1; //通道5
- ADDB=0;
- ADDC=1;
- START=0;
- START=1;
- START=0;
- while(EOC==0);
- OE=1;
- result=P1;
- OE=0;
- display();
- }
- }
- void delay(uint k)
- {
- uint i,t;
- for(i=0;i<100;i++)
- for(t=0;t<k;t++);
- }
- //void delay()
- //{
- // uint i;
- // for(i=0;i<1000;i++);
- //
- //}
- void display()
- {
- P2=0x0b;
- P0=tabe1[result/51]; //个位
- delay(10);
- P2=0x07;
- P0=tabe0[((result*10)/51)%10]; //小数点后位
- delay(10);
- P2=0x0e;
- P0=tabe0[5];
- delay(10);
- }
复制代码
所有资料51hei提供下载:
AD8(1).zip
(71.95 KB, 下载次数: 68)
实验八 AD转换实验.docx
(42.7 KB, 下载次数: 30)
|