找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1999|回复: 4
打印 上一主题 下一主题
收起左侧

帮忙检查下程序,数字电压表

[复制链接]
跳转到指定楼层
楼主
ID:208134 发表于 2017-6-5 19:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. include<reg52.h>
  2. #include<intrins.h>         //调用_nop_();延时函数用
  3. #define uchar unsigned char#define uint unsigned int
  4. uchar code table[]="0123456789.";//定义显示的数组

  5. sbit lcden=P3^5;//定义管脚
  6. sbit lcdrs=P3^3;
  7. sbit lcdrw=P3^4;
  8. sbit a=P2^1;
  9. sbit b=P2^2;
  10. sbit c=P2^3;
  11. sbit st=P2^4;
  12. sbit eoc=P2^5;
  13. sbit oe=P2^6;
  14. uchar num,flag;
  15. void delay(uint z)//延时函数
  16. {
  17. uint x,y;
  18. for(x=z;x>0;x--)
  19. for(y=110;y>0;y--);
  20. }
  21. void write_com(uchar com)//1602读指令
  22. { lcdrw=0;
  23. lcdrs=0;
  24. P1=com;
  25. delay(5);
  26. lcden=1;
  27. delay(5);
  28. lcden=0;
  29. }


  30. void write_data(uchar date)//1602读数据
  31. { lcdrw=0;
  32. lcdrs=1;
  33. P1=date;
  34. delay(5);
  35. lcden=1;
  36. delay(5);
  37. lcden=0;
  38. }


  39. void lcd_init()//1602初始化函数
  40. {

  41. lcden=0;
  42. write_com(0x38);
  43. write_com(0x0c);
  44. write_com(0x06);
  45. write_com(0x01);

  46. }


  47. void main()
  48. {
  49. uchar date=0;
  50. float temp=0.0;
  51.     uchar q,b,s,g;
  52.   a=1;//选着ADC0809的第7通道
  53.   b=1;
  54.   c=1;
  55.      lcd_init();   
  56.      oe=0;
  57.     while(1)
  58.    {
  59.        st=0;
  60.     st=1;
  61.     st=0;
  62.        delay(5);
  63.     while(!eoc)
  64.      {
  65.        oe=1;
  66.     date=P0;
  67.     oe=0;
  68. temp= (float) date*5.0/256;//数据处理


  69. temp=temp/100.0;
  70. temp=temp*100000.0;
  71. q=(int)temp/1000;
  72. b=(int)temp%1000/100;
  73. s=(int)temp%1000%100/10;
  74. g=(int)temp%10;



  75.      write_com(0x80);//1602显示处理好的数据
  76.   write_data(table[q]);
  77.   delay(20);
  78.   write_data(table[11]);
  79.   delay(20);
  80.   write_data(table[b]);
  81.   delay(20);
  82.   write_data(table[s]);
  83.   delay(20);
  84.   write_data(table[g]);
  85.   delay(20);
  86.      }

  87.    }   

  88. }



复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:208172 发表于 2017-6-5 20:55 | 只看该作者
有没有仿真图
回复

使用道具 举报

板凳
ID:208215 发表于 2017-6-5 22:46 | 只看该作者
管脚定义对了嘛
回复

使用道具 举报

地板
ID:34643 发表于 2017-6-6 06:34 | 只看该作者
你的这个程序,没看出什么啊。
回复

使用道具 举报

5#
ID:162136 发表于 2017-6-7 10:20 | 只看该作者
oe=1;
    date=P0;
    oe=0;
temp= (float) date*5.0/256;//数据处理
oe=1是不是A/D芯片转换使能。要不要延时?还有这里是芯片为高电平使能。
另:
temp=temp/100.0;
temp=temp*100000.0;
这两句能不能直接改为 temp=temp*1000.0;
这句s=(int)temp%1000%100/10;能不能改为 s=(int)temp%100/10;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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