我的账户
中国电子DIY

科技成就未来

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

  • 客服电话

    在线时间:8:00-16:00

    客服电话

    000-000-0000

    电子邮件

    ndiyadmin@163.com
  • 手机版

    电子DIY手机版

    随时随地掌握网站动态

  • 官方微信

    扫描二维码

    免费获取邀请码

我也很喜爱电子DIY

[复制链接]
3142 31
wangwenlong6 发表于 2014-12-17 12:31:51 | 只看该作者 |只看大图 |阅读模式 打印 上一主题 下一主题
本帖最后由 wangwenlong6 于 2014-12-17 13:13 编辑

我是70后的农民,小的时候就喜欢电子,苦于生活在农村,所以接触到电子方面的东西很少,电子垃圾都没得捡,后来成家也没有太多的时间玩,加上没基础,年龄大一点记性也差了,也没有做个什么让自己满意的东东出来,但我对电子一定会坚持学习,一直到老。。。
这是我的工作台,所以的东东都在这完成


原件盒




这是我二十年前的处女作,自动上水控制器。用油漆描的电路板,缝纫机针钻的孔,上水还唱歌呢!现在时间久了,喇叭也不见了



背面


后来看上了单片机,自己热转印做的下载板


背面 做得丑

用2051做的上水电路板

现在是用STC 感光膜做的上水电路板,有遥控功能,一个无线发射,一个接收,自己做的开关电源在上面


这是我现在做的智能家居灯光控制板,我只做了2个,能相互控制,8间房*4盏灯=32盏灯的开关,有改变地址码功能,自锁,一键全关,那个查询功能我还没有编程,现在想改位触摸的,可惜么找到16键触摸块的资料学习,希望能得到大家的帮助!所以这款正在改进之中......



电路原理图


PCB图手机在电脑上拍的,不清楚

