版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能家居控制系统C程序日期:2010-03-03 来源:本站编辑作者:admin字体:大中小(投递新闻)include <>bit r_flag;enumeepromtypeM2401,M2402,M2404, M240& M2416, M2432, M2464, M2412& M24256;extern bitRW24XX(unsigned char *DataBuff, unsigned charByteQuantity, unsigned int Address,unsigned char ControlByte, enum eepromtype Eeprom
2、Type);sbit key = P2“0;bit key_flag;sbit dog = P0"7;sbit LED 二 P0“0;sbit TELA = P3飞;sbit TEL = P3V;sbit RING = P3"2;sbit switching 二P0,4;unsigned char mode;bit passwordflag;unsigned char passwordE6; unsigned char passwordtest6;void dims(unsigned int x);void reset(void);void open(void);*INTI
3、中断服务程序/*unsigned char ring_f1uctuation; unsigned char ring_count;bit ring_flag;void service_intO() interrupt 0 using 1if(ring_fluctuation<10)ring_fluctuation+;/* / /tl定时中断/* / unsigned char ring_dlsm;unsigned char ring_time;unsigned int ring_reset_time;unsigned char dlms_time;void timerl (void) i
4、nterrupt 3 using 0TH1二0x3c;TL1二OxbO;dlms_time+;if (ring_fluctuation>5)EX0=O;/INTl.OFF;ring_dlsm+;辻(ringdlsm=20) /等待一秒ring_dlsm=O;EXO=1;/INT1_ON;ringfluctuationO; ring_count+;/ 铃次数辻(ring_flag)/有效振铃if (ring_count=6)ring_count=7;mode=l;else/无效振铃if(ring_count>2)ringresetimeSOO;if (ring_count=2) !
5、(ring_count=l)ring_time+;if (ring_time=200)ring_flag=l;if (ring_count>0)&(ring_count6)LED=INTO;else if (passwordflag)LED=LED;if (ring_count>0)ring_reset_time+;if (ring_reset_time=1100) /55sreset 0;LED二0;dims(100);LED二1;dims(100);LED二0;dims(100);LED二1;dims(100);LED二0;dims(100);LED二1;dims(10
6、0);LED二0;dims(100);LED二1;dims(100);LED二0;dims(100);LED二1;dims(100);LED二0;dims(100);LED二switching;/* / /INTI中断服务程序/* /unsigned char DTMF;void service_intl0 interrupt 2 using 1EXI二0;DTMF二Pl;DTMF=DTMF»4;void main(void)TMOD二0x11;TH1二0x3c;TLl=0xb0;TRI二1;ET1二1;ITO二1;EXO二1;ITl=0;EXI二1;reset 0;EA二 0;r_
7、flag=RW24XX(password, 6, 0x0000, Oxal, M2402);/Rif(P2_0=0)dims (20);if(P2_0=0) ring_flag=l;mode=l; passwordflag=l;ring_count=7;ring_fluctuation=6; EA二 1;while (1)openO ; dog二、dog;switch(mode)case 0:;break;case 1:TEL二1;LED二0;/ dlms_time二0; ring_reset_time=0;whi.le (dlms_time<40)dims (1);TELA二TELA;
8、 ring_reset_time=0;LED二1;/TELA二0;mode+;DTMF二255;EXI二1;LED=switching; break;case 2:/passwordif(DTMF!=255)passwordtest L0=DTMF; 辻(INT1=1) dlmstimeO; while(dlms_time<2);if(INTl=l)DTMF二255; mode+; dlms_time=O;while(dlms_time<10) dims (2); TELATELA;EX1=1;TELA=O; break;case 3:/passwordif(DTMF!=255)p
9、as swordt e s t1=DTMF; 辻(INT1=1) dlms_time=O;while(dlms_time<2);if(INTl=l)DTMF二255; mode+; dlms_time=O;while(dlms_time<10) dims (2); TELA二'TELA;EXI二1; TELA二0;break;case 4:/password辻(DTMF!=255)passwordtest2=DTMF;辻(INT1=1) dlmstimeO; while(dlms_time<2);if(INTl=l)DTMF二255;mode+;dlms_time二0
10、;while(dlms_time<10) dims ; TELA=TELA; EXI二1;TELA二0;break;case 5:/passwordif(DTMF!=255)passwordtest3=DTMF;if (INT1=1)dlmstimeO; while(dlms_t ime<2);if(INTl=l)DTMF二255;mode+; dlms_time=0;while(dlms_time<10) dims ; TELATELA;EXI二1;TELA=O;break;case 6:/passwordif(DTMF!=255)passwordtest4=DTMF;if
11、(INTl=l)dlmstimeO;while(dlms_time<2);if(INTl=l)DTMF二255;mode+; dlms_time=O;while(dlms_time<10) dims ; TELATELA;EX1=1;TELA二0; break;case 7:/passwordif (DTMF!=255)passwordtest5二DTMF;if (INT1=1) dlms_time=O;while(dlms_time>2);if(INTl=l)DTMF二255;mode+;/EX1=1;break;case 8:if(pas swordf1ag=0)if(p
12、asswordtest0passwordEO)&(passwordtestl=passwordLl)&(passwordtest 2=password2)&(pas swordtest3二二password3_)&(passwordtest4password4)& (passwordtest 5 password 5)mode+;dlmstimeO;else reset 0;elsedlmsimeO;while (dlms_time<10)dims(2);TELA="TELA;TELA二0;password EO=passwordtest
13、0;passwordEl=passwordtest1;password2=passwordtest2;password3=passwordtest3;password4=passwordtest4;passwordE5=passwordtest5;EA=0;r_flag=RW24XX(password, 6, 0x0000,OxaO,M2402);/WEA=1;resetO ;break;case 9:wh订e(dlms_time<20)dlms(l);TELA="TELA;while (dlms_t ime<25)while (dlms_time<45)dims
14、(1);TELA二TELA;TELA二0;EXI二1;mode+;break;case 10:switch(DTMF)case 1:if (ring_reset_time<1050)dlms_time=0;switching=0;LED=0;while(dlms_time<10) while(dlms_time<20) dims ; TELA="TELA;while(dlms_time<30)while(dlms_time<40) dims ; TELATELA;TELA=0;DTMF二255;EX1=1;break;case 2:if (ring_re
15、set_time<1050) dlms_tinie二 0; switchingFl;LED=1;while(dlms_time<10)while(dlms_time<20)dims ;TELA二'TELA;while(dlms_time<30)while(dlms_time<40) dims ;TELA二'TELA;TELA=0;DTMF二255;EX1=1;break;case 12:reset 0;break;break;default:;void reset(void)TEL二0;TELA二0;ring_fluctuation=0;ring_
16、count=0; ring_flag=O; ring_dlsm=O; ringtimeO; dlms_time=O; ringresetimeO;key_flag=0; mode=0;EXI二1;DTMF=255;LED二switching; passwordflag=0; passwordtest.0 =255; passwordtest.11=255; passwordtest2=255; passwordtest3=255; passwordtest4=255; passwordtest5=255;void open(void)if (key=0) & (key_flag=0)
17、& (passwordflag=0) dlms_time=0;while(dlms_time<2);if(key=0)resetO ;key_flag=l;switching二 switching;LED二switching; dlms_time二0;if (key=l) & (dlms_time>10)keyflagO;void dims(unsigned int x)unsigned int i;whiJe (x>0)dog= dog;for (i=0;i<163;i+) ;/24cxx/CT APT/ / 1 All/enumeepromtypeM
18、2401,M2402,M2404, M240& M2416,M2432, M2464, M24128, M24256;/extern bitRW24XX(unsigned char*DataBuff, unsignedcharByteQuantity, unsigned int Address,/unsigned char ControlByte, enum eepromtype EepromType);flag=RW24XX(&x, 1, 0x0000, 0xa0, M24256);/W 24C256 flag=RW24XX(&x, 1, 0x0000, 0xal,M
19、24256);/R 24C256#include <>/pragma ot (6, SIZE)include <>#define ERRORCOUNT 10sbitSD A 二 P2" 7; / 对应硬件sbitSCL 二 P2"6;/对应硬件eepromtypeenum(M2401,M2402,M2404, M240& M2416, M2432, M2464, M24128, M24256;enum eepromtype EepromType;* */DataBuff为读写数据输入/输岀缓冲区的首址/ByteQuantity为要读写数据的字
20、节数量/Address为EEPROM的片内地址/ControlByte 为 EEPROM 的控制字节,具体形式为(1) (0) (1) (0) (A2) (Al) (AO) (R/W), 其中R/W=l,/表示读操作,R W二0为写操作,A2, Al, A0为EEPROM的页选或片选地址;/EepromType为枚举变疑,需为M2401至M24256中的一种,分别对应24C01至24C256; 函数返回值为一个位变疑,若返回1表示此次操作失效,0表示操作成功;/ERRORCOUNT为允许最大次数,若出现ERRORCOUNT次操作失效后,则函数中止操作, 并返回1/*/extern bitRW2
21、4XX(unsignedchar *DataBuff, unsigned charByteQuantity, unsigned int Address,unsigned char ControlByte, enum eepromtype EepromType)void Delajr(unsigned char DelayCount);void IlCStart (void);void IlCStop(void);bit IICRecAck(void);void IICNoAck(void);void IICAck(void);unsigned char IICReceiveByte(void)
22、;void IICSendByte (unsigned char sendbyte);unsigned char data j,i二ERRORCOUNT;biterrorflag=l;while(i)IlCStart 0;IICSendByte(ControlByte&Oxfe);if(IICRecAckO)continue;if (EepromType>M2416)IICSendByte(unsigned char) (Address»8); 辻(IICRecAckO)continue;IICSendByte(unsigned char)Address);if (II
23、CRecAckO)continue;if (!(ControlByte&OxOl)j=ByteQuantity; errorflag=0; while(j)IICSendByte(*DataBuff+); if(!IICRecAck() continue;errorflagl;break;if (errorflag=l)continue;break;elseIlCStart 0;IICSendByte(ControlByte);if (IICRecAckO)continue;while(-ByteQuantity)*Dat aBuff+=11CRe c e i v eByt e();I
24、ICAckO;*DataBuff=IICReceiveByte 0;IICNoAckO;errorflag=0;break;IlCStopO;if(!(ControlByte&OxOl)Delay(255);Delay(255);Delay(255);Delay(255);/*clr errorflag/read last byte datareturn(errorflag); 0QOU -()ldou -Eos Fas -OHns(PIOA)>pwfoII Mq-OHWS ()laou ()laou OIQOU EaS ()ldou ()laou ()laou -ms -OHVas -OHSS(p-HOA)dopsoII p-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 点的构成 教学课件
- 《十万个为什么》米伊林版阅读练习题1含答案
- DHJB 356-2019 水污染源在线监测系统(CODCr、NH3-N等)数据有效性判别技术规范
- 尔雅2016-07-10-创新思维训练考试答案
- 1.1物质的分类及转化-高一化学人教版(2019)必修一课时优化训练
- 河北省邯郸市2023至2024学年高一下学期期末考试化学试题附参考答案(解析)
- 上海市交大二附中2025年中考适应性测试试卷(数学试题文)试题含解析
- 陕西省渭南市合阳县2025年初三中考3月模拟试卷数学试题含解析
- 浅谈色谱在线监测装置运行技术
- 慢性肾病医院项目节能评估报告模板
- 2024年新北师大版七年级上册数学课件 2.2 第5课时 有理数的加减混合运算的运用
- Unit+1+Laugh+out+loud!+Developing+ideas 高中英语外研版(2019)选择性必修第一册
- 2024年全国职业院校技能大赛高职组(检验检疫技术赛项)考试题库(含答案)
- 2024-2030年中国有机过氧化物市场运营态势及投资价值评估分析研究报告
- 电动自行车以旧换新行动方案
- 2024年危险品运输从业资格考试题库
- 福建福州市仓山区文化体育和旅游局招考聘用(高频重点复习提升训练)共500题附带答案详解
- 2024年护士个人工作计划
- 《第3课 数据的价值》参考课件5
- 科室手卫生分析
- 2024年江苏徐州市教育局直属事业单位选调7人历年(高频重点复习提升训练)共500题附带答案详解
评论
0/150
提交评论