收藏 分销(赏)

ADC0804模数转换与显示教学文案.docx

上传人:w****g 文档编号:3817719 上传时间:2024-07-21 格式:DOCX 页数:10 大小:47.70KB 下载积分:8 金币
下载 相关 举报
ADC0804模数转换与显示教学文案.docx_第1页
第1页 / 共10页
ADC0804模数转换与显示教学文案.docx_第2页
第2页 / 共10页


点击查看更多>>
资源描述
ADC0804模数转换与显示 精品文档 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 uchar unsigned char sbit CS=P2^1; //ADC0804 CS 端 sbit wr=P2^4; //ADC0804 WR 端 sbit rd=P2^5; //ADC0804 RD 端 sbit lcd1=P2^3; //lcd锁存器 sbit lcden=P2^2; //lcd1602 EN 端 sbit lcdrs=P2^0; //lcd1602 RS 端 sbit dula=P2^7; //段选端 sbit wela=P2^6; //位选端 // float r; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 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=table[bai]; //送入百位 dula=0; //关闭段选 P0=0xff; //消隐 wela=1; //打开位选 P0=0x7e; //选择第一位 wela=0; //关闭位选 P0=0; //消隐 delay(5); //延时 dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0x7d; wela=0; P0=0; delay(5); dula=1; P0=table[ge]; 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=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); //写一个字符后地址加1 write_com(0x01); //显示清0,数据指针清0 } void 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); //选择在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'); 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分出个位跟小数点后四位 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); } } 仿真图: 收集于网络,如有侵权请联系管理员删除
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服