现在只有两片芯片了。自学就这个样子,请大家多多指教


  1. ; 用STC15F204EA SOP28 16健 制作智能家居灯光控制程序
  2. ; 不用2262 本地地址码从0---F 6M
  3. ; QQ:8474971338
  4. ; 2014-12-01
  5. ;
  6. ; E-mail:wangwenlong6@163
  7. ;=====================================================================================

  8. BDM EQU 30H ;00-0F 本地址码数值0-16
  9. CCDZM EQU 31H ;20-2F 本地址码存处地址16
  10. XDZM EQU 32H ;F0-FF 新地址码
  11. XCCDZM EQU 33H ;20-2F 新地址码
  12. XSJM EQU 34H ;00-F0 新数据
  13. XSJXDZ EQU 35H ;00-FF 新数据新地址
  14. FSSJM EQU 36H ;00-0F 读到的键值 发射数据吗
  15. FSDZM EQU 37H ;00-0F
  16. SDJPM EQU 38H ;00-0F 算到的键盘值
  17. BBDM EQU 39H ;00-0F BD键盘值
  18. P1M1 EQU 091H
  19. P1M0 EQU 092H
  20. P2M1 EQU 095H
  21. P2M0 EQU 096H
  22. P0M1 EQU 093H
  23. P0M0 EQU 094H
  24. F BIT P0.0 ;用P0.0 发生出2262信号
  25. IAP_DATA EQU 0C2H ;//IAP数据寄存器
  26. IAP_ADDRH EQU 0C3H ; //IAP地址寄存器高字
  27. IAP_ADDRL EQU 0C4H ;//IAP地址寄存器低字
  28. IAP_CMD EQU 0C5H ; //IAP命令寄存器
  29. IAP_TRIG EQU 0C6H ; //IAP命令触发寄存器
  30. IAP_CONTR EQU 0C7H ;//IAP控制寄存器

  31. CMD_IDLE EQU 0 ; //空闲模式
  32. CMD_READ EQU 1 ; //IAP字节读命令
  33. CMD_PROGRAM EQU 2 ; //IAP字节编程命令
  34. CMD_ERASE EQU 3 ; //IAP扇区擦除命令

  35. ;ENABLE_IAP EQU 80H //if SYSCLK<30MHz
  36. ;ENABLE_IAP EQU 81H //if SYSCLK<24MHz
  37. ;ENABLE_IAP EQU 82H //if SYSCLK<20MHz
  38. ;ENABLE_IAP EQU 83H //if SYSCLK<12MHz
  39. ENABLE_IAP EQU 84H ;//if SYSCLK<6MHz
  40. ;ENABLE_IAP EQU 85H //if SYSCLK<3MHz
  41. ;ENABLE_IAP EQU 86H //if SYSCLK<2MHz
  42. ;ENABLE_IAP EQU 87H //if SYSCLK<1MHz
  43. IAP_ADDRESS EQU 0001H ;存储本地地址码的位置EEPROM

  44. ;===============================================================================主程序
  45. ORG 0000H
  46. LJMP MAIN
  47. ORG 0100H
  48. MAIN:
  49. CLR F ;防止发射
  50. MOV P0M1,#00000000B
  51. MOV P0M0,#00000001B
  52. MOV P2, #0F0H ;P2高2272输出 低位2262输入
  53. LCALL IAP_READ ;IAP_ READ 读取1个字节-本地码---------
  54. MOV A, IAP_DATA ;//度IAP数据
  55. MOV 30H,A
  56. ADD A, #20H
  57. MOV 31H, A
  58. MOV P1M1,#00000000B
  59. MOV P1M0,#00001111B
  60. A1:

  61. LCALL FMQ ;
  62. mov 20H, #0F0H
  63. mov 21H, #0F1H
  64. mov 22H, #0F2H
  65. mov 23H, #0F3H
  66. mov 24H, #0F4H
  67. mov 25H, #0F5H
  68. mov 26H, #0F6H
  69. mov 27H, #0F7H
  70. mov 28H, #0F8H
  71. mov 29H, #0F9H
  72. mov 2AH, #0FAH
  73. mov 2BH, #0FBH
  74. mov 2CH, #0FCH
  75. mov 2DH, #0FDH
  76. mov 2EH, #0FEH
  77. mov 2FH, #0FFH

  78. mov a,30h ;这是看本地地址码码是多少,实际不要工作
  79. SWAP A
  80. mov p3,a
  81. lcall s5
  82. lcall s5
  83. lcall s5
  84. lcall s5
  85. mov p3,#0FFH

  86. ;==============================================================================主程序
  87. A2:
  88. MOV 32H, #0FBH ;从FF位开始扫描,
  89. A3:
  90. MOV P1, 32H ;
  91. MOV P2, #0F0H
  92. NOP
  93. NOP
  94. MOV A, P1 ;
  95. ANL A, #0F0H
  96. CJNE A, #0F0H,A4 ;有键入转A4,
  97. LCALL S5 ;判断是否有数据输入-------------可能要延长
  98. LCALL S5

  99. MOV A, P2 ;
  100. CJNE A, #00H, A12 ;有新数据转A12--------------
  101. AJMP A5
  102. A4:
  103. LCALL S4 ;延时消抖
  104. MOV A, P1 ;
  105. ANL A, #0F0H
  106. CJNE A, #0F0H,A6 ;有键入转A6,转键盘程序
  107. A5: DEC 32H ;没有键入减一循环 减1 32H,
  108. MOV A, 32H ;
  109. CJNE A, #0EFH,A3 ;
  110. AJMP A2 ;
  111. ;====================================================================================
  112. A6:
  113. LCALL K1
  114. MOV A,BBDM
  115. CJNE A,#04H, A10 ;小于5是本地码,等于5下一句 A小于04H CY=1
  116. A7:
  117. CJNE A,#0CH, A11 ;小于12是
  118. A8:
  119. LCALL S5
  120. LCALL S5
  121. LCALL S5
  122. MOV P1,#11110111B
  123. NOP
  124. NOP
  125. MOV A,P1
  126. ANL A,#0F0H
  127. MOV XDZM,A
  128. CJNE A,#0F0H,A88
  129. AJMP A2
  130. A88:
  131. MOV A,P1
  132. ANL A,#0F0H
  133. CJNE A,#0F0H,A88
  134. AJMP TS1
  135. A9:
  136. JNC TS1
  137. AJMP A1
  138. A10: JNC A7 ;,
  139. AJMP B1 ;B1本地
  140. A11:
  141. JNC A8 ;,
  142. AJMP C3 ;C3控制外面
  143. A12: AJMP Z1
  144. ;--------------------------------------------------------------------------键盘有输入
  145. TS1: ;;特殊键 1显示 2设本地吗 3锁定 4全关
  146. LCALL FMQ ;蜂鸣器叫
  147. MOV A,XDZM
  148. CJNE A,#01110000B,TS3
  149. MOV P3,#11110111B ;4全关
  150. MOV XDZM, #0FFH;
  151. MOV XSJM, #0FFH;
  152. TS2: LCALL FS
  153. DEC XDZM ;减一循环 减1 32H,
  154. MOV A, XDZM ;
  155. CJNE A, #0EFH,TS2
  156. AJMP A1
  157. TS3:
  158. MOV A, XDZM
  159. CJNE A, #10110000B,TS5 ;3锁定
  160. LCALL FMQ ;蜂鸣器叫
  161. MOV P1,#11110111B
  162. NOP
  163. NOP
  164. TS4: JB P1.6,$$$$
  165. LCALL S5
  166. LCALL S5
  167. LCALL S5
  168. JB P1.6,TS4
  169. JNB P1.6,$$$$
  170. LCALL FMQ ;蜂鸣器叫
  171. AJMP A2
  172. TS5:
  173. MOV A,XDZM ;2设本地吗
  174. CJNE A,#11010000B,TS8
  175. LCALL FMQ ;蜂鸣器叫
  176. TS6: LCALL K1
  177. MOV A,R0
  178. CJNE A,#0FFH,TS7
  179. AJMP TS6
  180. TS7: LCALL FMQ ;蜂鸣器叫
  181. LCALL K1
  182. MOV A,R0
  183. CJNE A,#0FFH,TS7
  184. MOV 30H,BBDM
  185. LCALL IAP_ERASE ; ;---------擦除1个字节--写入1个字节----------
  186. AJMP A2
  187. LCALL FMQ ;蜂鸣器叫
  188. TS8: AJMP A1 ;还要加读出映绦?
  189. ;==================================================================控制外面
  190. C3:
  191. MOV A,BBDM
  192. MOV XDZM,BBDM
  193. MOV P1,#0FEH
  194. NOP
  195. NOP
  196. C4: MOV A,P1
  197. ANL A,#0F0H
  198. CJNE A,#0F0H,C5
  199. AJMP C4
  200. LCALL S4
  201. C5: MOV A,P1
  202. ANL A,#0F0H
  203. CJNE A,#0F0H,C6
  204. AJMP C4
  205. C6: SWAP A
  206. CPL A
  207. MOV XSJM,A ;X0
  208. C7: MOV A,P1
  209. ANL A,#0F0H
  210. CJNE A,#0F0H,C7
  211. LCALL FMQ ;蜂鸣器叫
  212. MOV A, BBDM ;传送 寄存器A,32H
  213. ANL A, #0FH
  214. ADD A, #20H ;
  215. MOV R0,A ;
  216. MOV A, @R0
  217. XRL A, 34H ;新数据码和老地址码连到一起
  218. MOV @R0,A ;数据存到自己的位置
  219. MOV 35H,A ;XXXXXXXXXXXXXXXXXX
  220. LCALL FS
  221. AJMP A2 ;转发射程序
  222. ;==================================================================================本地
  223. B1:
  224. MOV A, XSJM ;
  225. CPL A ;取反
  226. ANL A, #0F0H ;逻辑-与
  227. MOV XSJM,A ;01000000
  228. B2:
  229. LCALL FMQ
  230. MOV A, P1 ;
  231. ORL A, #0FH ;
  232. CJNE A, #0FFH,B2 ;比较
  233. MOV R0, 31H ;
  234. MOV A, @R0 ;
  235. XRL A, 34H ;
  236. MOV @R0,A ;
  237. MOV 35H,A ;XXXXXXXXXXXXXXX
  238. ORL A, #0FH
  239. MOV P3, A ;
  240. mov a, 31h
  241. ORL A, #0F0h
  242. MOV 32h, A ;FX


  243. MOV XDZM,30H

  244. LCALL FS ;转发射程序
  245. AJMP A2
  246. ;========================================================================2272收到数据
  247. Z1:
  248. ANL A, #0F0H ;把地位去掉,果然接收不稳定加延时
  249. MOV 34H, A ;X0 把接收数据存34H
  250. Z2:
  251. MOV A, P2 ;
  252. CJNE A, #00H, Z2 ;连续接收原地循环
  253. MOV A, 34H
  254. CJNE A, #0F0H, Z3 ;如果全部为高是关所有的灯!
  255. MOV P3, #0FFH ;全关
  256. AJMP A1 ;
  257. Z3:
  258. MOV A, 32H ;存储地址0-F
  259. ANL A, #0FH ;
  260. ADD A, #20H ;两数相加
  261. MOV R1, A ;存储地址2F-3F
  262. MOV A, @R1 ;
  263. XRL A, 34H ;新数据码和老地址码连到一起
  264. MOV @R1,A ;数据存到自己的位置
  265. MOV A, 32H ;是本地址吗
  266. ANL A, #0FH ;
  267. CJNE A, 30H,Z4 ;存储完转是非本地转开始
  268. MOV A, @R1 ;外面输入控制,执行
  269. ORL A, #0FH ;
  270. MOV P3, A
  271. SETB P3.3
  272. NOP
  273. NOP
  274. Z4: AJMP A3
  275. ;==========================================================================键盘子程序
  276. K1:
  277. MOV P1, #0FEH ;从第1行开始扫描,
  278. NOP
  279. NOP
  280. MOV A, P1
  281. MOV XSJM, P1
  282. ANL A, #0F0H
  283. CJNE A, #0F0H,K11 ;有键入转K11,

  284. MOV P1, #0FDH ; 扫描第2行
  285. NOP
  286. NOP
  287. MOV A, P1
  288. ANL A, #0F0H
  289. CJNE A, #0F0H,K12 ;有键入转K12,

  290. MOV P1, #0FBH ;扫描第3行
  291. NOP
  292. NOP
  293. MOV A, P1
  294. ANL A, #0F0H
  295. CJNE A, #0F0H,K13 ;有键入转K13,

  296. MOV P1, #0F7H ;扫描第4行
  297. NOP
  298. NOP
  299. MOV A, P1
  300. ANL A, #0F0H
  301. CJNE A, #0F0H,K14 ;有键入转K14,
  302. MOV R0,#0FFH
  303. RET
  304. K11:
  305. MOV DPTR,#TB1
  306. SJMP K21
  307. K12:
  308. MOV DPTR,#TB2
  309. SJMP K21
  310. K13:
  311. MOV DPTR,#TB3
  312. SJMP K21
  313. K14:
  314. MOV DPTR,#TB4
  315. SJMP K21
  316. K21:
  317. SWAP A
  318. K22:
  319. RRC A
  320. JNC K23
  321. INC DPTR
  322. SJMP K22
  323. K23:
  324. CLR A
  325. MOVC A, @A+DPTR
  326. MOV BBDM,A
  327. MOV R0,#000H
  328. RET
  329. ;-----------------------------------------------------------------
  330. TB1:
  331. DB 000H,001H,002H,003H
  332. TB2:
  333. DB 004H,005H,006H,007H
  334. TB3:
  335. DB 008H,009H,00AH,00BH
  336. TB4:
  337. DB 00CH,00DH,00EH,00FH
  338. ;======================================================================蜂鸣器叫子程序
  339. FMQ:
  340. CLR P3.2
  341. LCALL S1
  342. SETB P3.2
  343. RET
  344. ;==================================================================模拟2262发射子程序
  345. FS:
  346. MOV R2,#48 ;发设多少次
  347. FS0: MOV A,XDZM
  348. MOV R1,#4 ;发多少位地址码
  349. LCALL TT
  350. FS1: RRC A
  351. JC FS2
  352. LCALL TT0
  353. DJNZ R1,FS1
  354. AJMP FS3
  355. FS2: LCALL TT1
  356. DJNZ R1,FS1
  357. AJMP FS3
  358. FS3:
  359. LCALL TTX ;自己加的
  360. LCALL TTX
  361. LCALL TT0
  362. LCALL TT0
  363. MOV R1,#4 ;发多少位数据码
  364. MOV A,XSJM ;MOV A,FSSJM ;
  365. SWAP A
  366. FS33: RRC A
  367. JC FS4
  368. LCALL TT0
  369. DJNZ R1,FS33
  370. AJMP FS5
  371. FS4: LCALL TT1
  372. DJNZ R1,FS33
  373. FS5: DJNZ R2,FS0
  374. RET
  375. ;-------------------------------------
  376. TT: SETB F ;发射头
  377. LCALL S1
  378. CLR F
  379. LCALL S3
  380. RET
  381. TT0: ;0
  382. SETB F
  383. LCALL S1
  384. CLR F
  385. LCALL S2
  386. SETB F
  387. LCALL S1
  388. CLR F
  389. LCALL S2
  390. RET
  391. TTX: ;X
  392. SETB F
  393. LCALL S1
  394. CLR F
  395. LCALL S2
  396. SETB F
  397. LCALL S2
  398. CLR F
  399. LCALL S1
  400. RET
  401. TT1: ;1
  402. SETB F
  403. LCALL S2
  404. CLR F
  405. LCALL S1
  406. SETB F
  407. LCALL S2
  408. CLR F
  409. LCALL S1
  410. RET
  411. ;==================================================================================
  412. ;---------擦除1个字节-------------------------------------------------------
  413. IAP_ERASE:
  414. MOV DPTR,#IAP_ADDRESS //设置ISP/IAP/EEPROM地址
  415. MOV IAP_CONTR,#ENABLE_IAP //使能IAP
  416. MOV IAP_CMD,#CMD_ERASE //设置IAP命令
  417. MOV IAP_ADDRL,DPL //设置IAP低地址
  418. MOV IAP_ADDRH,DPH //设置IAP高地址
  419. MOV IAP_TRIG,#5AH //写触发命令(0x5a)
  420. MOV IAP_TRIG,#0A5H //写触发命令(0xa5)
  421. NOP //等待ISP/IAP/EEPROM操作完成
  422. LCALL S5
  423. ;---------写入1个字节---------------------------------------------------------
  424. IAP_PROGRAM:
  425. MOV A, 30H
  426. ;MOV A,#00001010b
  427. MOV DPTR,#IAP_ADDRESS //设置ISP/IAP/EEPROM地址
  428. MOV IAP_CONTR,#ENABLE_IAP //使能IAP
  429. MOV IAP_CMD,#CMD_PROGRAM //设置IAP命令
  430. MOV IAP_ADDRL,DPL //设置IAP低地址
  431. MOV IAP_ADDRH,DPH //设置IAP高地址
  432. MOV IAP_DATA,A //写IAP数据
  433. MOV IAP_TRIG,#5AH //写触发命令(0x5a)
  434. MOV IAP_TRIG,#0A5H //写触发命令(0xa5)
  435. NOP //等待ISP/IAP/EEPROM操作完成
  436. LCALL S5
  437. RET
  438. ;---------读取1个字节------------------------------------------------------------
  439. IAP_READ:
  440. MOV DPTR,#IAP_ADDRESS //设置ISP/IAP/EEPROM地址
  441. MOV IAP_CONTR,#ENABLE_IAP //使能IAP
  442. MOV IAP_CMD,#CMD_READ //设置IAP命令
  443. MOV IAP_ADDRL,DPL //设置IAP低地址
  444. MOV IAP_ADDRH,DPH //设置IAP高地址
  445. MOV IAP_TRIG,#5AH //写触发命令(0x5a)
  446. MOV IAP_TRIG,#0A5H //写触发命令(0xa5)
  447. NOP //等待ISP/IAP/EEPROM操作完成
  448. LCALL S5
  449. MOV A,IAP_DATA //度IAP数据
  450. MOV 30H,A
  451. MOV IAP_CONTR,#0 //关闭IAP功能
  452. MOV IAP_CMD,#0 //清除命令寄存器
  453. MOV IAP_TRIG,#0 //清除触发寄存器
  454. MOV IAP_ADDRH,#80H //将地址设置到非IAP区域
  455. MOV IAP_ADDRL,#0
  456. NOP
  457. RET
  458. ;====================================================================================
  459. S1: MOV R4, #1 ;150US(204EA 6M)
  460. AJMP S6
  461. S2: MOV R4, #3 ;450US
  462. AJMP S6
  463. S3: MOV R4, #31 ;4640US
  464. AJMP S6
  465. S4: MOV R4, #133 ;10MS
  466. AJMP S6
  467. S5: MOV R4, #255 ;38MS

  468. S6: MOV R5, #110
  469. DJNZ R5,$$$$
  470. DJNZ R4,S6
  471. RET
  472. END
  473. ;===================================================================================
  474. ;===================================================================================
