久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6522|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

OpenWRT路由器智能家居控制系統(tǒng)設(shè)計(jì) 單片機(jī)學(xué)習(xí)型紅外遙控

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
硬件方面,本系統(tǒng)以HG255D路由器為載體,通過基于路由器的嵌入式軟件開發(fā),實(shí)現(xiàn)了一種超低成本的智能家居聯(lián)網(wǎng)控制解決方案。本系統(tǒng)由控制板、學(xué)習(xí)型遙控板和刷入OpenWRT系統(tǒng)的路由器組成,其中控制板采用了STC12C5A60S2單片機(jī)作為控制核心,學(xué)習(xí)型紅外遙控板采用了兩個(gè)STC15F104E單片機(jī)為紅外信號學(xué)習(xí)和發(fā)射的主控芯片。通過1838T紅外接收頭學(xué)習(xí)家用遙控器紅外波形,通過兩路紅外發(fā)射管發(fā)射學(xué)習(xí)來的紅外遙控信號。
軟件方面,通過向OpenWrt系統(tǒng)移植PL2303-USB轉(zhuǎn)串口芯片驅(qū)動實(shí)現(xiàn)了單片機(jī)向路由器的實(shí)時(shí)數(shù)據(jù)傳輸,通過Linux系統(tǒng)下交叉編譯編寫了OpenWrt系統(tǒng)下的串口數(shù)據(jù)處理程序,通過向OpenWrt系統(tǒng)移植boa(開源的嵌入式WEB服務(wù)器,支持CGI)實(shí)現(xiàn)了基于路由器的WEB服務(wù)器,然后以直觀的控制網(wǎng)頁呈現(xiàn)給用戶。控制信號通過CGI程序發(fā)送給控制板,由控制板上的單片機(jī)直接控制8繼電器開關(guān)的通斷或者學(xué)習(xí)型紅外遙控板發(fā)射紅外遙控信號或者學(xué)習(xí)信號。
1.1簡要介紹
1.1.1項(xiàng)目背景
物聯(lián)網(wǎng)興起,熱潮澎湃,但對于國內(nèi)的大多數(shù)人來說,對物聯(lián)網(wǎng)的理解還是停留在一紙空文的狀態(tài)。在物聯(lián)網(wǎng)眾多的應(yīng)用領(lǐng)域中,智能家居成為物聯(lián)網(wǎng)最接近百姓的產(chǎn)物,因?yàn)樗呛腿藗兊钠鹁由钕⑾⑾嚓P(guān)的,能夠?yàn)樗麄儙肀憬菔孢m的生活體驗(yàn)。但是市場上的智能家居類產(chǎn)品價(jià)格太過高昂,很難普及,而且系統(tǒng)結(jié)構(gòu)復(fù)雜,可維護(hù)型差。
1.1.2設(shè)計(jì)目的
用一套低廉的硬件、以及盡可能低的成本實(shí)現(xiàn)智能家居控制系統(tǒng),同時(shí)具備可裁剪、可擴(kuò)展的特性。所以,本系統(tǒng)的設(shè)計(jì)目的為實(shí)現(xiàn)一個(gè)超低成本智能家居聯(lián)網(wǎng)控制的基本框架。
1.1.3 OpenWRT系統(tǒng)簡介
OpenWrt是適合于嵌入式設(shè)備的一個(gè)Linux發(fā)行版。相對原廠固件而言,OpenWrt不是一個(gè)單一、靜態(tài)的固件,而是提供了一個(gè)可添加軟件包的可寫的文件系統(tǒng)。這使用戶可以自由的選擇應(yīng)用程序和配置,而不必受設(shè)備提供商的限制,并且可以使用一些適合某方面應(yīng)用的軟件包來定制你的設(shè)備。對于開發(fā)者來說,OpenWrt是一個(gè)框架,開發(fā)者不必麻煩的構(gòu)建整個(gè)固件就能得到想要的應(yīng)用程序;對于用戶來說,這意味著完全定制的能力,與以往不同的方式使用設(shè)備。
OpenWRT主頁:http://openwrt.org  
1.1.4 HG255D路由器簡介
HG255D是華為出品的由電信定制的光纖寬帶用的路由器。在電信用戶中是相當(dāng)普及的一塊路由器,因其16MB的Flash和384MHz的mips處理器,成為了OpenWRT系統(tǒng)理想的載體。而且?guī)в蠻SB接口,擴(kuò)展性得以極大地提高。
HG255D路由器硬件規(guī)格:
Architecture: MIPS
Vendor: ChinaTelecom/HuaWei
Bootloader: U-boot-1.1.4
System-On-Chip: Ralink RT3052
CPU Speed: 384 Mhz
Flash-Chip: S29GL128P
Flash size: 16MiB
RAM: 32 MiB
Wireless: Ralinl APSoC RT2860 b/g/n 2T2R (integrated)
Ethernet: Integrated 6 Port Fast Ethernet Switch
USB: Yes (1 Port)
Serial: Yes
JTAG: Yes
1.2 設(shè)計(jì)方案

