版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数显可编程延时模块可模拟量输入产品使用手册功能描述:此工业级板的作用是,模块供电后,数码管显示设定数值,板子有两个独立按键,客户可根据需求自定义编程其功能。可实现的功能:定时输出控制、计数器技术控制、05V模拟量输入控制、按键控制数码管显示、开关量输入控制。【简要说明】1、 板子尺寸:长72mmX宽42mmX高18mm二、主要器件:STC12C2052AD单片机、数码管、继电器三、工作电压:有6V至24V四、板子功耗:小于150mA五、特点: 1、具有继电器输出信号指示功能。 &
2、#160; 2、供电即可工作,具有电源指示灯。 3、多种工作模式。 4、如果您会单片机,可以根据自己需要,任意编程,我们可提供参考程序和相关资料。 5、两个按键任意调节和编程功能。
3、0; 6、继电器吸合时间10ms 释放时间15ms。 7、可以和72MM卡槽板配合安装在DIN导轨上。 8、继电器触点干接点输出,可以控制交流或者直流250V以内任何负载。 9、端子采用螺旋压接端子 10、工作温度-40度至 +70度 11、工作湿度 10
4、% 80%RH 12、四周有4个固定安装孔 13、具有电磁抗干扰能力 14、板子稳定工作可靠 【标示说明】【接线说明】【原理图】【元件清单】【PCB图】【应用举例】【测试程序】#include<STC12C2052AD.h> /库文件#include<intrins.h>#define uchar unsigned char /宏定义字符型变量#define uint unsigned int/宏定义整型变量/* IO口初始化*/sbit P10=P10;/数码管段sbit P11=P11;/数码管段
5、sbit P12=P12;/数码管段sbit P13=P13;/数码管段sbit P14=P14;/数码管段sbit P15=P15;/数码管段sbit P16=P16;/数码管段sbit P32=P32;/数码管位sbit P33=P33;/数码管位sbit P35=P35;/数码管位sbit AIN1=P17;/信号输入sbit key1=P30;/按键输入sbit key2=P31;/按键输入sbit OUT=P37; /继电器输出code uchar seg7code10=0x84,0xf6,0x8a,0xa2,0xf0,0xa1,0x81,0xb6,0x80,0xa0; /显示段码
6、数码管字跟/* 定义 ISP/IAPEEPROM 命令*/sfr IAP_DATA = 0xE2; sfr IAP_ADDRH = 0xE3;sfr IAP_ADDRL = 0xE4;sfr IAP_CMD = 0xE5;sfr IAP_TRIG = 0xE6;sfr IAP_CONTR = 0xE7;#define CMD_IDLE 0jm#define CMD_READ 1#define CMD_PROGRAM 2#define CMD_ERASE 3#define ENABLE_IAP 0x83/SYSCLK<12MH#define IAP_ADDRESS 0x0000/存储地址v
7、oid IapIdle();/禁用 ISP/IAPEEPROM functionmake 单片机 在 一 安全 状态uchar IapReadByte(uint addr);/读数据void IapProgramByte(uint addr, uchar dat);/写数据void IapEraseSector(uint addr);/擦除数据static uchar presstime=0;/用于延时uint tcnt1=0;/用于刷新数码管uint bainum1,shinum1,genum1;/数码管上显示uint bainum11=0,shinum11=0,genum11=0;/用于传
8、到数码管上显示uint kf0=1,if0=0;/按键用的标志位uint kt0=0;/按键用的标志位uint keynum=0;/数码管的位uint datas=0;uchar date1,date2;bit flag_eeprom1=1;/掉电存储的标志位uint inum1=0;/触发端子用的计数uchar inum11=0,inum12=0;/掉电存储uint date;extern void p31s();/将p3口的235置为1void keycan();void keyflag();/按键结束调用void displaynum();/将数字传到数码管上显示void saveeep
9、ro();void savedate();/* 定时器初始化*/void timer0_1init(void)/定时配置TMOD=0x11;/将定时器0,1都设置为模式1TL0 = 0xCD;/设置定时器0时间为2msTH0 = 0xF8;/设置定时器0的初始值TR0=1;/开启定时器0TR1=1;/开启定时器1EA=1;/开总中断ET0=1;/开定时器0的中断/* 延时函数*/void delay(uchar t) uchar i,j; for(i=0;i<t;i+) for(j=13;j>0;j-); ; /* 主函数*/void main()uchar k;P1M0=0X80
10、;/强推挽输出P1M1=0X7F;/强推挽输出timer0_1init();/定时器配置inum11= IapReadByte(0x01);/读取存储的值inum12= IapReadByte(0x02);date1= IapReadByte(0x03);/读取存储的值date2= IapReadByte(0x04);date=date1*100+date2;inum1=inum11*100+inum12; bainum11=inum1/100; shinum11=inum1/10%10; genum11=inum1%10; while(1)keycan();k=100;if(AIN1=0)d
11、elay(k);if(AIN1=0)date+;while(!AIN1);delay(k);if(date>=999)date=999; if(key2=0)delay(k);if(key2=0)date=0; /* 按键函数*/void keycan()/按键if(keynum=0)/当按键值等于0的时候调用显示displaynum(); if(key1=0)/当按键1按下date=0;/计数值清零if(kf0)/当标志位kf0=1的时候进行if(presstime>50)/当时间值大于一百的时候kf0=0;/标志位kf0=0kt0=1;/标志位kt0=0if0=1;presst
12、ime=0;/时间清零,重新进行keynum+;/数码管的位 if(keynum=4)/当位到7则置位0 keynum=0;if0=0; else/当按键松开keyflag();displaynum();/按键1结束 if(key2=0)if(kf0)if(presstime>50)kf0=0;kt0=1;presstime=0;flag_eeprom1=1;/掉电存储的标志位改为1,进行存值操作switch(keynum)case 0:if(if0=1)if0=0;elseif0=1;break;case 1:bainum11+;/数码管一加加if(bainum11>9)/当数码
13、管一加加到9时置为1bainum11=0;break;case 2:shinum11+;if(shinum11>9)shinum11=0;break;case 3:genum11+;if(genum11>9)genum11=0;break;default:break;elsekeyflag();displaynum();if(flag_eeprom1=1)/加掉电存储,必需加到这,不然有一些小问题 flag_eeprom1=0; saveeepro();/掉电存储/松开按键进行显示/* 将数字传到数码管上显示*/void displaynum()/将数字传到数码管上显示if (if
14、0=0)/当if0=0时num1三个数码管进行显示/AIN1=1;if(date>=inum1)OUT=0; else OUT=1;genum1=date%10;/个位shinum1=date/10%10;/十位bainum1=date/100;/百elsebainum1=bainum11;shinum1=shinum11;genum1=genum11;inum1=bainum11*100+shinum11*10+genum11;/将num1三个数码管的值付给inum void saveeepro()/掉电存储 inum1=bainum11*100+shinum11*10+genum11
15、;/将num1三个数码管的值付给inum inum11=inum1/100;/把int型的值拆分到char型 inum12=inum1%100; IapEraseSector(0); /擦除扇区 IapProgramByte(0x01,inum11);/写入数据 IapProgramByte(0x02,inum12);/写入数据void savedate() date1=date/100;/把int型的值拆分到char型 date2=date%100; / IapEraseSector(0); /擦除扇区 IapProgramByte(0x03,date1);/写入数据 IapProgramB
16、yte(0x04,date2);/写入数据/* 定时器*/void timer0(void)interrupt 1 /定时器0 /500等于1秒TL0 = 0xCD;/重新设置定时器0时间为2msTH0 = 0xF8;/重新设置定时器0的初始值tcnt1+;/用于刷新数码管presstime+;switch(tcnt1)/数码管部分 case 1: p31s(); P1=seg7codebainum1;if(keynum=1 | keynum=0)P32=0;break; case 2: p31s(); P1=seg7codeshinum1;if(keynum=2 | keynum=0)P33
17、=0;break; case 3: p31s(); P1=seg7codegenum1; if(keynum=3 | keynum=0)P35=0;break; default: tcnt1=0; p31s(); break; /定时器0结束void p31s()/将p3口的235置为1P32=1;P33=1;P35=1;void keyflag()/按键结束调用,按键的建议使用,这样可以减小code,但是触发的不建议 if(kt0)/当标志位kt0=1的时候进行 if(presstime>50)/当时间值大于一百的时候kf0=1;/标志位kf0=1kt0=0;/标志位kt0=0 pre
18、sstime=0;/时间清零,重新进行 /* 读写EEPROM 命令*/void IapIdle()/禁用 ISP/IAPEEPROM functionmake 单片机 在 一 安全 状态 IAP_CONTR = 0; /IAP_CMD = 0; /IAP_TRIG = 0; /IAP_ADDRH = 0x80; /IAP_ADDRL = 0; /uchar IapReadByte(uint addr)/读数据 uchar dat; IAP_CONTR = ENABLE_IAP; IAP_CMD = CMD_READ; IAP_ADDRL = addr; IAP_ADDRH = addr >> 8; IAP_TRIG = 0x46; IAP_TRIG = 0xb9; _nop_(); dat = IAP_DATA; IapIdle(); return dat;void IapProgramByte(uint addr, uchar dat)/写数据 IAP_CONTR = ENABLE_IAP; IAP_CMD = CMD_PROGRAM; IAP_ADDRL = addr; IA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025护理人员雇佣合同
- 2025企业员工劳动合同及注意事项(合同范本)
- 护理安全与风险防范
- 静态视野检查方法
- 急性损伤的护理
- 泌尿外科腹腔镜胆囊切除术围手术期护理教程
- 溃疡性口炎常见症状及护理建议
- 2025版帕金森病常见症状及护理培训课程
- 产科产后抑郁症护理规范
- 2025高中语文第2单元6.2为了忘却的记念试题含解析部编版选择性必修中
- 2025政府采购评审专家考试题库测试题(附完整答案)
- 2025年农险初级核保考试题库
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 食品营养学矿物质
- 初中英语试卷考试双向细目表
- 绿色工厂自评价报告及第三方评价报告
- 《材料分析测试技术》全套教学课件
- 2021一级消防工程师继续教育考试石油化工类答案
- 安全学原理第2版-ppt课件(完整版)
- 心理普查回访记录表(辅导员用)
- 激光角膜屈光手术临床诊疗专家共识(完整版)
评论
0/150
提交评论