复制代码

IMG_20141208_162011.jpg (72.93 KB, 下载次数: 9)

IMG_20141208_162011.jpg

IMG_20141208_162033.jpg (71.27 KB, 下载次数: 0)

IMG_20141208_162033.jpg

IMG_20141208_162109.jpg.JPG (11.39 KB, 下载次数: 5)

IMG_20141208_162109.jpg.JPG

IMG_20141208_162124.jpg.JPG (10.5 KB, 下载次数: 2)

IMG_20141208_162124.jpg.JPG

IMG_20141208_162636.jpg.JPG (16.17 KB, 下载次数: 2)

IMG_20141208_162636.jpg.JPG

IMG_20141208_163304.jpg (86.97 KB, 下载次数: 2)

IMG_20141208_163304.jpg

IMG_20141208_163220.jpg (48.03 KB, 下载次数: 3)

IMG_20141208_163220.jpg
参与人数 1贡献 +5 刀币 +6 收起 理由
中心小学 + 5 + 6 赞一个!

查看全部评分总评分 : 贡献 +5 刀币 +6

收藏
收藏0
分享
分享
支持
支持0
反对
反对0

精彩评论31

跳转到指定楼层
2#
王栋春 发表于 2014-12-17 12:40:45 | 只看该作者
佩服呀,软硬件通吃的大神,膜拜
3#
 楼主| wangwenlong6 发表于 2014-12-17 13:16:31 | 只看该作者
