完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、设计目的
(1) 设计内容
AT89C51单片机,四位共阳数码管,滑动变阻器,ADC0809 (3) 设计过程及调试关键步骤 首先按要求连接电路,之后将各个引脚在keil中进行命名,在滑动变阻器旁边加个电压表进行对数码管数据的检验。因为使用的外部中断,在中断函数中进行AD转换操作。程序编写完成后运行仿真,发现数据改变过大且不准,经过检查是AD转换器的输出端高低位接反,改正后能正常显示,仿真完成。 四、实验结果与分析 (1)程序 #include #define uchar unsigned char #define uint unsigned int ***it OE=P3^0; //AD转换结果输出允许端 ***it START=P3^1;//AD启动信号输入端与接受C、B、A编码时的锁存控制信号 ***it EOC=P3^2;//转换结束输出信号,AD转换开始时为低电平,转换结束时为高电平 ***it A_data=P3^3; ***it B_data=P3^4; ***it C_data=P3^5; uint information=0; //转换出的数据 uchar b[4]; //用于存放数码管的数据 uchar a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳数码管1-9数字代码 uchar wei[]={0x01,0x02,0x04,0x08}; //共阳数码管位选代码 void delay1ms(uint digit){ uint i,j; for(i=0;i void show(){ P2=wei[0]; P0=b[3]; delay1ms(1); P2=0x00; P2=wei[1]; P0=b[2]+128; delay1ms(1); P2=0x00; P2=wei[2]; P0=b[1]; delay1ms(1); P2=0x00; P2=wei[3]; P0=b[0]; delay1ms(1); P2=0x00;} void main(){ EA=1; //开总中断 IT0=1; //跳变沿方式感知外部中断(触发方式) EX0=1; //开外部中断0 while(1){ START=0; A_data=0; B_data=0; C_data=0; START=1; START=0; delay1ms(5);}} (2)设计结果及现象 将电阻的电压模拟信号通过AD转换芯片转换成数字量,然后将转换后的数字量通过LED数码管显示 滑动变阻器拉到最上端时显示4.99 滑动变阻器拉到中端时显示2.48 滑动变阻器拉到低端时显示0.00 (3)设计结果的分析与总结,有无改进方案?
|
|
|
|
只有小组成员才能发言,加入小组>>
2516 浏览 0 评论
1096浏览 2评论
707浏览 1评论
459浏览 0评论
200浏览 0评论
342浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 18:15 , Processed in 1.620955 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号