1.2.1控制板部分
分為控制板和學(xué)習(xí)型紅外遙控板兩部分,控制板使用STC12C5A60S2為主控芯片,直接控制著8路繼電器開關(guān),每個(gè)繼電器都配有獨(dú)立接線端子和通斷指示燈,指示燈亮表示接通狀態(tài)。學(xué)習(xí)型紅外遙控板采用了兩個(gè)STC15F104E單片機(jī)為紅外信號學(xué)習(xí)和發(fā)射的主控芯片,通過1838T紅外接收頭學(xué)習(xí)家用遙控器紅外波形,通過兩路紅外發(fā)射管發(fā)射學(xué)習(xí)來的紅外遙控信號。

1.2.2路由器部分
通過向OpenWrt系統(tǒng)移植PL2303-USB轉(zhuǎn)串口芯片驅(qū)動實(shí)現(xiàn)了單片機(jī)向路由器的實(shí)時(shí)數(shù)據(jù)傳輸,通過Linux系統(tǒng)下交叉編譯編寫了OpenWrt系統(tǒng)下的串口數(shù)據(jù)處理程序,通過向OpenWrt系統(tǒng)移植boa(開源的嵌入式WEB服務(wù)器,支持CGI)實(shí)現(xiàn)了基于路由器的WEB服務(wù)器,然后以直觀的控制網(wǎng)頁呈現(xiàn)給用戶。控制信號通過串口處理程序發(fā)送給控制板,由控制板上的單片機(jī)直接控制8繼電器開關(guān)的通斷或者學(xué)習(xí)型紅外遙控板發(fā)射紅外遙控信號或者學(xué)習(xí)信號。
1.2.3 WEB控制界面

2硬件電路介紹
硬件電路分為控制板和學(xué)習(xí)型紅外遙控板兩部分。
控制板:STC12C5A60S2基本電路、繼電器驅(qū)動電路、繼電器指示燈電路。
學(xué)習(xí)型紅外遙控板:STC15F104E基本電路、1838T紅外信號接收電路、紅外發(fā)射管發(fā)射電路、74HC138對8路按鍵的控制電路。
具體電路請參考附錄原理圖部分。
2.1 STC12C5A60s2單片機(jī)介紹
STC12C5A60s2單片機(jī)是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期1T的單片機(jī),是高速、低功耗、抗干擾的新一代8051單片機(jī),指令代碼兼容傳統(tǒng)的8051,單速度快8-12倍。片上集成1280字節(jié)RAM、60K的FLASH,通用IO口40個(gè),內(nèi)置EEPROM功能,有4個(gè)16位定時(shí)器。由于價(jià)格低廉、性能較好,成為了本系統(tǒng)的首選。

2.2 STC15F104E單片機(jī)介紹
STC15F104E單片機(jī)是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期1T的單片機(jī),是高速、低功耗、抗干擾的新一代8051單片機(jī),指令代碼兼容傳統(tǒng)的8051,單速度快8-12倍。內(nèi)部集成高精度R/C時(shí)鐘,可省掉外部晶振,內(nèi)部高可靠復(fù)位,可省掉外部復(fù)位電路。片上集成128字節(jié)RAM、6K的FLASH,通用IO口6個(gè),內(nèi)置EEPROM(1KB)功能,有2個(gè)16位定時(shí)器。由于其采用DIP-8封裝,速度快、體積小、價(jià)格低廉成為了本系統(tǒng)的首選。
2.3 USB轉(zhuǎn)串口模塊
通過給OpenWRT系統(tǒng)移植PL230驅(qū)動,實(shí)現(xiàn)了使用PL2303芯片的USB轉(zhuǎn)串口模塊與單片機(jī)的通訊。

2.4 連接關(guān)系
USB轉(zhuǎn)串口模塊的綠色連接到上圖三個(gè)針腳的第一針,黑手連接第三針。
控制板:棕、紅、橘、黃、綠、藍(lán)     遙控板:藍(lán) 、綠、黃、橘、紅、棕

