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

下载本文档

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

文档简介

1、ADC0804 模数转换与显示/52 系列单片机头文件/包含_nop_函数所在的头文件/ 宏定义sbit CS=P2A1;sbit wr=P2A4;sbit rd=P2A5;sbit lcd1=P2A3;sbit lcden=P2A2;sbit lcdrs=P2A0;sbit dula=P2A7;sbit wela=P2A6;ADC数模转换与现实(扩展用 1602 带电阻值显示)实验目的:1. 掌握ADC的使用控制方法。2. 实验内容:基本要求:设计一程序采集 ADC0809第3通道的电 压值,将其转换为数字量, 并在数码管上显示; 5V 显示为 255,0V 显示为 000。3. 扩展要求:

2、将转换结果以用 1602 表现出当前电阻值。C程序:#include#include #define uint unsigned int#define uchar unsigned char/ADC0804 CS 端/ADC0804 WR 端/ADC0804 RD 端/lcd 锁存器/lcd1602 EN 端/lcd1602 RS 端/ 段选端/ 位选端/ float r;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void delay(uin

3、t xms)/ 延时函数uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void display(uchar bai,uchar shi,uchar ge) / 数码管显示函数dula=1;/ 打开段选11 / 9P0=tablebai;/ 送入百位dula=0;/ 关闭段选P0=0xff;/ 消隐wela=1;/ 打开位选P0=0x7e;/ 选择第一位/ 关闭位选/ 消隐/ 延时wela=0;P0=0; delay(5);dula=1;P0=tableshi; dula=0; P0=0xff; wela=1;P0=0x7d; wela=0;P0=0; de

4、lay(5);dula=1;P0=tablege; dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;P0=0;/1602 写指令/1602 写数据delay(5);void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar data1)lcdrs=1;P0=data1;delay(5);lcden=1;delay(5);lcden=0;void init() /1602 初始化dula=0;/ 关闭段选wela=0;/ 关闭位选lcden

5、=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;lcden=1;lcd1=1; / 打开 lcd 锁存器/ write_com(0x01);write_com(0x80); wri

6、te_data(48+ge); 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); delay(5);/ 选择在 1602 第一行显示/ascii 码 48 写入个位/ 延时lcd1=0; / 关闭锁存器void main() / 主程序uchar a,A1,A2,A3,shu;uint ge,F1,F2,F3,F4;floa

7、t r;init();CS=0;while(1)r=(255-shu)/256; / 转换公式wr=1;_nop_();wr=O;/启动A/D转换_nop_();wr=1;for(a=10;a0;a-) display(A1,A2,A3);P1=0xff;/读取P1 口之前先给其写全1rd=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;1602 分出ge=(int)r%10;/(int )字符型强制转换成整形个位跟小数点后四位F1=(int)(r*10)%10;F2=(int)(r*100)%10;F3=(int)(r*1000)%10;F4=(int)(r*10000)%10;lcd_display(ge,F1,F2,F3,F4

温馨提示

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

评论

0/150

提交评论