单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 208|回复: 0
收起左侧

利用单片机+ADC0808转换器对0~5v的模拟电压进行数据采集

[复制链接]
langlangz 发表于 2020-6-30 20:36 | 显示全部楼层 |阅读模式
初学单片机几月,这是我最近做的关于ad转换的电压采集。
如有错误,望请指正,蟹蟹~
希望大家能够多多与我交流经验,新人请多多指教。
用proteus画的仿真图,文档中含有源代码与仿真文件。
AD3.PNG

仿真实现结果
ad1.PNG

AD2.PNG
  1. #include<reg51.h>
  2. #include <intrins.h>
  3. sbit w1=P1^4;
  4. sbit w2=P1^5;
  5. sbit w3=P1^6;
  6. sbit w4=P1^7;
  7. sbit OE=P1^0;
  8. sbit EOC=P1^1;
  9. sbit ST=P1^2;
  10. sbit CLOCK=P1^3;
  11. sbit a=P0^0;
  12. sbit b=P0^1;
  13. sbit c=P0^2;
  14. unsigned char code table1[]={0x40,0x79,0x24,0x30,0x19,0x12};/*带小数点的数字0~5*/
  15. unsigned char code table2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0~9编码
  16. unsigned char vdata;
  17. void zhongduan()
  18. {
  19. a=0;
  20. b=0;
  21. c=0;//选择通道0
  22. TMOD=0x02;
  23. TH0=256-50;
  24. TL0=256-50;
  25. EA=1;ET0=1;
  26. TR0=1;
  27. }
  28. void delay()
  29. {unsigned char i,j;
  30. for(i=0;i<10;i++)
  31. for(j=0;j<50;j++);}
  32. void convert(unsigned char vdata)//数码管的动态显示
  33. {
  34. P2=table1[vdata*196/10000];/*小数点前一位数字显示 */
  35. w1=1;
  36. delay();
  37. w1=0;
  38. P2=table2[vdata*196/1000%10]; //小数点后一位
  39. w2=1;
  40. delay();
  41. w2=0;
  42. P2=table2[vdata*196/100%10];//小数点后两位
  43. w3=1;
  44. delay();
  45. w3=0;
  46. P2=table2[vdata*196/10%10];         //小数点后三位
  47. w4=1;
  48. delay();
  49. w4=0;
  50. }
  51. void main()
  52. {

  53. unsigned char vdata;
  54. zhongduan();
  55. while(1)
  56. {

  57. ST=0;
  58. _nop_();
  59. ST=1;
  60. _nop_();
  61. ST=0;
  62. _nop_();  //构造上升下降沿,启动AD转换器

  63. while(EOC==0);        //等待ad转换结束
  64. OE=1;//数据送至out口
  65. _nop_();
  66. vdata=P3;//将数据值赋给变量vdata
  67. convert(vdata);//将转换的数据通过数码管显示所得数字
  68. delay();
  69. OE=0;
  70. }}
  71. void time0_int()interrupt 1         //中断服务子程序,产生时钟脉冲,将模拟信号转换为数字信号
  72. {

  73. CLOCK=~CLOCK;
  74. }
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表