找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ADC0809-3路单片机仿真可以,实物不显示数字

[复制链接]
跳转到指定楼层
楼主
500黑币



  1. /*
  2. *****************************************
  3. 名称:LCD1602显示字符
  4. 描述:单片机通过并口连接LCD,第一行滚动显示字符,第二行显示串口接收到的字符
  5. *****************************************
  6. */

  7. #include<reg52.h>

  8. #define uchar unsigned char
  9. #define uint  unsigned int

  10. uchar FlagT = 0;            //滚动显示时间标志位
  11. uchar Flag3s = 0;           //3秒时间标示

  12. uchar AdcDat0 = 0;          //三个通到读到的电压值
  13. uchar AdcDat1 = 0;
  14. uchar AdcDat2 = 0;

  15. #include"LCD1602.h"                 //包含LCD1602头文件
  16. #include"ADC0809.h"

  17. /* 主函数:初始化LCD,显示字符 */
  18. void main()
  19. {
  20.         LcdInit();
  21.        
  22.         LcdShowStr(0, 0, "DL:");
  23.        
  24.         TMOD = 0x11;
  25.         TH0 = 0xFC;
  26.         TL0 = 0x18;
  27.         ET0 = 1;
  28.         TR0 = 1;
  29.        
  30.         TH1=0xFF;
  31.         TL1=0xFA;
  32.         ET1 = 1;
  33.         TR1 = 1;
  34.        
  35.         EA = 1;                 //打开总中断
  36.        
  37.         while(1)
  38.         {
  39.                 if(FlagT != 0)
  40.                 {
  41.                         FlagT = 0;
  42.                         Adc0809GetAdcDatCH0ToCH2();  //获取ADC三路AD值
  43.                         LcdShowAdcDat();             //显示获取到的值
  44.                 }
  45.         }
  46. }

  47. //定时器0中断
  48. void TIMER0() interrupt 1
  49. {
  50.         static uint cnt = 0;
  51.         static uint cnt3s = 0;
  52.         TH0 = 0xFC;
  53.         TL0 = 0x18;
  54.        
  55.         cnt++;
  56.         if(cnt > 100)
  57.         {
  58.                 cnt = 0;
  59.                 FlagT = 1;
  60.         }
  61.        
  62.         cnt3s++;
  63.         if(cnt3s > 3000)
  64.         {
  65.                 cnt3s = 0;
  66.                 if(Flag3s != 0)
  67.                         Flag3s = 0;
  68.                 else
  69.                         Flag3s = 1;
  70.         }
  71. }

  72. //定时器T1中断,给ADC0809提供时钟输入
  73. void TIMER1() interrupt 3
  74. {
  75.         TH1=0xFF;
  76.         TL1=0xFA;
  77.         AdcCLK = !AdcCLK;                          //取反
  78. }
复制代码



0.png (71.51 KB, 下载次数: 107)

0.png

ADC0809-3路.zip

853.4 KB, 下载次数: 32

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

使用道具 举报

沙发
ID:111634 发表于 2017-5-15 19:59 | 只看该作者
本帖最后由 zl2168 于 2017-5-15 20:49 编辑

0809八路AD。
实例84  ADC0808并行A-D(虚拟CLK)
Proteus仿真一下,确认有效。
实例84 ADC0808A-D(虚拟CLK).rar (35.75 KB, 下载次数: 15)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1.书中电路和程序设计有详细说明,程序语句条条有注解。
仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

板凳
ID:82765 发表于 2017-5-15 20:43 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

地板
ID:190745 发表于 2017-5-15 22:37 | 只看该作者
zl2168 发表于 2017-5-15 19:59
0809八路AD。
实例84  ADC0808并行A-D(虚拟CLK)
先Proteus仿真一下,确认有效。

不对的,我用的是LCD1602
回复

使用道具 举报

5#
ID:190745 发表于 2017-5-15 22:37 | 只看该作者
cjjcjj1 发表于 2017-5-15 20:43
你好!首先检查硬件接的是不是对!

实物连接是没有问题的,能不能帮我解决一下
回复

使用道具 举报

6#
ID:190745 发表于 2017-5-16 15:12 | 只看该作者
已经解决了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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