找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机PCF8591四路AD数值LCD1602屏显示源码

[复制链接]
跳转到指定楼层
楼主
ID:317561 发表于 2018-4-27 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序:
  1. /**********************BST-V51实验开发板例程************************
  2. *  平台:BST-V51 + Keil U3 + STC89C52
  3. *  名称:四路AD数值LCD1602屏显示
  4. *  公司:深圳市亚博软件开发有限公司
  5. *  晶振:11.0592MHZ
  6. *  说明:免费开源,不提供源代码分析.
  7. ******************************************************************/
  8. /*-----------------------------------------------
  9.   名称:IIC协议 PCF8591ADDA转换                  显示有4个,注意只有2个可以调节电压的
  10.   内容:此程序通过IIC协议对DAAD芯片操作,读取电位器的电压通过液晶显示,并输出模拟量,用LED亮度渐变指示
  11. ------------------------------------------------*/
  12. #include <reg52.h>    //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  13. #include <intrins.h> //包含NOP空指令函数_nop_();
  14. #include "LCD1602.h"
  15. #include "IIC.h"
  16. #include "stdio.h"
  17. unsigned char TempData[8];
  18. unsigned char showtext[12];
  19. /*------------------------------------------------
  20.                     延时程序
  21. ------------------------------------------------*/
  22. void mDelay(unsigned char j)
  23. {
  24.         unsigned int i;
  25.         for(;j>0;j--)
  26.         {
  27.                 for(i=0;i<125;i++);
  28.         }
  29. }
  30. /*------------------------------------------------
  31.                     初始化定时器1
  32. ------------------------------------------------*/
  33. void Init_Timer1(void)
  34. {
  35.         TMOD |= 0x10;                             
  36.         TH1=0xff;                              /* Init value */
  37.         TL1=0x00;
  38.         EA=1;                      /* interupt enable */
  39.         ET1=1;                     /* enable timer1 interrupt */
  40.         TR1=1;  
  41. }

  42. /*------------------------------------------------
  43.                    主程序
  44. ------------------------------------------------*/
  45. void main()
  46. {
  47.         //unsigned char num;                   //DA数模输出变量
  48.         float ADtemp;                //定义中间变量
  49.         
  50.         LCD1602_init();
  51.         mDelay(20);
  52.         Init_Timer1();
  53.                
  54.         LCD_Write_String(0,0,"rank:");        //在第一行显示
  55.         
  56.         while(1)
  57.         {
  58.                 mDelay(20);     //延时用于清晰看出变化
  59.                
  60.                 if(ADFlag)      //定时采集输入模拟量
  61.                 {
  62.                         ADFlag=0;

  63.                         ADtemp = ReadADC(0)*(5.0/256);
  64.                         
  65. //                        TempData[0]=(unsigned int)(ReadADC(0))*(5/256);//处理0通道电压显示
  66. //                        TempData[1]=(unsigned int)(ReadADC(0))*50/256%10;
  67. //                        TempData[2]=(unsigned int)(ReadADC(0))*500/256%10;
  68.                         sprintf(showtext,"%1.2fV",ADtemp);
  69.                         
  70.                         LCD_Write_String(5,0,showtext);
  71.         
  72. //                        LCD_Write_Char(5,0,TempData[0] + '0');        
  73. //                        LCD_Write_Char(6,0,'.');        
  74. //                        LCD_Write_Char(7,0,TempData[1] + '0');
  75. //                        LCD_Write_Char(8,0,TempData[2] + '0');
  76. //                        LCD_Write_Char(9,0,'V');
  77.                 }
  78.         }
  79. }

  80. /*------------------------------------------------
  81.                    定时器中断程序
  82. ------------------------------------------------*/
  83. void Timer1_isr(void) interrupt 3 using 1//定时器1执行数码管动态扫描
  84. {

  85. static unsigned int j;
  86. TH1=0xfb;                //重新赋值
  87. TL1=0x00;
  88. j++;
  89. if(j==200)
  90.     {j=0;ADFlag=1;} //定时置位AD采样标志位
  91.          
  92. ……………………

  93. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
【实验52】AD模块.zip (57.88 KB, 下载次数: 124)


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

使用道具 举报

沙发
ID:389518 发表于 2018-8-30 21:11 | 只看该作者
有仿真图吗?
回复

使用道具 举报

板凳
ID:589943 发表于 2019-8-19 15:46 | 只看该作者
不是很明白哦
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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