找回密码
 立即注册

QQ登录

只需一步,快速开始

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

带数码管可编程可调节延时模块原理图PCB与单片机源码等全套设计资料下载

[复制链接]
跳转到指定楼层
楼主
Altium Designer画的三路AD采集/温度采集/两路输入输出继电器数码管显示模块原理图和PCB图如下:(51hei附件中可下载工程文件)


资料里面包含:三路模拟量采集并显示(AD—UART发送),两路输入控制继电器等单片机源码

注:该模块可以做成温度、显示、数字输入、继电器输出、AD采集、延时时间调节等功能的产品。如顾客没有特殊要求,我们默认发货倒计时30秒控制继电器吸合程序功能

适用场合:温控设备0到5V模拟量采集定时延时继电器、工业以及项目中。。。

【输入端子说明】

VCC和GND为电源供电端子,直流供电电压范围6V-40V

A1、A2为模拟量输入端子,采集0-5V的直流电压

IN1、IN2为两路数字量带光电隔离的输入控制端

KEY1、KE2为两路按键输入

【两路输出端子说明】

两路继电器输出可控制交流220V/10A的负载

【下载通讯端口】

  UART接口可以用来下载程序或进行通讯

【时间控制模块】

通过编程,可以用按键或电位器做为调节延时时间(具体功能可以联系客服,根据顾客具体要求实现)

【温度控制模块】

