找回密码
 立即注册

QQ登录

只需一步,快速开始

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

pcf8591A/D转换OLED显示单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:448994 发表于 2019-2-22 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A/D转换OLED显示

单片机源程序如下:
  1. #include <reg52.h>               
  2. #include "i2c.h"
  3. #include "delay.h"
  4. #include "oled.h"

  5. #define AddWr 0x90   //写数据地址
  6. #define AddRd 0x91   //读数据地址
  7. //sbit jdq=P0^1;

  8. extern bit ack;
  9. unsigned char ReadADC(unsigned char Chl);
  10. bit WriteDAC(unsigned char dat);
  11. /*------------------------------------------------
  12.               主程序
  13. ------------------------------------------------*/
  14. main()
  15. {
  16.         unsigned char num=0;
  17. //        jdq=0;
  18. OLED_Init();

  19. while (1)         //主循环
  20.   {       
  21.                 num=ReadADC(0);
  22. //  if(num>=100)
  23. //        {
  24. //                OLED_ShowCHinese(0,0,0);
  25. //                OLED_ShowCHinese(18,0,1);
  26. //                OLED_ShowCHinese(36,0,2);
  27. //                OLED_ShowCHinese(0,2,3);
  28. //                OLED_ShowCHinese(18,2,4);
  29. //                OLED_ShowCHinese(36,2,5);
  30. //                OLED_ShowCHinese(0,4,6);
  31. //                OLED_ShowCHinese(18,4,7);
  32. //                OLED_ShowCHinese(36,4,8);
  33. ////                jdq=1;
  34. //                OLED_ShowNum(50,0,0,3,16);
  35. //                OLED_ShowNum(50,2,0,3,16);
  36. //          OLED_ShowNum(50,4,0,3,16);       
  37. //                DelayMs(100);
  38. //        }
  39. // else
  40. {
  41.         OLED_ShowCHinese(0,0,0);
  42.         OLED_ShowCHinese(18,0,1);
  43.         OLED_ShowCHinese(36,0,2);
  44.         OLED_ShowCHinese(0,2,3);
  45.         OLED_ShowCHinese(18,2,4);
  46.         OLED_ShowCHinese(36,2,5);
  47.         OLED_ShowCHinese(0,4,6);
  48.         OLED_ShowCHinese(18,4,7);
  49.         OLED_ShowCHinese(36,4,8);
  50.        
  51.         OLED_ShowNum(50,0,num/7,3,16);
  52.         OLED_ShowNum(50,2,num,3,16);
  53.         OLED_ShowNum(50,4,num*num/7,4,16);

  54. }
  55.   }
  56. }
  57. /*------------------------------------------------
  58.              读AD转值程序
  59. 输入参数 Chl 表示需要转换的通道,范围从0-3
  60. 返回值范围0-255
  61. ------------------------------------------------*/
  62. unsigned char ReadADC(unsigned char Chl)
  63. {
  64.    unsigned char Val;
  65.    Start_I2c();               //启动总线
  66.    SendByte(AddWr);             //发送器件地址
  67.      if(ack==0)return(0);
  68.    SendByte(0x40|Chl);            //发送器件子地址
  69.      if(ack==0)return(0);
  70.    Start_I2c();
  71.    SendByte(AddWr+1);
  72.       if(ack==0)return(0);
  73.    Val=RcvByte();
  74.    NoAck_I2c();                 //发送非应位
  75.    Stop_I2c();                  //结束总线
  76.   return(Val);
  77. }
复制代码

所有资料51hei提供下载:
1路AD数码管显示.rar (85.3 KB, 下载次数: 14)



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

使用道具 举报

沙发
ID:1 发表于 2019-2-22 16:33 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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