设为首页 收藏本站
开启辅助访问 切换到宽版

  找回密码
  立即注册

QQ登录

只需一步,快速开始

快捷导航
  • 论坛
  • 问答区
  • 单片机教程
  • 单片机DIY
  • 电子DIY
  • 帮助

热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计

搜索
» 论坛 嵌入式/单片机论坛 51单片机 单片机无线遥控继电器电路原理图PCB与源程序 带数码管显 ...
返回列表 发新帖
查看: 6196|回复: 1
打印 上一主题 下一主题
收起左侧

单片机无线遥控继电器电路原理图PCB与源程序 带数码管显示

[复制链接]
跳转到指定楼层
楼主
ID:280979 发表于 2018-2-24 13:40 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
Altium Designer画的STC12C2052AD单片机主控的无线单路可编程遥控带数码管延时模块电路原理图和PCB图如下:(51hei附件中可下载工程文件)


【简要说明】
通过遥控控制继电器定时吸合或者定时断开。(总之遥控与编程结合控制的开发板)

资料正在更新中.
一、板子尺寸:长54mmX宽72mmX18mm
二、主要器件:单片机、数码管、继电器
三、工作电压:宽电压供电(直流6V至24V均可以)
四、板子功耗:小于300mA


单片机源程序如下:
  1. /********************************************************************
  2.                             汇诚科技
  3. 实现功能:测试程序
  4. 使用芯片:STC12C2052AD
  5. 晶振:11.0592MHZ
  6. 波特率:9600
  7. 编译环境:Keil
  8. 作者:zhangxinchunleo
  9. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  10. /********************************************************************
  11. ********************************************************************/
  12. /********************************************************************
  13. 程序说明:
  14. 1、P1.7口输入模拟量数据。
  15. 2、将数据与设定程序做比较控制继电器吸合。

  16. 注意:通道口必须有模拟量输入数据才有效。

  17. ********************************************************************/

  18. #include<STC12C2052AD.h>                 //库文件
  19. #include<intrins.h>
  20. #define uchar unsigned char //宏定义字符型变量
  21. #define uint  unsigned int        //宏定义整型变量

  22. /*声明 SFR 相关 与 的 IAP*/
  23. sfr IAP_DATA = 0xE2;
  24. sfr IAP_ADDRH = 0xE3;
  25. sfr IAP_ADDRL = 0xE4;
  26. sfr IAP_CMD = 0xE5;
  27. sfr IAP_TRIG = 0xE6;
  28. sfr IAP_CONTR = 0xE7;


  29. #define ADC_POWER   0x80            //ADC 电源控制位
  30. #define ADC_FLAG    0x10            //ADC 转换结束标志位
  31. #define ADC_START   0x08            //ADC 开始转换控制位
  32. #define ADC_SPEEDLL 0x00            //210 个时钟周期转换一次
  33. #define ADC_SPEEDL  0x20            //420 个时钟周期转换一次
  34. #define ADC_SPEEDH  0x40            //630 个时钟周期转换一次
  35. #define ADC_SPEEDHH 0x60            //840 个时钟周期转换一次

  36. /********************************************************************
  37.                              IO口定义
  38. ********************************************************************/

  39. bit  write=0;
  40. uchar playdate;
  41. uint XS;
  42. sbit P10=P1^0;//数码管段
  43. sbit P11=P1^1;//数码管段
  44. sbit P12=P1^2;//数码管段
  45. sbit P13=P1^3;//数码管段
  46. sbit P14=P1^4;//数码管段
  47. sbit P15=P1^5;//数码管段
  48. sbit P16=P1^6;//数码管段
  49. sbit P17=P1^7;//AD信号输入

  50. sbit P30=P3^0;//按键输入
  51. sbit P31=P3^1;//按键输入
  52. sbit P32=P3^2;//数码管位
  53. sbit P33=P3^3;//数码管位
  54. sbit P34=P3^4;//数码管位
  55. sbit P35=P3^5;//数码管位
  56. sbit P37=P3^7; //继电器输出
  57. /********************************************************************
  58.                             定义 ISP/IAP/EEPROM 命令
  59. *********************************************************************/
  60. #define CMD_IDLE 0
  61. #define CMD_READ 1
  62. #define CMD_PROGRAM 2
  63. #define CMD_ERASE 3

  64. #define ENABLE_IAP 0x83//SYSCLK<12MH
  65. #define IAP_ADDRESS 0x0000        //存储地址


  66. /********************************************************************
  67. 禁用 ISP/IAP/EEPROM functionmake 单片机 在 一 安全 状态
  68. *********************************************************************/
  69. void IapIdle()
  70. {
  71.     IAP_CONTR = 0;           //
  72.         IAP_CMD = 0;           //
  73.         IAP_TRIG = 0;           //
  74.         IAP_ADDRH = 0x80;  //
  75.         IAP_ADDRL = 0;           //
  76. }

  77. /********************************************************************
  78.                              读数据
  79. *********************************************************************/

  80. uchar IapReadByte(uint addr)
  81. {
  82.    uchar dat;
  83.    IAP_CONTR = ENABLE_IAP;
  84.    IAP_CMD = CMD_READ;
  85.    IAP_ADDRL = addr;
  86.    IAP_ADDRH = addr >> 8;
  87.    IAP_TRIG = 0x46;
  88.    IAP_TRIG = 0xb9;
  89.    _nop_();
  90.    dat = IAP_DATA;
  91.    IapIdle();
  92.    return dat;
  93. }
  94. /********************************************************************
  95.                                写数据
  96. *********************************************************************/

  97. void IapProgramByte(uint addr, uchar dat)
  98. {
  99.    IAP_CONTR = ENABLE_IAP;
  100.    IAP_CMD = CMD_PROGRAM;
  101.    IAP_ADDRL = addr;
  102.    IAP_ADDRH = addr >> 8;
  103.    IAP_DATA = dat;
  104.    IAP_TRIG = 0x46;
  105.    IAP_TRIG = 0xb9;
  106.    _nop_();
  107.    IapIdle();
  108. }
  109. /********************************************************************
  110.                                擦除数据
  111. *********************************************************************/

  112. void IapEraseSector(uint addr)
  113. {
  114.    IAP_CONTR = ENABLE_IAP;
  115.    IAP_CMD = CMD_ERASE;
  116.    IAP_ADDRL = addr;
  117.    IAP_ADDRH = addr >> 8;
  118.    IAP_TRIG = 0x46;
  119.    IAP_TRIG = 0xb9;
  120.    _nop_();
  121.    IapIdle();
  122. }

  123. /********************************************************************
  124.                             初始定义
  125. *********************************************************************/
  126. code uchar seg7code[10]={ 0x84,0xf6,0x8a,0xa2,0xf0,0xa1,0x81,0xb6,0x80,0xa0}; //显示段码 数码管字跟

  127. /********************************************************************
  128.                             延时函数
  129. *********************************************************************/
  130. void delay1(uchar t)
  131. {
  132.   uchar i,j;
  133.    for(i=0;i<t;i++)
  134.    {
  135.             for(j=13;j>0;j--);
  136.          { ;
  137.          }
  138.    }
  139. }
  140. /********************************************************************
  141.                             延时函数
  142. *********************************************************************/
  143. void delay()//延时程序 0.1秒
  144. {
  145. uchar m,n,s;
  146. for(m=10;m>0;m--)
  147. for(n=20;n>0;n--)
  148. for(s=248;s>0;s--);
  149. }
  150. /********************************************************************
  151.                             显示函数
  152. *********************************************************************/        
  153. void Led(uint date) //显示函数
  154. {
  155. /*****************数据转换*****************************/
  156. uint z,x,c,v;
  157.   z=date/1000;                         //求千位
  158.   x=date%1000/100;                 //求百位
  159.   c=date%100/10;                 //求十位
  160.   v=date%10;                         //求个位

  161.       P32=0;P33=0;P34=0;P35=0;
  162.           P1=seg7code[x];
  163.           P32=1;P33=0;P34=0;P35=0;
  164.           delay1(80);
  165.           P32=0;P33=0;P34=0;P35=0;  
  166.       P1=seg7code[c];
  167.           P32=0;P33=1;P34=0;P35=0;
  168.           delay1(80);
  169.           P32=0;P33=0;P34=0;P35=0;  
  170.              P1=seg7code[v];
  171.           P32=0;P33=0;P34=0;P35=1;
  172.           delay1(80);
  173.           P32=0;P33=0;P34=0;P35=0;  
  174.       //P1=seg7code[v];
  175.           //P32=0;P33=0;P34=1;P35=0;
  176.           //delay1(80);
  177.           //P32=0;P33=0;P34=0;P35=0;
  178. }

  179. /********************************************************************
  180.                功能:串口初始化,波特率9600,方式1
  181. *********************************************************************/
  182. /*
  183. void Init_Com(void)
  184. {
  185. TMOD = 0x20;
  186. PCON = 0x00;
  187. SCON = 0x50;
  188. TH1 = 0xFd;
  189. TL1 = 0xFd;
  190. TR1 = 1;
  191. }
  192.                   
  193. /********************************************************************
  194.                          AD转换初始化程序
  195. *********************************************************************/

  196. void InitADC()
  197. {
  198.     P1 = P1M0 = P1M1 = 0xff;        //设置P1口为开漏模式,使用AD功能
  199.     ADC_DATA = 0;                   //AD数据寄存器清空
  200.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//打开AD电源,转换周期210
  201.     delay();                       //延时
  202. }

  203. /********************************************************************
  204.                          AD转换控制程序
  205. *********************************************************************/


  206. uchar GetADCResult(uchar px)          //转换输出的数据 (PX为通道口)
  207. {
  208.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//开始转换
  209.     _nop_();                        //延时一个机器周期
  210.     _nop_();                                                //延时一个机器周期
  211.     _nop_();                                                //延时一个机器周期
  212.     _nop_();                                                //延时一个机器周期
  213.     while (!(ADC_CONTR & ADC_FLAG));//等待转换结束
  214.     ADC_CONTR &= ~ADC_FLAG;         //关闭AD转换
  215.     return ADC_DATA;                //返回数据
  216. }
  217. /********************************************************************
  218.                          串口数据发送
  219. *********************************************************************/
  220. /*void SendData(uchar dat)
  221. {
  222.         SBUF = dat;                                                //发送数据
  223.     while (!TI);                    //等待数据
  224.     TI = 0;                         //清零标志位
  225. }
  226. /********************************************************************
  227.                             编辑数据函数
  228. *********************************************************************/
  229. /*void show(uchar ch)
  230. {
  231.     SendData(ch);                   //发送显示通道
  232.     SendData(GetADCResult(ch));     //发送对应通道的数据
  233. }
  234. /********************************************************************
  235.                                按键函数
  236. *********************************************************************/
  237. void key()
  238. {
  239. if((P30==0)&&(P31==0))
  240. {
  241. while(1)
  242. {
  243. Led(playdate);
  244. if((P30==0)&&(playdate<255)){delay1(80);playdate++;delay1(80);write=1;while(!P30);delay1(80);delay1(80);}
  245. if((P31==0)&&(playdate>0)){delay1(80);playdate--;delay1(80);write=1;while(!P31);delay1(80);delay1(80);}
  246. if(playdate<=0){playdate=0;delay1(80);}
  247. if(playdate>=255){playdate=255;delay1(80);}
  248. if(write==1)
  249.   {
  250.    write=0;
  251.    IapEraseSector(1);  //擦除扇区
  252.    IapProgramByte(1,playdate);//写入数据
  253.   }        

  254. }
  255. }
  256. }
  257. /********************************************************************
  258.                                主函数
  259. *********************************************************************/
  260. void main()
  261. ……………………

  262. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