3系統(tǒng)結(jié)構(gòu)
3.1單片機(jī)部分
3.1.1學(xué)習(xí)型紅外遙控
  • 意義
帶紅外遙控器的家電給我們的生活帶來極大的方便,但遙控器多了很容易弄混,如果有一種可對家中各種紅外遙控器發(fā)射的控制信號進(jìn)行識別、存儲和再現(xiàn)的遙控板,而且能夠聯(lián)網(wǎng)控制,這絕對是個(gè)激動人心的功能。
  • 使用說明
    • 在第一次使用這個(gè)功能之前,必需先進(jìn)行學(xué)習(xí)。
    • 按客戶端上相應(yīng)的按鍵即可將之前保存的遙控信號發(fā)射出去。
  • 遙控學(xué)習(xí)的方法
a) 按客戶端上的學(xué)習(xí)鍵或者長按對應(yīng)的物理按鍵。
b) 若指示燈長亮說明已經(jīng)進(jìn)入學(xué)習(xí)等待狀態(tài)。
c) 對準(zhǔn)接收頭,短按一下要學(xué)習(xí)的遙控器按鍵。
d) 指示燈熄滅則說明學(xué)習(xí)成果。

3.1.2控制板部分
1)流程圖
3.2路由器部分
這里將詳細(xì)介紹一下為HG255D路由器安卓OpenWRT系統(tǒng)的過程和開源軟件BOA的移植與配置,已經(jīng)跨平臺的交叉編譯環(huán)境構(gòu)建,和一下具體的細(xì)節(jié)。

3.2.1 HG255D路由器安裝OpenWRT系統(tǒng)
1)設(shè)置本地連接為IP:192.168.1.2 子網(wǎng)掩碼: 255.255.255.0 網(wǎng)關(guān) 192.168.1.1,DNS不用填寫,網(wǎng)線插入hg255d的LAN口,保持路由器關(guān)閉狀態(tài)。
  • 先在瀏覽器輸入 http://192.168.1.1/upload.html,然后按住路由的reset鍵并接通電源,保持reset按住,瀏覽器刷新剛才的那個(gè)地址,大約十秒左右就可以進(jìn)入刷機(jī)界面,此時(shí)要選擇ralink.bin固件并開始刷入。大約5分鐘之后路由會自動重啟,稍等片刻在瀏覽器中輸入192.168.1.1 帳號密碼同為admin.進(jìn)入ralink的設(shè)置界面
  • 刷u-boot,執(zhí)行命令:/hg255d/hg255d-flash-uboot.sh提交,然后手動重啟路由器。
  • 路由重啟后,wps/wlan/reset按鈕任一按鈕,然后刷入固件就行了,寫入固件0909-DreamBox-ramips-rt305x-hg255d.bin大約10秒鐘,此時(shí)電源燈為常亮,然后大約是5分鐘的等待時(shí)間,電源燈會滅一下,然后頻閃,之后稍等一會就可以192.168.1.1進(jìn)入OpenWRT。

3.2.2 開源軟件向OpenWRT系統(tǒng)的移植
BOA(WEB服務(wù)器,支持CGI)的移植:
BOA主頁
0) 構(gòu)建交叉編譯環(huán)境,從svn下載backfire,make menuconfig時(shí)選擇編譯Toolchain
1)從官方網(wǎng)站下載BOA,最新版是boa-0.94.14rc21.tar.gz
2)使用mips-openwrt-linux-gcc 通過靜態(tài)編譯得到boa應(yīng)用程序
5)修改boa.conf配置文件,比如端口、WEB路徑等
6)登陸并配置路由器
7)其中mime.types從Linux系統(tǒng)下 /etc里可以找到。
8)在瀏覽器中寫入http://<目標(biāo)板ip>:<端口>即可訪問
3.2.3 嵌入式系統(tǒng)下的軟件開發(fā)
這個(gè)部分用到了Linux下的串口編程知識,通過系統(tǒng)調(diào)用(System Call) 來進(jìn)行設(shè)備文件操作,PL2303模塊插入后默認(rèn)背加載為USBTTY0,WEB頁面用GET方式提交的指令由一個(gè)CGI程序?qū)iT負(fù)責(zé)通過串口發(fā)射給控制板。
編寫完后使用交叉編譯工具mips-openwrt-linux-gcc直接編譯。

3.3 客戶端部分
3.3.1 Android客戶端
注意:使用前需要先連接到路由器。
由于WEB方式控制對移動設(shè)備來說不是很方便,用戶體驗(yàn)較差,為了更好的用戶體驗(yàn),專門開發(fā)了Android系統(tǒng)客戶端。由于沒有安卓應(yīng)用開發(fā)經(jīng)驗(yàn),所以看起了比較簡陋,不過基本功能還是沒問題的。

