当前位置:   article > 正文

基于51单片机数字电压表的设计(PCB+原理图+仿真+论文+代码)_数字电压表的pcb设计的代码

数字电压表的pcb设计的代码

目录

1、前言

2、原理图           

3、PCB

4、仿真图 

5、部分代码

6、资料内容

资料下载地址:基于51单片机数字电压表的设计(PCB+原理图+仿真+论文+代码)

1、前言

本次设计的作品要求制作数字电压表的量程为0到5v,由于用到的模数转换芯片是ADC0809,设计系统给的供电电压为+5v。同时设计的精度为小数点后两位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下,此次设计的精度能够满足一般测量的要求。 

2、原理图           

    3、PCB

4、仿真图 

 5、部分代码

  1. //<程序名>:数字电压表 **
  2. //<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。 **
  3. #include"includes.h"
  4. #define TIME0H 0x3C
  5. #define TIME0L 0xB0
  6. uchar uc_Clock=0; //定时器0中断计数
  7. bit b_DATransform=0;
  8. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  9. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  10. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  11. void vShowVoltage(uint uiNumber)
  12. {
  13. uchar ucaNumber[3],ucCount;
  14. if(uiNumber>999)
  15. uiNumber=999;
  16. ucaNumber[0]=uiNumber/100; //把计算数字的每个位存入数组。
  17. ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;
  18. ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
  19. for(ucCount=0;ucCount<3;ucCount++)
  20. {
  21. vShowOneChar(ucaNumber[ucCount]+48); //从首位到末位逐一输出。
  22. if(ucCount==0)
  23. vShowOneChar('.');
  24. }
  25. }
  26. //*************************************************************************************************
  27. //* *
  28. //* ********************************主函数****************************** *
  29. //* *
  30. //*************************************************************************************************
  31. void main()
  32. {
  33. TMOD=0x01; //定时器0,模式1。
  34. TH0=TIME0H;
  35. TL0=TIME0L;
  36. TR0=1; //启动定时器。
  37. ET0=1; //开定时器中断。
  38. EA=1; //开总中断
  39. vdInitialize();
  40. vWriteCMD(0x84); //写入显示起始地址(第一行第4个位置)
  41. vShowChar("voltage");
  42. vWriteCMD(0xC9);
  43. vShowChar("(V)");
  44. while(1)
  45. {
  46. if(b_DATransform==1)
  47. {
  48. b_DATransform=0;
  49. vWriteCMD(0xC4);
  50. vShowVoltage(uiADTransform());
  51. }
  52. }
  53. }
  54. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  55. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0中断函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  56. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  57. void t0() interrupt 1
  58. {
  59. if(uc_Clock==0)
  60. {
  61. uc_Clock=5;
  62. b_DATransform=1;
  63. }
  64. else
  65. uc_Clock--;
  66. TH0=TIME0H; //恢复定时器0。
  67. TL0=TIME0L;
  68. }

6、资料内容

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/787810
推荐阅读
相关标签
  

闽ICP备14008679号