遥控接收上水的,体积比较小。
4#
 楼主| wangwenlong6 发表于 2014-12-17 13:23:45 | 只看该作者
王栋春 发表于 2014-12-17 12:40
佩服呀,软硬件通吃的大神,膜拜

可惜我只有这个水平,弄不出更好的东西了!
5#
涟漪 发表于 2014-12-17 13:43:57 | 只看该作者
很牛啊,看你做的电路板可以看出你很用心去做。
6#
天使之音 发表于 2014-12-17 13:46:22 | 只看该作者
很牛气!
高手!
7#
电子秀guan 发表于 2014-12-17 14:21:34 | 只看该作者
内容牛逼  什么都会啊
8#
jim166784 发表于 2014-12-17 14:55:37 | 只看该作者
大牛人啊,很佩服能用汇编写软件的人士
9#
gatmv 发表于 2014-12-17 15:03:53 | 只看该作者
美信232我也是觉得这款好用,汇编语言流弊,我都是用c编写的,简单多了
10#
走一遭 发表于 2014-12-17 16:40:39 | 只看该作者
呵呵!不错,听说51挺难学的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注我们
中国电子DIY官方微信

客服电话:000-000-0000

客服邮箱:776513803@qq.com

周一至周五 9:00-18:00

公司地址:深圳市南山区美丽湾大厦B座

Powered by X3.4@ 2001-2013