兼容的系統(tǒng)版本:Android 2.1、Android 2.2、Android 2.3
其它版本未測試。
3.3.2 Windows客戶端
注意:使用前需要先連接到路由器。

同樣,為了更好的用戶體驗(yàn)和便捷的操作,同時(shí)也做了這個(gè)Windows系統(tǒng)的客戶端。
兼容性:Windows 2000、XP、Vista、Win7、Win8。

總結(jié)
本系統(tǒng)以普通路由器為核心,加上控制板實(shí)現(xiàn)了一種廉價(jià)的智能家居控制系統(tǒng)。成本相當(dāng)?shù)土由下酚善骺偝杀疽部梢钥刂圃诎僭韵拢啾仁袌錾系耐惍a(chǎn)品,很有性價(jià)比。目前,市場上智能家居類的產(chǎn)品中,目前還沒有發(fā)現(xiàn)集成學(xué)習(xí)型紅外遙控功能的,有了學(xué)習(xí)型遙控就可以用手機(jī)方便的集中控制電器,而不用到處找遙控器了。
在物聯(lián)網(wǎng)實(shí)現(xiàn)產(chǎn)業(yè)化規(guī)模的發(fā)展的過程中,智能家居體現(xiàn)的不僅僅只是一些高科技的產(chǎn)品,更是一種全新的生活方式,一種意境和理念。未來隨著經(jīng)濟(jì)的發(fā)展,人們對生活質(zhì)量追求的提高,智能家居也將逐漸引領(lǐng)裝修時(shí)尚潮流,成為新的消費(fèi)趨勢。所以基于此,相信本產(chǎn)品有很好的市場前景。



