ADC0804模数转换与显示_第1页
ADC0804模数转换与显示_第2页
ADC0804模数转换与显示_第3页
ADC0804模数转换与显示_第4页
ADC0804模数转换与显示_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ADC数模转换与现实 (扩展用1602带电阻值显示)实验目的:1. 掌握ADC的使用控制方法。 2. 实验内容:  基本要求:设计一程序采集ADC0809第3通道的电压值,将其转换为数字量,并在数码管上显示;5V显示为255, 0V显示为000。3.   扩展要求:将转换结果以用1602表现出当前电阻值。C程序:#include<reg52.h>/52系列单片机头文件#include<intrins.h> /包含_nop_函数所在的头文件#define uint unsigned int /宏定义#define

2、 uchar unsigned charsbit CS=P21; /ADC0804 CS 端sbit wr=P24; /ADC0804 WR 端sbit rd=P25; /ADC0804 RD 端sbit lcd1=P23; /lcd锁存器sbit lcden=P22; /lcd1602 EN 端sbit lcdrs=P20; /lcd1602 RS 端sbit dula=P27; /段选端sbit wela=P26; /位选端/ float r;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x

3、7c,0x39,0x5e,0x79,0x71;void delay(uint xms) /延时函数 uint i,j; for(i=xms;i>0;i-) for(j=110;j>0;j-);void display(uchar bai,uchar shi,uchar ge) /数码管显示函数 dula=1; /打开段选 P0=tablebai; /送入百位 dula=0; /关闭段选 P0=0xff; /消隐 wela=1; /打开位选 P0=0x7e; /选择第一位 wela=0; /关闭位选 P0=0; /消隐 delay(5); /延时 dula=1; P0=tablesh

4、i; dula=0; P0=0xff; wela=1; P0=0x7d; wela=0; P0=0; delay(5); dula=1; P0=tablege; dula=0; P0=0xff; wela=1; P0=0x7b; wela=0; P0=0; delay(5); void write_com(uchar com) /1602写指令 lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_data(uchar data1) /1602写数据lcdrs=1; P0=data1; delay(5); lcden

5、=1; delay(5); lcden=0; void init() /1602初始化dula=0; /关闭段选wela=0; /关闭位选lcden=0; /lcden置于低电平write_com(0x38); /设置16*2显示,5*7点阵,8位数据接口write_com(0x0c); /设置开显示,不显示光标write_com(0x06); /写一个字符后地址加1write_com(0x01); /显示清0,数据指针清0void lcd_display(uint ge,F1,F2,F3,F4) /lcd_显示 (F1小数点后一位 F2小数点后两位 F3 F4) wela=0; dula=0

6、; lcden=1; lcd1=1; /打开lcd锁存器 / write_com(0x01); write_com(0x80); /选择在1602第一行显示 write_data(48+ge); /ascii码48 写入个位 delay(5); /延时 write_data('.'); delay(5); write_data(48+F1); delay(5); write_data(48+F2); delay(5); write_data(48+F3); delay(5); write_data(48+F4); delay(5); write_data('K'

7、); delay(5); lcd1=0; /关闭锁存器 void main()/主程序 uchar a,A1,A2,A3,shu; uint ge,F1,F2,F3,F4; float r; init(); CS=0; while(1) r=(255-shu)/256; /转换公式 wr=1;_nop_();wr=0; /启动A/D转换_nop_();wr=1; for(a=10;a>0;a-) display(A1,A2,A3); P1=0xff;/读取P1口之前先给其写全1 rd=1;/选通AD0804 CS 端_nop_(); rd=0;/A/D读使能_nop_(); shu=P1;/A/D数据读取赋给P1口 rd=1; A1=shu/100;/数码管分出 百 十 个 A2=shu%100/10; A3=shu%10; ge=(int)r%10; /(int)字符型强制转换成整形 1602分出个位跟小数点后四

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论