1用直插的DS18B20(需要顾客另外购买DS18B20)可以做成两路数字输入,两路AD,两个按键输入,两路继电器输出的温度控制模块(要实现具体什么功能,请与客服联系!拍下之前,务必于与客服联系

  • 用另一种型号的DS18B20(需要顾客另外购买DS18B20)可以做成两路数字输入,两路AD,两个按键输入,两路继电器输出的温度控制模块

电位器调节延时闭合时间,带触发控制单片机源程序如下:

  1. /********************************************************************
  2.                             汇诚科技

  3. 实现功能:延时通断
  4. 使用芯片:STC12C2052AD
  5. 晶振:11.0592MHZ
  6. 波特率:9600
  7. 编译环境:Keil
  8. 作者:zhangxinchunleo
  9. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  10. /********************************************************************
  11. 采样AD的电压值作为继电器的延时吸合时间        最大调节数为255秒最小调节单位是秒
  12. 或者最大调节时间为分,最大调节数为255,最小调节单位为分
  13. 注意:调节好设定时间之后,要断电重新上电
  14. ********************************************************************/

  15. #include<STC12C52.h>                 //库文件
  16. #include <intrins.h>
  17. #define uchar unsigned char//宏定义无符号字符型
  18. #define uint unsigned int  //宏定义无符号整型
  19. #define FOSC 11059200L
  20. #define BAUD  9600

  21. #define ADC_POWER   0x80            //ADC 电源控制位
  22. #define ADC_FLAG    0x10            //ADC 转换结束标志位
  23. #define ADC_START   0x08            //ADC 开始转换控制位
  24. #define ADC_SPEEDLL 0x00            //420个时钟周期转换一次
  25. #define ADC_SPEEDL  0x20            //280 个时钟周期转换一次
  26. #define ADC_SPEEDH  0x40            //140个时钟周期转换一次
  27. #define ADC_SPEEDHH 0x60            //70个时钟周期转换一次
  28. void display(void);                  //显示函数
  29. void t_to_dis(uchar num);

  30. #define DUAN P2                   //P0口控制段
  31. #define WEI  P1                   //P2口控制位
  32. /********************************************************************
  33.                             初始定义
  34. *********************************************************************/
  35. //数码管显示段码
  36. code uchar seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF};
  37. //数码管显示位控制
  38. sbit wei1=P1^0;                       //位的控制端
  39. sbit wei2=P1^1;
  40. sbit wei3=P1^2;
  41. sbit wei4=P1^3;

  42. //按键输入
  43. sbit key2=P3^2;
  44. sbit key1=P3^3;
  45. //模拟量输入端
  46. sbit A1=P1^5;
  47. sbit A2=P1^6;
  48. sbit A3=P1^4;
  49. //输入控制端
  50. sbit IN1=P1^7;
  51. sbit IN2=P3^7;
  52. //输出控制端
  53. sbit  OUT1=P3^4;
  54. sbit  OUT2=P3^5;
  55. uchar numb[4];              //定义字符串用于数值转换
  56. uint tcnt;
  57. uchar miao;
  58. /********************************************************************
  59.                             延时函数
  60. *********************************************************************/
  61. void delay(uint x)//延时程序 0.1秒
  62. {
  63.         uint m,n,s;
  64.         for(m=x;m>0;m--)
  65.         for(n=20;n>0;n--)
  66.         for(s=248;s>0;s--);
  67. }
  68.                   
  69. /********************************************************************
  70.                          AD转换初始化程序
  71. *********************************************************************/

  72. void InitADC()
  73. {
  74.     P1ASF|=0x10;        //设置P1口为开漏模式,使用AD功能
  75.     ADC_RES=0;          //AD数据寄存器清空
  76.     ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START;//打开AD电源,转换周期XX
  77.     delay(10);                //延时
  78. }

  79. /********************************************************************
  80.                          AD转换控制程序
  81. *********************************************************************/
  82. uchar GetADCResult(uchar px)          //转换输出的数据 (PX为通道口)
  83. {
  84.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//开始转换
  85.     _nop_();                        //延时一个机器周期
  86.     _nop_();                                                //延时一个机器周期
  87.     _nop_();                                                //延时一个机器周期
  88.     _nop_();                                                //延时一个机器周期
  89.     while (!(ADC_CONTR & ADC_FLAG));//等待转换结束
  90.     ADC_CONTR &= ~ADC_FLAG;         //关闭AD转换
  91.     return ADC_RES;                 //返回数据
  92. }
  93. /********************************************************************
  94.                            IO口初始化函数
  95. *********************************************************************/   
  96. void init_all(void)
  97. {               
  98.     P2M1=0;
  99.         P2M0=0xff;
  100.         P1M1=0x80;
  101.         P1M0=0x0f;
  102.         P3M1|=0x80;
  103.         P3M0&=0x7f;
  104. }
  105. /********************************************************************
  106.                            定时器T1初始化
  107. *********************************************************************/
  108. void timer0init(void)
  109. {
  110.          TMOD=0X20;                  //定义定时器工作方式
  111.          TH1 = 0x00;
  112.      TL1 = 0x1A;
  113.          ET1=1;
  114.          TR1=1;
  115.          EA=1;
  116. }
  117. /********************************************************************
  118.                             主函数
  119. *********************************************************************/
  120. void main()
  121. {         
  122.     init_all();         //初始化IO
  123.         InitADC();   //AD转换初始化
  124.         timer0init();//定时器初始化
  125.         while(1)
  126.         {  
  127.           GetADCResult(4);
  128.        t_to_dis(ADC_RES);
  129.            display();
  130.          if(IN1==0)
  131.          {
  132.            delay(1);
  133.            if(IN1==0)
  134.            {
  135.             TR1=1;
  136.                 OUT1=1;
  137.            }
  138.          }
  139.     }
  140. }
  141. /********************************************************************
  142.                            定时器T1中断函数
  143. *********************************************************************/
  144. void timer1(void)interrupt 3  using 2
  145. {
  146.         tcnt++;
  147.         if(tcnt>=4000)
  148.         {
  149.           tcnt=0;
  150.       miao++;
  151.           if(miao>=ADC_RES)
  152.           {
  153.             OUT1=0;
  154.                 TR1=0;
  155.                 miao=0;
  156.                 tcnt=0;
  157.           }
  158.         }

  159. }
  160. /********************************************************************
  161.                             求值函数
  162. *********************************************************************/
  163. void t_to_dis(uchar num)
  164. {
  165.         numb[0]=0;                        //显示千位
  166.         numb[1]=num/100;                //显示百位
  167.         numb[2]=num%100/10;                    //显示十位
  168.         numb[3]=num%10;             //显示个位
  169. }
  170. /********************************************************************
  171.                             显示函数
  172. *********************************************************************/
  173. void display()                  //显示函数
  174. {
  175.       WEI&=0XF0;
  176.           DUAN=seg7code[numb[0]];
  177.           wei1=1;
  178.           delay(1);

  179.           WEI&=0XF0;  
  180.       DUAN=seg7code[numb[1]];
  181.           wei2=1;
  182.           delay(1);

  183.           WEI&=0XF0;  
  184.              DUAN=seg7code[numb[2]];
  185.           wei3=1;
  186.           delay(1);

  187.           WEI&=0XF0;  
  188.       DUAN=seg7code[numb[3]];
  189.           wei4=1;
  190.           delay(1);
  191.           WEI&=0XF0;
  192. }        
  193. /********************************************************************
  194.                               结束
  195. *********************************************************************/
复制代码
【简要说明】
一、 尺寸:长86cmX宽66cmX高2cm
二、 主要芯片:STC12C5202/4AD
三、 工作电压:直流6~40伏(板上有LM2576稳压芯片);

四、 特点:
1、可编程(通过下载排针可下载程序)
2、具有两路数字量(IN0和IN1)控制/检测信号输入端
3、两路AD模拟量输入(A1和A2)
4、两个按键输入            
5、两路继电器输出指示灯
6、可控制两路交流220V/10A一下设备。(最大控制设备2000W)
7、板子带有防反接二极管
8、标准的11.0592晶振






所有资料51hei提供下载:

带数码管可编程可调节延时模块DXP资料.rar

8 MB, 下载次数: 20, 下载积分: 黑币 -5

例程.rar

1.41 MB, 下载次数: 20, 下载积分: 黑币 -5

三路AD采集温度采集两路输入输出继电器数码管显示模块.docx

4.69 MB, 下载次数: 18, 下载积分: 黑币 -5

使用说明.docx

4.1 MB, 下载次数: 15, 下载积分: 黑币 -5

原理图.doc

46 KB, 下载次数: 17, 下载积分: 黑币 -5

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

使用道具 举报

沙发
ID:244842 发表于 2018-2-24 15:45 | 只看该作者
非常感谢!51有你就精彩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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