單片機(jī)源程序如下:
  1.   ;STC15F104E 4路學(xué)習(xí)萬能遙控器
  2.   ;內(nèi)部振蕩11.0592M

  3.   ;EPPROM寄存器
  4.   IAP_DATA EQU  0C2H
  5.   IAP_ADDRH EQU 0C3H
  6.   IAP_ADDRL EQU 0C4H
  7.   IAP_CMD  EQU  0C5H
  8.   IAP_TRIG EQU  0C6H
  9.   IAP_CONTR EQU 0C7H
  10.   ;***********************

  11.   ;F38_4KHZ EQU 0FF70H ;38.4KHZ 1T MODE (65536-11059200/2/38400)
  12.   ;F38_4KHZ EQU 0FFF4H ;38.4KHZ 12T MODE(65536-11059200/2/38400/12)

  13.   AUXR EQU 08EH
  14.   INT_CLKO EQU 08FH ;輸出時(shí)鐘使能

  15.   K1 BIT P3.0;按鍵1
  16.   K2 BIT P3.2;按鍵2
  17.   K3 BIT P3.3;按鍵3
  18.   K4 BIT P3.4;按鍵4

  19.   LED BIT P3.3;指示燈(按鍵3復(fù)用)

  20.   IR BIT  P3.1;紅外接收頭
  21. T1CLKO BIT P3.5;紅外發(fā)射管

  22. ;****************************
  23.   ORG 0
  24.   LJMP START
  25. ORG 3
  26. CLR EX0;關(guān)外中斷0
  27. RETI

  28. ORG 0BH
  29. LJMP INT_T0;T0中斷

  30. ORG 13H
  31. CLR EX1;關(guān)外中斷1
  32. RETI

  33. ORG 53H
  34. MOV INT_CLKO,#0H ;關(guān)外中斷 2
  35. RETI

  36. ORG 83H
  37. MOV INT_CLKO,#0H ;關(guān)外中斷 4
  38. RETI

  39. ORG 100H
  40. ;************************
  41. ;************************
  42.   START:;初始化
  43.   MOV R0,#20H
  44.   QL:
  45.   MOV @R0,#0;內(nèi)存清0
  46.   INC R0
  47.   CJNE R0,#80H,QL

  48.   ;MOV AUXR,#40H ; 1T
  49.   MOV P3,#0FFH;拉高管腳
  50.   MOV AUXR,#00H ;定時(shí)器12T模式
  51.   MOV TMOD,#00H ;定時(shí)器16位自動重裝
  52. ;--------------------
  53.   MOV TH1,#0FFH ;38K方波定時(shí)T1
  54.   MOV TL1,#0F4H
  55.   SETB TR1;開T1
  56. SETB IT0
  57. SETB IT1
  58. MOV TH0,#0;定時(shí)器0初值
  59. MOV TL0,#0
  60. SETB ET0
  61. SETB TR0;開T0
  62. SETB EA;開總中斷

  63. ;MOV INT_CLKO,#02H; 發(fā)射38K
  64. ;MOV INT_CLKO,#00H;停止發(fā)射
  65. ;--------------------------
  66. MAIN:;主程序
  67. JNB 3,MAIN1
  68. CLR 3;清掉電標(biāo)志
  69. MOV PCON,#2;進(jìn)入掉電模式
  70. NOP
  71. NOP
  72. NOP
  73. NOP
  74. MAIN1:
  75. CALL PD;拉高P3,按鍵掃描

  76. JMP MAIN
  77. ;************************
  78. ;************************

  79. PD:;讀管腳是否按下
  80. MOV P3,#0FFH;拉高管腳
  81. MOV A,P3
  82. ANL A,#11101B
  83. CJNE A,#11101B,PD1
  84. RET;無按鍵退出
  85. PD1:;有管腳按下
  86. CALL DELAY20MS;延時(shí)消抖
  87. MOV P3,#0FFH;拉高管腳
  88. MOV A,P3
  89. ANL A,#11101B
  90. CJNE A,#11101B,PD2;讀管腳是否按下
  91. RET;是干擾退出
  92. PD2:;有管腳按下
  93. ;-----------------
  94. CLR EA;關(guān)中斷
  95. MOV 2FH,#0;清計(jì)數(shù),每計(jì)一次70MS
  96. MOV TH0,#0;定時(shí)器0初值
  97. MOV TL0,#0
  98. SETB TR0;打開T0判斷長按

  99. ;-----------------
  100. JNB K1,KEY1;按鍵1
  101. JNB K2,KEY2;按鍵2
  102. JNB K3,KEY3;按鍵3
  103. JNB K4,KEY4;按鍵4
  104. RET

  105. ;**************************
  106. KEY1:;按鍵1
  107. MOV DPTR,#0H;第1扇區(qū),00H地址
  108. CALL ADD2FH;;按鍵按下計(jì)時(shí)
  109. JNC sss;短按跳轉(zhuǎn)
  110. JMP XIEXI;長按跳轉(zhuǎn)到學(xué)習(xí)功能
  111. sss:
  112. JNB K1,KEY1;等待放開
  113. ;-----------------
  114. CLR TR0;關(guān)定時(shí)器0
  115. CALL FFSS;紅外發(fā)射
  116. RET

  117. ;***************************
  118. KEY2:;按鍵2
  119. MOV DPTR,#100H;第1扇區(qū),100H地址
  120. CALL ADD2FH;;按鍵按下計(jì)時(shí)
  121. JNC aaa;短按跳轉(zhuǎn)
  122. JMP XIEXI;長按跳轉(zhuǎn)到學(xué)習(xí)功能
  123. aaa:
  124. JNB K2,KEY2;等待放開
  125. ;-----------------
  126. CLR TR0;關(guān)定時(shí)器0
  127. CALL FFSS;紅外發(fā)射
  128. RET

  129. ;************************
  130. ;************************

  131. KEY3:;按鍵3

  132. MOV DPTR,#200H;第2扇區(qū),200H地址
  133. CALL ADD2FH;;按鍵按下計(jì)時(shí)
  134. JNC bbb;短按跳轉(zhuǎn)
  135. JMP XIEXI;長按跳轉(zhuǎn)到學(xué)習(xí)功能
  136. bbb:
  137. JNB K3,KEY3;等待放開
  138. ;-----------------
  139. CLR TR0;關(guān)定時(shí)器0
  140. CALL FFSS;紅外發(fā)射
  141. RET
  142. ;************************
  143. KEY4:;按鍵4
  144. MOV DPTR,#300H;第2扇區(qū),300H地址
  145. CALL ADD2FH;;按鍵按下計(jì)時(shí)
  146. JNC ccc;短按跳轉(zhuǎn)
  147. JMP XIEXI;長按跳轉(zhuǎn)到學(xué)習(xí)功能
  148. ccc:
  149. JNB K4,KEY4;等待放開
  150. ;-----------------
  151. CLR TR0;關(guān)定時(shí)器0
  152. CALL FFSS;紅外發(fā)射
  153. RET
  154. ;************************

  155. ADD2FH:;按鍵按下時(shí)定時(shí)計(jì)數(shù)
  156. CLR C
  157. JNB TF0,ADD2FHOUT
  158. CLR TF0
  159. INC 2FH;計(jì)數(shù)
  160. MOV A,#12
  161. CJNE A,2FH,ADD2FHOUT;長按時(shí)長70MS*12=840MS
  162. ADD2FHOUT:RET
  163. ;-----------------------

  164. ;***************************
  165. INT_T0:;T0中斷,用來定時(shí)進(jìn)入掉電模式
  166. PUSH ACC
  167. PUSH PSW
  168. INC 33H
  169. MOV A,33H
  170. CJNE A,#80,INT_T0OUT; 70*20=5.6秒進(jìn)入掉電
  171. MOV 33H,#0

  172. SETB EX1;;進(jìn)入掉電模式前開外中斷1
  173. SETB EX0;;進(jìn)入掉電模式前開外中斷0
  174. ORL INT_CLKO,#50H ;進(jìn)入掉電模式前開外中斷2,中斷4
  175. SETB 3;打開掉電標(biāo)志位
  176. INT_T0OUT:
  177. POP PSW
  178. POP ACC
  179. RETI
  180.   ;***************************

  181. ;***********************

  182. ;*********************
  183.   ;***************************
  184. XIEXI:;;紅外接收;存入EEPROMW

  185. ;判斷扇區(qū)是否為空,是空就擦除
  186. MOV R3,DPH;保存扇區(qū)指針
  187. MOV R4,DPL
  188. MOV R1,#200;讀200個(gè)字節(jié)
  189. ZDKA:;
  190. CALL EEPROMR;讀1字節(jié)
  191. INC DPTR;下個(gè)地址
  192. CJNE A,#0FFH,RESA;0FF就是空
  193. DJNZ R1,ZDKA;是否讀完
  194. JMP PDSQOUT
  195. RESA:
  196. CALL ERASE;扇區(qū)擦除
  197. PDSQOUT:

  198. MOV DPH,R3;裝入扇區(qū)指針
  199. MOV DPL,R4
  200. INC DPTR;從扇區(qū)第2字節(jié)開始寫,第1字節(jié)用來寫電平數(shù)
  201.   CLR 2;清判斷位
  202.   CLR LED;亮燈
  203.   MOV R1,#0;高電平和低電平總數(shù)
  204.   CLR TR0;停止計(jì)時(shí)

  205. JB IR,$;等待接收信號


  206.   MOV TH0,#0;;定時(shí)器初值歸0
  207.   MOV TL0,#0
  208.   SETB TR0;有信號開始計(jì)數(shù)
  209.   ;-------------------
  210.   WAIT0:
  211.   JBC TF0,XOUT;等待超時(shí);超過70MS退出
  212.   JNB IR,WAIT0;等待高電平到來
  213.   CLR TR0;停止計(jì)數(shù),存低電平時(shí)長
  214.   ;-------------------
  215.   BAOCUN:;存低(高)電平時(shí)長
  216.   MOV A,TH0;高位
  217.   CPL A;取反計(jì)數(shù)值就是定時(shí)初值
  218.   CALL EEPROMW;寫一字節(jié)EEPROMW大約60US
  219.   INC DPTR;下一地址
  220.   MOV A,TL0;低位
  221.   CPL A;取反
  222.   CALL EEPROMW;寫一字節(jié)EEPROMW大約60US
  223.   ;-------------------
  224.   MOV TH0,#0;定時(shí)器初值歸0
  225.   MOV TL0,#6EH;補(bǔ)償120US
  226.   SETB TR0;開始計(jì)數(shù)
  227.   INC DPTR;下一地址
  228.   INC R1;電平個(gè)數(shù)加1
  229.   CPL 2;取反判斷位,初始是0
  230.   JNB 2,WAIT0;是0就跳到等待高電平到來
  231.   ;***********************************
  232.   WAIT1:
  233. JBC TF0,XOUT;等待低電平超時(shí),超過70MS計(jì)數(shù)完畢
  234.   JB IR,WAIT1;是1就等待低電平到來
  235.   CLR TR0;停止計(jì)時(shí)
  236.   ;---------------------------
  237.   JMP BAOCUN;存高電平時(shí)長

  238.   XOUT:;退出
  239.   CLR TR0;停止計(jì)時(shí)
  240.   MOV DPH,R3;裝入扇區(qū)指針
  241.   MOV DPL,R4
  242.   MOV A,R1;電平總數(shù)
  243.   CALL EEPROMW;寫入扇區(qū)第1個(gè)地址
  244.   SETB LED;關(guān)燈

  245. MOV TH0,#0;定時(shí)器初值歸0
  246. MOV TL0,0
  247. MOV 33H,#0;掉電計(jì)數(shù)
  248. SETB TR0
  249. SETB ET0
  250. SETB EA
  251.   RET

  252. ;****************************
  253. ;****************************
  254.   FFSS:;紅外發(fā)射
  255. CLR 2;清標(biāo)志位,用來判斷發(fā)射還是停止發(fā)射
  256.   CLR LED;;開燈

  257. ORL DPH,#10H
  258. MOV A,#0
  259. MOVC A,@A+DPTR
  260. ;CALL EEPROMR
  261.   MOV R1,A;從第1扇區(qū)第1地址取出電平總數(shù)
  262.   INC DPTR;下一地址開始為發(fā)射數(shù)據(jù)時(shí)長

  263.   FFSS0:
  264.   MOV INT_CLKO,#02H;發(fā)射38K紅外(A版T1為3.5)
  265.   ;***************************
  266. ZCZ:
  267.   CLR TR0;停止計(jì)數(shù)
  268.   CLR TF0;清溢出位
  269.   ;CALL EEPROMR;讀出定時(shí)時(shí)長裝入定時(shí)器
  270. MOV A,#0
  271. MOVC A,@A+DPTR
  272.   MOV TH0,A
  273.   INC DPTR;下一地址
  274.   ;CALL EEPROMR
  275.   MOV A,#0
  276.   MOVC A,@A+DPTR

  277.   ;---------------------
  278.   CLR C;數(shù)據(jù)修正,10US左右
  279.   ADD A,#10
  280.   MOV TL0,A
  281.   MOV A,#0
  282.   ADDC A,TH0
  283.   MOV TH0,A

  284. ;**************************
  285.   SETB TR0;開始計(jì)時(shí)
  286.   INC DPTR;下一地址
  287.   CPL 2;取反發(fā)射標(biāo)志位
  288.   JNB TF0,$;等待溢出

  289.   DJNZ R1, FSW;電平數(shù)是否完畢

  290.   MOV INT_CLKO,#00H;停止發(fā)射
  291.   SETB P3.5;熄滅紅外管
  292.   CLR TR0;停止計(jì)數(shù)
  293.   CLR TF0;清溢出位
  294.   SETB LED;;關(guān)燈
  295. MOV TH0,#0;定時(shí)器初值歸0
  296. MOV TL0,0
  297. MOV 33H,#0;掉電計(jì)數(shù)
  298. SETB TR0
  299. SETB ET0
  300. SETB EA
  301.   RET
  302.   ;**************************
  303.   FSW:
  304.   JNB 2,FFSS0;標(biāo)志位是0就發(fā)射
  305.   FFSS1:
  306.   MOV INT_CLKO,#00H;停止發(fā)射
  307.   SETB P3.5;熄滅紅外管
  308.   JMP ZCZ;定時(shí)時(shí)長裝入定時(shí)器
  309.   ;-----------------------

  310.   ;******************
  311.   ;EPPROM讀寫
  312.   ;******************
  313.   ERASE:;擦除
  314.   MOV IAP_CONTR,#83H;允許IAP/IAP操作
  315.   MOV IAP_CMD,#3  ;扇區(qū)擦除
  316.   MOV IAP_ADDRH,DPH ;送高地址
  317.   MOV IAP_ADDRL,DPL ;送低地址
  318.   ACALL IAPXX       ;觸發(fā)
  319.   RET
  320.   ;************************
  321.   EEPROMW:;寫
  322.   MOV IAP_CONTR,#83H;允許IAP/IAP操作
  323.   MOV IAP_CMD,#2  ;送寫命令
  324.   MOV IAP_ADDRH,DPH ;送高地址
  325.   MOV IAP_ADDRL,DPL ;送低地址
  326.   MOV IAP_DATA,A    ;A是要寫入的數(shù)據(jù)
  327.   ACALL IAPXX       ;觸發(fā)
  328.   RET
  329.   ;************************
  330.   EEPROMR:;讀
  331.   MOV IAP_CONTR,#83H;允許IAP/IAP操作
  332.   MOV IAP_CMD,#1  ;送讀命令
  333.   MOV IAP_ADDRH,DPH ;送高地址
  334.   MOV IAP_ADDRL,DPL ;送低地址
  335.   ACALL IAPXX       ;觸發(fā)
  336.   MOV A,IAP_DATA    ;讀出的數(shù)據(jù)放到A
  337.   RET
  338.   ;************************
  339.   IAPXX:;觸發(fā)
  340.   ;和11F/15F的相同,而與12C2052的不同
  341.   ;CLR EA ;關(guān)中斷在觸發(fā)之前
  342.   MOV IAP_TRIG,#5AH
  343.   MOV IAP_TRIG,#0A5H;
  344.   NOP
  345.   NOP
  346.   NOP
  347.   ;SETB EA
  348.   RET
  349.   ;----------------------
  350.   IAP_DISABLE:;禁止IAP/IAP操作
  351.   MOV IAP_CONTR,#0
  352.   MOV IAP_CMD,#0
  353.   MOV IAP_TRIG,#0
  354.   MOV IAP_ADDRH,#0FFH
  355.   MOV IAP_ADDRL,#0FFH
  356.   RET
  357.   ;----------------------
  358.   DELAY20MS: ;延時(shí)
  359.   MOV R7,#0EH
  360.   DL1:
  361.   MOV R6,#0A8H
  362.   DL0:
  363.   MOV R5,#16H
  364.   DJNZ R5,$
  365.   DJNZ R6,DL0
  366.   DJNZ R7,DL1
  367.   RET
  368.   END