GYJ-0069_无线单路可编程遥控带数码管延时模块DXP.rar (478.74 KB, 下载次数: 56)
GYJ-0069_无线单路可编程遥控带数码管延时模块原理图及PCB图.pdf (379.47 KB, 下载次数: 45)
GYJ-0069_模拟量输入数字量显示可编程模块产品使用手册.doc (2.22 MB, 下载次数: 38)
测试程序(成功).rar (39.09 KB, 下载次数: 44)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏9 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:334781 发表于 2021-12-7 17:17 | 只看该作者
看了电路图,想问一下,那个RV1压敏电阻是不是应该并接到继电器的常开点呢
回复

使用道具 举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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

玻璃钢生产厂家赤峰公园玻璃钢雕塑定制乳山玻璃钢动物雕塑玻璃钢子母座椅雕塑定制烟台玻璃钢马雕塑东台玻璃钢工艺品雕塑抚州景区玻璃钢雕塑哪家便宜遵义商场美陈海南玻璃钢雕塑的特点成都定制玻璃钢雕塑价位广东秋季商场美陈制作世界杯商场美陈方案玻璃钢果篮景观雕塑厂玻璃钢雕塑倒了会碎吗池州人物玻璃钢雕塑清远玻璃钢卡通雕塑图片雨花商场春季美陈商场美陈广告活动策划培训课程送儿当红军玻璃钢群雕塑多少钱建湖玻璃钢雕塑雕刻公司云浮品质玻璃钢卡通雕塑佳木斯玻璃钢雕塑设计四川商场美陈玻璃钢动物雕塑厂商湖南火烈鸟玻璃钢雕塑定做玻璃钢雕塑定制设计公司四川仿铜玻璃钢雕塑市场西宁玻璃钢雕塑多少钱石嘴山玻璃钢雕塑厂家河北节庆商场美陈采购贵州小区玻璃钢雕塑施工安装香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化