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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12728|回復(fù): 6
收起左側(cè)

單片機制作DS1302 LCD1602顯示年歷時鐘 匯編程序+電路圖

[復(fù)制鏈接]
ID:85192 發(fā)表于 2015-7-10 02:47 | 顯示全部樓層 |閱讀模式


程序清單:
  1. ;DS1302 1602LCD顯示
  2. ;2016 04 26    E:\D[J\DS1302LCD\DS1302LCD.ASM

  3. H_ADJ  BIT P2.0 ;時/年調(diào)整
  4. M_ADJ  BIT P2.1 ;分/月調(diào)整
  5. S_ADJ  BIT P2.2 ;秒/日調(diào)整
  6. DT_SET  BIT P2.3 ;時間/日期選擇
  7. W_ADJ  BIT P2.4 ;星期調(diào)整
  8. STR  BIT P2.5 ;啟動走時

  9. T_RST  BIT P3.2  ;實時時鐘復(fù)位線引腳
  10. T_CLK   BIT  P3.3  ;實時時鐘時鐘線引腳
  11. T_IO   BIT  P3.4  ;實時時鐘數(shù)據(jù)線引腳

  12. E   BIT  P3.5  
  13. RW   BIT  P3.6
  14. RS   BIT  P3.7


  15. DL_BIT   EQU  20H ;日低位
  16. DH_BIT   EQU  21H  ;日高位
  17. MOL_BIT   EQU  22H  ;月低位
  18. MOH_BIT   EQU  23H  ;月高位
  19. YL_BIT   EQU  24H  ;年低位
  20. YH_BIT   EQU  25H  ;年高位

  21. SL_BIT  EQU 26H ;秒低位
  22. SH_BIT  EQU 27H ;秒高位
  23. ML_BIT  EQU 28H ;分低位
  24. MH_BIT  EQU 29H ;分高位
  25. HL_BIT  EQU 2AH ;時低位
  26. HH_BIT  EQU 2BH ;時高位

  27. SEC  EQU 30H
  28. MIN  EQU 31H
  29. HOUR  EQU  32H
  30. DAY  EQU  33H
  31. MONTH  EQU  34H
  32. WEEK  EQU  35H
  33. YEAR  EQU  36H

  34. DS1302_ADDR  EQU  5EH
  35. DS1302_DATA  EQU  5FH


  36. ORG  00H
  37. LJMP  MAIN
  38. ORG 0BH
  39. AJMP T0INT
  40. ORG  30H
  41. MAIN:
  42. MOV SP,#60H

  43. MOV TMOD,#01H
  44. MOV TH0,#3CH
  45. MOV TL0,#0B0H
  46. MOV R0,#10
  47. SETB EA
  48. SETB ET0
  49. SETB TR0
  50. MOV R1,37H

  51. MOV YEAR,#11H ;上電預(yù)置日期、時間
  52. MOV WEEK,#00H ;周1 MON
  53. MOV MONTH,#04H ;2011 04 25 12:00:00
  54. MOV DAY,#25H
  55. MOV HOUR,#12H
  56. MOV MIN,#00H
  57. MOV SEC,#00H

  58. MAIN1:
  59. LCALL KEY
  60. JB F0,MAIN10 ;F0=1,開始走時。走時前寫,不讀。走時后讀,不寫。
  61. LCALL WR1302  
  62. AJMP MAIN2
  63. MAIN10:
  64. LCALL RD1302   
  65. MAIN2:
  66. MOV A,YEAR  
  67. MOV B,#10H
  68. DIV AB
  69. MOV YL_BIT,B
  70. MOV YH_BIT,A
  71. MOV A,MONTH
  72. MOV B,#10H
  73. DIV AB
  74. MOV MOL_BIT,B
  75. MOV MOH_BIT,A
  76. MOV A,DAY
  77. MOV B,#10H
  78. DIV AB
  79. MOV DL_BIT,B
  80. MOV DH_BIT,A

  81. MOV A,HOUR  
  82. MOV B,#10H
  83. DIV AB
  84. MOV HL_BIT,B
  85. MOV HH_BIT,A
  86. MOV A,MIN
  87. MOV B,#10H
  88. DIV AB
  89. MOV ML_BIT,B
  90. MOV MH_BIT,A
  91. MOV A,SEC
  92. MOV B,#10H
  93. DIV AB
  94. MOV SL_BIT,B
  95. MOV SH_BIT,A

  96. JNB 7CH,MAIN1 ;0.5S標(biāo)志
  97. CLR 7CH
  98. LCALL WEEKCOV         ;星期數(shù)字轉(zhuǎn)換成英語縮寫3 字母
  99. LCALL DISP

  100. AJMP MAIN1

  101. KEY: ;按鍵子程序

  102. KEY_SET:
  103. JB DT_SET,KEY_H
  104. ACALL D10MS
  105. JNB DT_SET,$-2
  106. CPL 7FH
  107. JB F0,RT
  108. CPL P2.7  ;點亮日期設(shè)定
  109. AJMP RT
  110. KEY_H:
  111. JB H_ADJ,KEY_M
  112. ACALL D10MS
  113. JNB H_ADJ,$-2
  114. AJMP H_ADD
  115. KEY_M:
  116. JB M_ADJ,KEY_S
  117. ACALL D10MS
  118. JNB M_ADJ,$-2
  119. AJMP M_ADD
  120. KEY_S:
  121. JB S_ADJ,KEY_W
  122. ACALL D10MS
  123. JNB S_ADJ,$-2
  124. AJMP S_ADD
  125. KEY_W:
  126. JB W_ADJ,KEY_ST
  127. ACALL D10MS
  128. JNB W_ADJ,$-2
  129. AJMP W_ADD
  130. KEY_ST:
  131. JB STR,RT
  132. ACALL D10MS
  133. JNB STR,$-2
  134. AJMP K_STR
  135. RT:
  136. RET

  137. H_ADD:
  138. JB 7FH,Y_ADD ;7FH為日期/時間切換鍵標(biāo)志。1為年月日。
  139. MOV A,HOUR
  140. ADD     A,#01H
  141. DA   A
  142. CJNE A,#24H,H_ADD1
  143. MOV A,#0
  144. H_ADD1:
  145. MOV HOUR,A
  146. AJMP RT
  147. Y_ADD:
  148. MOV A,YEAR
  149. ADD A,#01H
  150. DA A
  151. CJNE A,#20H,Y_ADD1
  152. MOV A,#0
  153. Y_ADD1:
  154. MOV YEAR,A
  155. AJMP RT

  156. M_ADD:
  157. JB 7FH,MO_ADD
  158. MOV A,MIN
  159. ADD     A,#01H
  160. DA   A
  161. CJNE A,#60H,M_ADD1
  162. MOV A,#00H
  163. M_ADD1:
  164. MOV MIN,A
  165. AJMP RT
  166. MO_ADD:
  167. MOV A,MONTH
  168. ADD     A,#01H
  169. DA   A
  170. CJNE A,#13H,MO_ADD1
  171. MOV A,#1
  172. MO_ADD1:
  173. MOV MONTH,A
  174. AJMP RT

  175. S_ADD:
  176. JB 7FH,D_ADD
  177. MOV A,SEC
  178. ADD     A,#01H
  179. DA   A
  180. CJNE A,#60H,S_ADD1
  181. MOV A,#00H
  182. S_ADD1:
  183. MOV SEC,A
  184. AJMP RT
  185. D_ADD:
  186. MOV A,DAY
  187. ADD A,#01H
  188. DA   A
  189. CJNE A,#32H,D_ADD1
  190. MOV A,#01H
  191. D_ADD1:
  192. MOV DAY,A
  193. AJMP RT

  194. W_ADD:
  195. MOV A,WEEK
  196. ADD A,#01H
  197. DA   A
  198. CJNE A,#7H,W_ADD1
  199. MOV A,#0
  200. W_ADD1:
  201. MOV WEEK,A
  202. AJMP RT

  203. K_STR:
  204. MOV DS1302_ADDR,#80H ;開始振蕩
  205. MOV DS1302_DATA,SEC
  206. LCALL WRITE
  207. MOV DS1302_ADDR,#8EH ;禁止寫入1302
  208. MOV DS1302_DATA,#80H
  209. LCALL WRITE
  210. SETB F0
  211. CLR P2.7
  212. AJMP RT

  213. WR1302:
  214. MOV DS1302_ADDR,#8EH
  215. MOV DS1302_DATA,#00H        ;允許寫1302
  216. LCALL WRITE
  217. MOV DS1302_ADDR,#80H
  218. MOV DS1302_DATA,#80H      ;1302停止振蕩
  219. LCALL  WRITE

  220. MOV DS1302_ADDR,#8CH ;年寫入1302
  221. MOV DS1302_DATA,YEAR
  222. LCALL WRITE

  223. MOV DS1302_ADDR,#8AH ;周寫入1302
  224. MOV DS1302_DATA,WEEK
  225. LCALL WRITE

  226. MOV DS1302_ADDR,#88H ;月寫入1302
  227. MOV DS1302_DATA,MONTH
  228. LCALL WRITE

  229. MOV DS1302_ADDR,#86H ;日寫入1302
  230. MOV DS1302_DATA,DAY
  231. LCALL WRITE

  232. MOV DS1302_ADDR,#84H ;時寫入1302
  233. MOV DS1302_DATA,HOUR
  234. LCALL WRITE

  235. MOV DS1302_ADDR,#82H ;分寫入1302
  236. MOV DS1302_DATA,MIN
  237. LCALL WRITE

  238. MOV DS1302_ADDR,#82H ;秒寫入1302
  239. MOV DS1302_DATA,MIN
  240. LCALL WRITE

  241. RET


  242. WRITE:  
  243. CLR  T_CLK
  244. NOP
  245. SETB  T_RST
  246. NOP
  247. MOV  A,DS1302_ADDR
  248. MOV  R4,#8
  249. WRITE1:
  250. RRC  A                       
  251. NOP
  252. NOP
  253. CLR  T_CLK
  254. NOP
  255. NOP
  256. NOP
  257. MOV  T_IO,C
  258. NOP
  259. NOP
  260. NOP
  261. SETB  T_CLK
  262. NOP
  263. NOP
  264. DJNZ  R4,WRITE1
  265. CLR  T_CLK
  266. NOP
  267. MOV  A,DS1302_DATA
  268. MOV  R4,#8
  269. WRITE2:
  270. RRC  A
  271. NOP                        
  272. CLR  T_CLK
  273. NOP
  274. NOP
  275. MOV  T_IO,C
  276. NOP
  277. NOP
  278. NOP
  279. SETB  T_CLK
  280. NOP
  281. NOP
  282. DJNZ R4,WRITE2
  283. CLR  T_RST
  284. RET

  285. RD1302:
  286. MOV  DS1302_ADDR,#8DH         ;年讀出
  287. LCALL  READ
  288. MOV  YEAR,DS1302_DATA
  289. MOV  DS1302_ADDR,#8BH         ;周讀出
  290. LCALL  READ
  291. MOV  WEEK,DS1302_DATA
  292. MOV  DS1302_ADDR,#89H         ;月讀出
  293. LCALL  READ
  294. MOV  MONTH,DS1302_DATA
  295. MOV  DS1302_ADDR,#87H         ;日讀出
  296. LCALL  READ
  297. MOV  DAY,DS1302_DATA
  298. MOV  DS1302_ADDR,#85H         ;時讀出
  299. LCALL  READ
  300. MOV  HOUR,DS1302_DATA
  301. MOV  DS1302_ADDR,#83H         ;分讀出
  302. LCALL  READ
  303. MOV  MIN,DS1302_DATA
  304. MOV  DS1302_ADDR,#81H         ;秒讀出
  305. LCALL  READ
  306. MOV  SEC,DS1302_DATA
  307. RET
  308.                                    
  309. READ:  
  310. CLR  T_CLK
  311. NOP
  312. NOP
  313. SETB  T_RST
  314. NOP
  315. MOV  A,DS1302_ADDR
  316. MOV  R4,#8
  317.                            
  318. READ1:  
  319. RRC  A
  320. MOV  T_IO,C
  321. NOP
  322. NOP
  323. NOP
  324. SETB  T_CLK
  325. NOP
  326. NOP
  327. NOP
  328. CLR  T_CLK
  329. NOP
  330. NOP
  331. DJNZ  R4,READ1
  332. MOV  R4,#8
  333.                     
  334. READ2:  
  335. CLR  T_CLK
  336. NOP
  337. NOP
  338. NOP
  339. MOV  C,T_IO
  340. NOP
  341. NOP
  342. NOP
  343. NOP
  344. NOP
  345. RRC  A
  346. NOP
  347. NOP
  348. NOP
  349. NOP
  350. SETB  T_CLK
  351. NOP
  352. DJNZ  R4,READ2
  353. MOV  DS1302_DATA,A
  354. CLR  T_RST
  355. RET



  356. DISP:  

  357. MOV  A,#30H   ;16進(jìn)制轉(zhuǎn)ASCII
  358. ORL  YH_BIT, A
  359. ORL  YL_BIT, A
  360. ORL  MOH_BIT, A
  361. ORL  MOL_BIT, A
  362. ORL DH_BIT, A
  363. ORL DL_BIT, A

  364. ;LCALL WEEKCOV

  365. ORL  HH_BIT, A
  366. ORL  HL_BIT, A
  367. ORL  MH_BIT, A
  368. ORL  ML_BIT, A
  369. ORL SH_BIT, A
  370. ORL SL_BIT, A


  371. LCALL  INIT_1602
  372. MOV  A, #10000000B          ; LINE1
  373. LCALL   WR_CMD
  374. MOV  A,#"2"  
  375. LCALL WR_DATA

  376. MOV  A,#"0"
  377. LCALL   WR_DATA
  378. MOV  A, YH_BIT  
  379. LCALL WR_DATA

  380. MOV  A, YL_BIT
  381. LCALL   WR_DATA
  382. MOV  A,#" "
  383. LCALL   WR_DATA

  384. MOV  A,MOH_BIT
  385. LCALL   WR_DATA
  386. MOV  A,MOL_BIT
  387. LCALL   WR_DATA
  388. MOV  A,#" "
  389. LCALL   WR_DATA
  390. MOV  A,DH_BIT
  391. LCALL   WR_DATA
  392. MOV  A,DL_BIT
  393. LCALL   WR_DATA
  394. MOV  A,#" "
  395. LCALL  WR_DATA
  396. MOV  A,#" "
  397. LCALL  WR_DATA
  398. LCALL WEEKDISP  ;星期顯示英文縮寫3個字母

  399. MOV A, #11000000B           ; LINE2
  400. LCALL  WR_CMD

  401. MOV  A,HH_BIT  
  402. LCALL WR_DATA

  403. MOV  A,HL_BIT
  404. LCALL   WR_DATA
  405. MOV A,#":"
  406. LCALL   WR_DATA

  407. MOV  A,MH_BIT
  408. LCALL   WR_DATA
  409. MOV  A,ML_BIT
  410. LCALL   WR_DATA
  411. MOV A,#":"
  412. LCALL   WR_DATA
  413. MOV  A,SH_BIT
  414. LCALL   WR_DATA
  415. MOV  A,SL_BIT
  416. LCALL   WR_DATA

  417. RET

  418. WEEKCOV:

  419. MOV A,WEEK
  420. CJNE A,#0,W2
  421. MOV 37H,#"M"
  422. MOV 38H,#"O"
  423. MOV 39H,#"N"

  424. W2:
  425. MOV A,WEEK
  426. CJNE A,#1,W3
  427. MOV 37H,#"T"
  428. MOV 38H,#"U"
  429. MOV 39H,#"E"          ;星期一 MON 星期二 TUE 星期三 WED 星期四 THU
  430.       ;星期五 FRI 星期六 SAT 星期天 SUN
  431. W3:
  432. MOV A,WEEK
  433. CJNE A,#2,W4
  434. MOV 37H,#"W"
  435. MOV 38H,#"E"
  436. MOV 39H,#"D"
  437. W4:
  438. MOV A,WEEK
  439. CJNE A,#3,W5
  440. MOV 37H,#"T"
  441. MOV 38H,#"H"
  442. MOV 39H,#"U"
  443. W5:
  444. MOV A,WEEK
  445. CJNE A,#4,W6
  446. MOV 37H,#"F"
  447. MOV 38H,#"R"
  448. MOV 39H,#"I"
  449. W6:
  450. MOV A,WEEK
  451. CJNE A,#5,W7
  452. MOV 37H,#"S"
  453. MOV 38H,#"A"
  454. MOV 39H,#"T"
  455. W7:
  456. MOV A,WEEK
  457. CJNE A,#6,W8
  458. MOV 37H,#"S"
  459. MOV 38H,#"U"
  460. MOV 39H,#"N"   
  461. W8:
  462. RET

  463. WEEKDISP:
  464. MOV  A,37H
  465. LCALL   WR_DATA
  466. MOV  A,38H
  467. LCALL   WR_DATA
  468. MOV  A,39H
  469. LCALL   WR_DATA
  470. RET

  471. INIT_1602:
  472. MOV   A, #01H
  473. LCALL  WR_CMD ;清屏
  474. MOV   A, #38H
  475. LCALL  WR_CMD ;8位數(shù)據(jù),16X2,5X7點陣
  476. MOV   A, #0CH
  477. LCALL  WR_CMD ;開顯示,關(guān)光標(biāo),不閃爍
  478. MOV   A, #06H
  479. LCALL  WR_CMD ;讀寫字符時地址+1,整屏不移動
  480. RET

  481. WR_CMD:
  482. MOV  P1, A
  483. CLR  RS ;寫入控制命令
  484. CLR  RW
  485. CLR  E
  486. LCALL  BUSY
  487. SETB  E
  488. RET

  489. WR_DATA:
  490. MOV  P1, A
  491. SETB  RS ;寫入數(shù)據(jù)
  492. CLR  RW
  493. CLR  E
  494. LCALL  BUSY ;判斷液晶模塊是否忙?
  495. SETB  E
  496. RET

  497. BUSY:   ;查看LCD是否忙
  498. MOV  P1,#0FFH
  499. CLR  RS
  500. SETB  RW
  501. CLR  E
  502. NOP
  503. SETB  E
  504. JB  P1.7,BUSY ;如果P1.7為高電平表示忙就循環(huán)等待
  505. RET

  506. T0INT:
  507. MOV TH0,#3CH
  508. MOV TL0,#0B0H
  509. DJNZ R0,RTI
  510. MOV R0,#10
  511. setb 7CH
  512. RTI:
  513. RETI

  514. D1MS:   
  515. MOV  R7,#250
  516. LOOP0:  
  517. NOP
  518. NOP
  519. DJNZ  R7,LOOP0
  520. RET

  521. D10MS:
  522. MOV R4,#25
  523. MOV R3,#200
  524. DJNZ R3,$
  525. DJNZ R2,$-4
  526. RET

  527. END
復(fù)制代碼


回復(fù)

使用道具 舉報

ID:99809 發(fā)表于 2015-12-21 14:24 | 顯示全部樓層
題目要求是什么??
回復(fù)

使用道具 舉報

ID:74784 發(fā)表于 2016-12-19 16:44 | 顯示全部樓層
沒看到數(shù)據(jù)表代碼~~~~~~~~~~~
回復(fù)

使用道具 舉報

ID:316515 發(fā)表于 2018-6-16 21:49 | 顯示全部樓層
功能可調(diào)嗎?

回復(fù)

使用道具 舉報

ID:316515 發(fā)表于 2018-6-16 22:57 | 顯示全部樓層
跪求按鍵程序
回復(fù)

使用道具 舉報

ID:353831 發(fā)表于 2018-6-18 20:14 | 顯示全部樓層
有用LED的電路圖嗎
回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2018-11-8 08:54 | 顯示全部樓層

上面有按鍵程序的,只有加鍵,沒有減鍵,我在找減鍵程序,
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成视频 | 99热在线播放 | 亚洲成人免费av | 国产精品免费一区二区三区四区 | 国产精品九九九 | 国产精品三级久久久久久电影 | 99国内精品久久久久久久 | 国产中文一区二区三区 | 在线中文视频 | 亚洲综合视频 | 欧美三区视频 | 欧美激情综合色综合啪啪五月 | 欧美v在线观看 | 国产精品一区二区在线 | 美女视频h | 久久久久国产精品午夜一区 | 国产99免费视频 | 影音先锋欧美资源 | 91精品www | 成年免费在线观看 | 国产成人精品一区二区三 | 免费观看成人鲁鲁鲁鲁鲁视频 | 久久99精品久久久久蜜桃tv | 国产精品成人一区二区三区 | 国产精品欧美一区二区三区 | 999re5这里只有精品 | av中文在线 | 国产精品区二区三区日本 | 国产资源在线观看 | 99精品欧美一区二区三区 | 91在线观看视频 | a级毛片免费高清视频 | 亚洲精品日韩综合观看成人91 | 九九热re | 国产成人一区二 | h网站在线观看 | 国产线视频精品免费观看视频 | 国产一区精品在线 | 岛国av免费观看 | 极品销魂美女一区二区 | 四虎永久免费影院 |