- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模数转换ADC0804的应用.doc
模数转换ADC0804的应用
[实验要求]
从ADC0804 的模拟量通道输入0-5V 之间的模拟量,通过ADC0804 转换成数字量送给单片机,经单片机处理后在数码管上以十进制形成显示出来。说明:2006年9月份之前购买TX-1B单片机学习板的用户光盘中ADC0804的源程序编译后不能正常运行,但光盘中的BIN下载文件可正常运行,正确的源程序现在改正如下.
?[实验目的]
???? 学习如果用单片机控制ADC0804芯片进行数模转换,掌握数码管动态扫描显示的原理。
动态扫描:就六位数码管显示123456举例说明如下:先让第一个数码管显示1,其余的全部不亮,1大约亮几毫秒,然后熄灭,紧接着立即让第二个数码管显示2,其余的全部不亮,2同样亮几毫秒,依次这样亮到第六个数码管,然后再回来显示1,如此这样以很快的速度不断循环下去,由于人眼的视觉暂留时间大约为20毫秒左右,所以是感觉不出有不亮的数码管存在的,看见的是六个数码管同时在显示,数值是123456,如果我们把这个过程一点点放慢,看见的是从第一个数码管显1,然后移到第二个再显2,。。。也就是说在任一时刻只有一位数码管是亮的。这就是数码管动态扫描显示的原理
ADC0804: ADC0804是8位全MOS中速A/D 转换器、它是逐次逼近式A/D 转换器,片内有三态数据输出锁存器,可以和单片机直接接口。单通道输入,转换时间大约为100us。ADC0804 转换时序是:当CS=0 许可进行A/D 转换。WR由低到高时,A/D开始转换,一次转换一共需要66-73 个时钟周期。CS与WR同时有效时启动A/D转换,转换结束产生INTR 信号(低电平有效),可供查询或者中断信号。在CS和RD 的控制下可以读取数据结果。本实验没有使用INTR信号。
?
?[硬件电路]
[源代码]
//拧动AD旁边的电位器,会在数码管的前三位显示0-255之间的数//值。这就是把模拟信号转换成数字信号,即模数转换。
#includereg51.h#include intrins.h#define uint unsigned int#define uchar unsigned charsbit adrd=P3^7;????????????????????????? //IO口定义sbit adwr=P3^6;sbit diola=P2^5;sbit dula=P2^6;sbit wela=P2^7;unsigned char j,k,adval;void delay(unsigned char i)??//延时程序{? for(j=i;j0;j--)??? for(k=125;k0;k--);}uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,????//数码管编码??????????????????????? 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void display(uchar bai_c,uchar sh_c,uchar g_c)???//显示程序{? ?? P0=table[bai_c];??//显示百位?? dula=1;?? dula=0;
?? P0=0xfe;?? wela=1;?? wela=0;?? delay(5);
?? dula=0;?? P0=table[sh_c];??//显示十位?? dula=1;?? dula=0;
?? wela=0;?? P0=0xfd;?? wela=1;?? wela=0;?? delay(5);
?? P0=table[g_c];??//显示个位?? dula=1;?? dula=0;
?? P0=0xfb;?? wela=1;?? wela=0;?? delay(5);}
void main()??//?主程序{
? uchar a,A1,A2,A2t,A3;??? while(1)? {??? wela=1;??? P0=0;?????????????????????? //选通ADCS??? adwr=0;???//AD写入(随便写个什么都行,主要是为了启动AD转换)??? _nop_();??? adwr=1;??? P0=0xff;??????????????????? //关闭ADCS??? delay(10);??? wela=0;???????????????????? //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化?????? for(a=20;a0;a--)??????? //需要注意
您可能关注的文档
最近下载
- 《产品质量鉴定程序规范 总则》.pdf VIP
- 沪科版九年级物理公式复习.pdf VIP
- AQ∕T 2063-2018 金属非金属露天矿山高陡边坡安全监测技术规范(可复制版).pdf
- 高速公路无人机自动巡检可行性探究.pdf VIP
- CR4012022机器人CR认证可靠性等级认证实施细则.pdf
- 再生水管道阀门选型与管理.doc VIP
- 某公司办公区生活区消防检查记录表.docx VIP
- 人教版高一数学必修一练习题-高一数学人教版必修一《集合》练习题3.doc VIP
- 智慧方案光储充一体化系统解决方案.pptx VIP
- IPC-TM-650测试方法手册CN2020最新(104个方法)扫描版.pdf VIP
文档评论(0)