復(fù)制代碼

全部資料51hei下載地址:
智能家居控制系統(tǒng)文檔.rar (2 MB, 下載次數(shù): 37)
智能家居控制系統(tǒng)客戶端.zip (560.43 KB, 下載次數(shù): 26)
學(xué)習(xí)型遙控器.rar (21.37 KB, 下載次數(shù): 35)
boa.rar (909.93 KB, 下載次數(shù): 24)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:594096 發(fā)表于 2019-8-2 13:56 | 只看該作者
不知道直接串口接openwrt可行不呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:93224 發(fā)表于 2019-9-10 10:04 | 只看該作者
sky48818 發(fā)表于 2019-8-2 13:56
不知道直接串口接openwrt可行不呢

看看你的板子引出來串口了嗎?注意一般路由器引出來的串口是調(diào)試串口,不可以用,看看是否有其他串口引出來,如果沒有也沒關(guān)系,看看路由器是否帶有USB插口,如果有的話,插上USN轉(zhuǎn)TTL模塊,注意路由器系統(tǒng)內(nèi)部要安裝USB轉(zhuǎn)TTL的驅(qū)動,你要會Linux串口編程,或者簡單的用Lua腳本語言寫出來也可以,我的QQ1014461948,不會的找我聯(lián)系
回復(fù)

