找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机ADC0832数模转换液晶显示程序

[复制链接]
ID:679189 发表于 2022-5-13 17:15 | 显示全部楼层 |阅读模式
  1. #include <REGX52.H>
  2. #include "LCD1602.h"
  3. #include "Delay.h"
  4. #include "ADC0832.h"

  5. void main()
  6. {
  7.         LCD_Init();
  8.         ADC0832_Init();
  9.         while(1)
  10.         {

  11.                 Delay(200);   //每二百毫秒扫描一次数据情况

  12.                 LCD_ShowNum(2,2,getDaTa(),3);
  13.                
  14.         }
  15. }
复制代码
  1. #include <REGX52.H>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint   unsigned int
  5. //ADC0832绑定引脚
  6. sbit  ADCS=P1^3;
  7. sbit  ADDI=P1^5;
  8. sbit  ADCLK=P1^4;
  9. /**
  10.   * @brief  ADC083初始化,在程序的开头调用
  11.   * @param  无
  12.   * @retval 无
  13.   */
  14. void ADC0832_Init()
  15. {
  16.         ADCS=1;
  17. }

  18. /**
  19.   * @brief  ADC083获取无符号8位数据
  20.   * @param  无
  21.   * @retval 返回 usigned char 型数据
  22.   */
  23. uchar getDaTa()
  24. {
  25.     uchar i=0;
  26.     uchar j;
  27.     uint dat=0;
  28.     uchar ndat=0;

  29.     ADDI=1;
  30.     _nop_();
  31.     _nop_();
  32.     ADCS=0;//拉低CS端
  33.     _nop_();
  34.     _nop_();
  35.     ADCLK=1;//拉高CLK端
  36.     _nop_();
  37.     _nop_();
  38.     ADCLK=0;//拉低CLK端,形成下降沿1
  39.     _nop_();
  40.     _nop_();
  41.     ADCLK=1;//拉高CLK端
  42.     ADDI=1;     //选择通道0
  43.     _nop_();
  44.     _nop_();
  45.     ADCLK=0;//拉低CLK端,形成下降沿2
  46.     _nop_();
  47.     _nop_();
  48.     ADCLK=1;//拉高CLK端
  49.     ADDI=0;  //选择通道1
  50.     _nop_();
  51.     _nop_();
  52.     ADCLK=0;//拉低CLK端,形成下降沿3
  53.     ADDI=1;//控制命令结束
  54.     _nop_();
  55.     _nop_();
  56.     dat=0;
  57.     for(i=0;i<8;i++)
  58.     {
  59.         dat|=ADDI;//收数据
  60.         ADCLK=1;
  61.         _nop_();
  62.         _nop_();
  63.         ADCLK=0;//形成一次时钟脉冲
  64.         _nop_();
  65.         _nop_();
  66.         dat<<=1;
  67.         if(i==7)dat|=ADDI;
  68.     }  
  69.     for(i=0;i<8;i++)
  70.     {
  71.         j=0;
  72.         j=j|ADDI;//收数据
  73.         ADCLK=1;
  74.         _nop_();
  75.         _nop_();
  76.         ADCLK=0;//形成一次时钟脉冲
  77.         _nop_();
  78.         _nop_();
  79.         j=j<<7;
  80.         ndat=ndat|j;
  81.         if(i<7)ndat>>=1;
  82.     }
  83.     ADCS=1;//拉低CS端
  84.     ADCLK=0;//拉低CLK端
  85.     ADDI=1;//拉高数据端,回到初始状态
  86.     dat<<=8;
  87.     dat|=ndat;
  88.     return(dat);            //return ad k
  89. }
复制代码

Keil代码下载: 51单片机数模转换液晶显示.7z (78.5 KB, 下载次数: 29)

评分

参与人数 1黑币 +10 收起 理由
admin + 10 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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