使用道具 舉報(bào)

地板
ID:93224 發(fā)表于 2019-9-10 10:06 | 只看該作者
CPU型號太老,工作頻率太低只有300多兆Hz,WEB頁面只有下發(fā)的沒有上傳的,建議增加上傳的功能
回復(fù)

使用道具 舉報(bào)

5#
ID:679185 發(fā)表于 2020-5-11 18:13 | 只看該作者
贊!學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

6#
ID:851122 發(fā)表于 2022-11-10 10:50 | 只看該作者
請問樓主,最近這個(gè)實(shí)驗(yàn)有新的進(jìn)展嗎?
回復(fù)

使用道具 舉報(bào)

7#
ID:911534 發(fā)表于 2022-11-15 11:19 | 只看該作者
謝謝樓主,學(xué)習(xí)非常有用
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 涩涩视频在线播放 | 精品国产高清一区二区三区 | 亚洲一区二区三区高清 | 人人看人人干 | 国产日产精品一区二区三区四区 | av网站在线播放 | 国产一级视频免费播放 | 日韩视频中文字幕 | 亚洲国产精品一区二区第一页 | 亚洲人成人一区二区在线观看 | 欧美午夜精品理论片a级按摩 | 亚洲日日 | 午夜寂寞福利视频 | 日韩欧美国产一区二区 | 成人高清视频在线观看 | 欧美13videosex性极品 | 天天噜天天干 | 欧美黄色免费网站 | 热re99久久精品国99热观看 | 视频精品一区二区三区 | 精品无码三级在线观看视频 | 国产精品久久久av | 在线四虎| 久久99深爱久久99精品 | 337p日本欧洲亚洲大胆鲁鲁 | 国产高清视频在线 | 亚洲成人精品一区二区 | h片在线观看网站 | 日韩综合网 | 欧美一级视频免费看 | 久久夜夜 | 国产精品1区2区3区 一区中文字幕 | 国产福利一区二区 | 亚洲精品久久久9婷婷中文字幕 | 国产一区二区三区高清 | 亚洲一区二区三区四区五区午夜 | 欧美久久久网站 | 中文字幕av一区 | 一区二区三区视频在线观看 | 日韩精品一区二区三区在线观看 | 精品一区二区不卡 |