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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2397|回復: 0
打印 上一主題 下一主題
收起左側

單片機KS0074電壓表,電流表源程序(液晶顯示)

[復制鏈接]
跳轉到指定樓層
樓主
ID:57366 發表于 2018-4-9 17:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機控制KS0074實現電壓表,電流表功能的源碼如下:
  1. ;引腳為:1VCC,2VCC,3GND,4BLA,5DB7,6DB6,7DB5,8DB4,9E,10RW,11RS,12V0,13GND,14GND,15VCC.實際上,可任用其中一個VCC引腳和一個GND引腳。
  2. ;KS0074有8線并行、4線并行和2線串行輸入方式,但set1602默認的輸入方式為4數據總線并行輸入方式
  3. ;V0引腳應通過串接800歐左右電阻后接VCC(5V)。或者,在VCC和GND之間串接一個5~10可調電位器,滑動端接V0,利用調節滑動端控制LCD顯示對比度。
  4. ;BLA輸入電壓應為3.3V,可通過串接合適電阻后接VCC(5V),避免高溫燒壞LCD。
  5. ;---------------------------------------------------------------------------------------------------------------------
  6. ;以下為硬件連接要求
  7. DB4 equ p0.4
  8. DB5 equ p0.5
  9. DB6 equ p0.6
  10. DB7 equ p0.7
  11. RS EQU P2.5
  12. RW EQU P2.6
  13. E EQU P2.7
  14. RCOMDATE equ 70H;作為讀取的BF相關指令信息的暫存單元
  15. WCOMdate equ 71H;作為擬寫入指令代碼的暫存單元
  16. RLCDDATE Equ 72H;作為讀取LCD相關顯示代碼或信息的暫存單元
  17. WLCDDATe EQU 73H;作為擬寫入LCD顯示信息的暫存單元
  18. ;-------------------------------------------------------------------------------------------------------
  19.         P1ASF        EQU        9DH        ;P1口設置寄存器
  20.         ADC_CONTOR        EQU        0BCH        ;ADC控制寄存器
  21.         ADC_RES        EQU        0BDH        ;ADC輸出高8位
  22.         ADC_RESL        EQU        0BEH        ;ADC低8為輸出
  23.         AUXR1        EQU        0A2H        ;設置寄存器
  24.         IJISHU        EQU        30H        ;電流比較次數計數
  25.         UJISHU        EQU        31H        ;電壓比較次數計數
  26.         IL        EQU        32H        ;電流低位
  27.         IH        EQU        33H        ;電流高位
  28.         UL        EQU        34H        ;電壓低位
  29.         UH        EQU        35H        ;電壓高位
  30.         ORG        0000H
  31.         LJMP        START
  32.         ORG        002BH
  33. START:
  34. MOV        P1ASF,#00000011B        ;開啟P1.0和P1.1作為AD的輸入端口
  35.         MOV        AUXR1,#04H        ;設置AD輸出方式
  36.         MOV        SP,#5FH        ;設置棧底
  37.         MOV        IJISHU,#00H
  38.         MOV        UJISHU,#00H
  39.         ;×××××××××××××××××××××××××
  40. LCD:
  41. MOV SP,#80H
  42. ;------------------------- -------------------------------------------------------------
  43. ;首先,開機或復位后,應進行4數據總線和LCD初始化,將默認的8位數據接口改為4位。
  44. ;---------------------------------------------------------------------------------------------------------------------
  45. ;開機或復位后,至少應等待20MS以上
  46. LCALL Delay1MS
  47. LCALL Delay1MS
  48. ;第一步功能設置,設為4位數據總線方式輸入(DL=0)
  49. MOV WCOMDATE,#20H
  50. LCALL INPUTCOMMAND;輸入指令0010XXXX(低四位忽略)
  51. ;第二步功能設置,在保持4位數據總線輸入方式下設為兩行模式(輸入指令00101XXX)
  52. MOV WCOMDATE,#28H;設成2行顯示
  53. LCALL INPUTCOMMAND;輸入指令00101XXX
  54. ;第三步顯示開關設置
  55. MOV WCOMDATE,#0CH;設成顯示開,而光標開和光標閃爍關
  56. LCALL INPUTCOMMAND;輸入指令00001111
  57. ;第四步清屏
  58. MOV WCOMDATE,#01H;
  59. LCALL INPUTCOMMAND;輸入指令00000001
  60. LCALL DELAY1MS;輸入功能設置指令需延遲1.53MS以上(除歸位指令和本指令執行時間為1.53MS,其余指令執行時間均不足0.1MS)
  61. ;第五步輸入模式設置
  62. MOV WCOMDATE,#06H;
  63. LCALL INPUTCOMMAND;輸入指令00000110
  64. ;- ------------------------------------------------------------------------------------------------------------------
  65. ;然后,將逆序顯示變更為正常顯示(即使用KS0074的鏡向功能)
  66. ;--------------------------------------------------------------------------------------------------------------------

  67. ;第一步,功能設置指令,使RE=1
  68. MOV WCOMDATE,#2CH;
  69. LCALL INPUTCOMMAND;輸入指令00101100
  70. ;第二步,輸入模式設置指令,使BID=1(逆序顯示)
  71. MOV WCOMDATE,#07H;
  72. LCALL INPUTCOMMAND;輸入指令00000111
  73. ;第三步,功能設置指令,使RE=0,以便后續應用時可使用正常指令
  74. MOV WCOMDATE,#28H;
  75. LCALL INPUTCOMMAND;輸入指令00101000
  76. ;-----------------------------------------------------------------------------------------------------------------
  77. ;第一步,顯示第一行的固定字符(40H~4EH,起始位址40H),測試要求全部顯示出來
  78. MOV WCOMDATE,#2CH;功能設置指令,使RE=1,以執行擴充命令
  79. LCALL INPUTCOMMAND;輸入指令00101100
  80. MOV WCOMDATE,#40H;設SEGRAM地址(格式為01XXABCD,起始地址為40H)
  81. LCALL INPUTCOMMAND;輸入指令40H
  82. ;(1)顯示第一個段碼字符即信號強度標志,默認為不顯示
  83. MOV WLCDDATe,#20H;40H控制第一個字符的大部分段碼位
  84. LCALL INPUTDATACODE
  85. MOV WLCDDATe,#20H;41H控制第一個字符中除40H控制段碼外的其它位
  86. LCALL INPUTDATACODE
  87. MOV WLCDDATe,#20H;42H無用
  88. LCALL INPUTDATACODE
  89. MOV WLCDDATe,#20H;43H無用
  90. LCALL INPUTDATACODE
  91. ;(2)顯示第二個段碼字符即電量顯示符號,默認顯示滿電量
  92. MOV WLCDDATe,#0FFH;44H控制全部電量顯示段碼位,對應關系應進一步測試
  93. LCALL INPUTDATACODE
  94. ;(3)顯示第三個段碼字符主菜單標志符,默認顯示主菜單符號
  95. MOV WLCDDATe,#20H;45H控制全部主菜單顯示段碼位
  96. LCALL INPUTDATACODE
  97. MOV WLCDDATe,#00H;46H無用
  98. LCALL INPUTDATACODE
  99. MOV WLCDDATe,#00H;47H無用
  100. LCALL INPUTDATACODE
  101. MOV WLCDDATe,#00H;48H無用
  102. LCALL INPUTDATACODE
  103. ;(4)顯示第四個段碼字符即鬧鈴符號,默認不顯示
  104. MOV WLCDDATe,#20H;49H控制鬧鈴所有段碼位
  105. LCALL INPUTDATACODE
  106. MOV WLCDDATe,#20H;4A無用
  107. LCALL INPUTDATACODE
  108. ;(5)顯示第五個段碼字符打開修箋(書本)符號,默認不顯示
  109. MOV WLCDDATe,#0FFH;4BH控制該符號全部段碼
  110. LCALL INPUTDATACODE
  111. MOV WLCDDATe,#20H;4CH無用
  112. LCALL INPUTDATACODE
  113. ;(6)顯示第六個段碼字符,默認顯示
  114. MOV WLCDDATe,#20H;4DH控制該符號全部段碼
  115. LCALL INPUTDATACODE
  116. MOV WLCDDATe,#00H;4EH無用
  117. LCALL INPUTDATACODE
  118. ;(7)顯示第七個段碼字符即接聽電話符號,默認顯示
  119. MOV WLCDDATe,#20H;55H控制該符號全部段碼
  120. LCALL INPUTDATACODE
  121. MOV WCOMDATE,#28H;功能設置指令,使RE=0,恢復正常命令狀態
  122. LCALL INPUTCOMMAND
  123. ;輸入指令00101000

  124. MOV WCOMDATE,#80H;設置DDRAM地址,該行起始80H
  125. LCALL INPUTCOMMAND


  126. MOV WLCDDATe,#"Q"
  127. LCALL INPUTDATACODE
  128. LCALL DELAY100MS

  129. MOV WLCDDATe,#"Q"
  130. LCALL INPUTDATACODE
  131. LCALL DELAY100MS

  132. MOV WLCDDATe,#":"
  133. LCALL INPUTDATACODE
  134. LCALL DELAY100MS

  135. MOV WLCDDATe,#"2"
  136. LCALL INPUTDATACODE
  137. LCALL DELAY100MS

  138. MOV WLCDDATe,#"8"
  139. LCALL INPUTDATACODE
  140. LCALL DELAY100MS

  141. MOV WLCDDATe,#"7"
  142. LCALL INPUTDATACODE
  143. LCALL DELAY100MS

  144. MOV WLCDDATe,#"0"
  145. LCALL INPUTDATACODE
  146. LCALL DELAY100MS

  147. MOV WLCDDATe,#"5"
  148. LCALL INPUTDATACODE
  149. LCALL DELAY100MS

  150. MOV WLCDDATe,#"5"
  151. LCALL INPUTDATACODE
  152. LCALL DELAY100MS

  153. MOV WLCDDATe,#"5"
  154. LCALL INPUTDATACODE
  155. LCALL DELAY100MS

  156. MOV WLCDDATe,#"3"
  157. LCALL INPUTDATACODE

  158. LCALL DELAY100MS
  159. LCALL DELAY100MS
  160. LCALL DELAY100MS
  161. LCALL DELAY100MS
  162. LCALL DELAY100MS
  163. LCALL DELAY100MS

  164. MOV WCOMDATE,#01H;
  165. LCALL INPUTCOMMAND;輸入指令00000001

  166. MAIN:
  167.         MOV        ADC_CONTOR,#11001001B        ;開啟P1.1的AD轉換,電流
  168.         LCALL        AD        ;調用AD子程序
  169.         MOV        A,ADC_RES
  170.         CJNE        A,IH,MAINI
  171.         MOV        A,ADC_RESL
  172.         CJNE        A,IL,MAINI
  173.         MOV        IJISHU,#00H
  174.         SJMP        MAINI1
  175. MAINI:        INC        IJISHU
  176.         MOV        A,#20
  177.         CJNE        A,IJISHU,MAINI1
  178.         MOV        IJISHU,#00H
  179.         MOV        IH,ADC_RES        ;保存電流數據
  180.         MOV        IL,ADC_RESL
  181. MAINI1:        MOV        0AH,IH
  182.         MOV        0BH,IL
  183.         LCALL        TO10
  184.         MOV        0CH,18H
  185.         MOV        0DH,19H
  186.         MOV        0EH,1AH
  187.         MOV        A,0AH
  188.         RRC        A
  189.         MOV        0AH,A
  190.         MOV        A,0BH
  191.         RRC        A
  192.         MOV        0BH,A
  193.         MOV        A,0AH
  194.         RRC        A
  195.         MOV        A,0BH
  196.         RRC        A
  197.         MOV        09H,A        ;09H保存8位電流數據
  198.         MOV        ADC_CONTOR,#11001000B        ;開啟P1.0的AD轉換        電壓
  199.         LCALL        AD        ;調用AD子程序
  200.         MOV        A,ADC_RES
  201.         CJNE        A,UH,MAINU
  202.         MOV        A,ADC_RESL
  203.         CJNE        A,UL,MAINU
  204.         MOV        UJISHU,#00H
  205.         SJMP        MAINU1
  206. MAINU:        INC        UJISHU
  207.         MOV        A,#20
  208.         CJNE        A,UJISHU,MAINU1
  209.         MOV        UJISHU,#00H
  210.         MOV        UH,ADC_RES        ;保存電壓數據
  211.         MOV        UL,ADC_RESL
  212. MAINU1:        MOV        0AH,UH
  213.         MOV        0BH,UL
  214.         LCALL        TO10
  215.         MOV        10H,18H
  216.         MOV        11H,19H
  217.         MOV        12H,1AH
  218.         MOV        A,0AH
  219.         RRC        A
  220.         MOV        0AH,A
  221.         MOV        A,0BH
  222.         RRC        A
  223.         MOV        0BH,A
  224.         MOV        A,0AH
  225.         RRC        A
  226.         MOV        A,0BH
  227.         RRC        A
  228.         MOV        08H,A        ;08H保存8位電壓數據
  229.         MOV        B,09H
  230.         MUL        AB
  231.         MOV        R2,B
  232.         MOV        R3,A
  233.         MOV        R4,#61H        ;/25000
  234.         MOV        R5,#0A8H
  235.         LCALL        DIVD
  236.         MOV        A,R7
  237.         ADD        A,#30H
  238.         MOV        13H,A
  239.         MOV        R4,#09H
  240.         MOV        R5,#0C4H        ;/2500
  241.         LCALL        DIVD
  242.         MOV        A,R7
  243.         ADD        A,#30H
  244.         MOV        14H,A
  245.         MOV        R4,#00H
  246.         MOV        R5,#250        ;/250
  247.         LCALL        DIVD
  248.         MOV        A,R7
  249.         ADD        A,#30H
  250.         MOV        15H,A
  251.         MOV        R4,#00H
  252.         MOV        R5,#25        ;/25
  253.         LCALL        DIVD
  254.         MOV        A,R7
  255.         ADD        A,#30H
  256.         MOV        16H,A
  257.         MOV        A,R3
  258.         CLR        C
  259.         RLC        A
  260.         CLR        C
  261.         RLC        A
  262.         MOV        R3,A
  263.         MOV        R5,#10
  264.         LCALL        DIVD
  265.         MOV        A,R7
  266.         ADD        A,#30H
  267.         MOV        17H,A
  268.         LCALL        XIANSHI
  269.         LJMP        MAIN
  270.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  271.         ;AD轉換子程序
  272.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  273. AD:        MOV        A,ADC_CONTOR
  274.         JNB        0E4H,AD
  275.         CLR        0E4H
  276.         MOV        ADC_CONTOR,A
  277.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  278.         ;二-十進制轉換子程序,同時加便宜量完成1602的0-9字模地址的轉換        輸出結果18H        19H        1AH
  279.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  280. TO10:        MOV        R2,0AH
  281.         MOV        R3,0BH
  282.         MOV        R4,#0
  283.         MOV        R5,#2
  284.         LCALL        DIVD
  285.         MOV        A,R6
  286.         MOV        R2,A
  287.         MOV        A,R7
  288.         MOV        R3,A
  289.         MOV        R4,#00H
  290.         MOV        R5,#100
  291.         LCALL        DIVD
  292.         MOV        18H,R7
  293.         MOV        A,#30H
  294.         ADD        A,18H
  295.         MOV        18H,A
  296.         MOV        R5,#10
  297.         LCALL        DIVD
  298.         MOV        19H,R7
  299.         MOV        A,#30H
  300.         ADD        A,19H
  301.         MOV        19H,A
  302.         MOV        1AH,R3
  303.         MOV        A,#30H
  304.         ADD        A,1AH
  305.         MOV        1AH,A
  306.         RET
  307.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××
  308.         ;雙字節除法運算子程序
  309.         ;入口條件:        被除數在R2、R3、除數在R4、R5中,商在R6、R7中。R1用于計數位移量
  310.         ;出口信息:        余數在R2、R3中,雙字節商在R4、R5中,OV=1        時溢出。
  311.         ;影響資源:        PSW、A、R1~R7
  312.         ;××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  313. DIVD:PUSH        PSW         
  314.         PUSH        ACC
  315.         MOV        R1,#00H        ;計數器清零
  316.         MOV        R6,#00H
  317.         MOV        R7,#00H
  318.         LCALL        SUBBD        ;判斷夠不夠減
  319.         JC        DIVDE
  320. DIVD1:        MOV        A,R4
  321.         JB        ACC.7,DIVD3        ;判斷最高位是不是1
  322.         CLR        C        ;除數左移一位
  323.         MOV        A,R5        
  324.         RLC        A
  325.         MOV        R5,A
  326.         MOV        A,R4
  327.         RLC        A
  328.         MOV        R4,A
  329.         INC        R1        ;左移計數器計數
  330.         LCALL        SUBBD        ;比較左移后夠不夠減
  331.         JNC        DIVD1        ;夠減轉移,不夠減繼續
  332.         LCALL        DIVDR        ;除數右移一位
  333.         DEC        R1        ;右移了,所以要-1
  334. DIVD3:        CLR        C
  335.         MOV        A,R3        ;開始減法
  336.         SUBB        A,R5
  337.         MOV        R3,A
  338.         MOV        A,R2
  339.         SUBB        A,R4
  340.         MOV        R2,A
  341.         INC        R7
  342. DIVD4:        CJNE        R1,#00H,DIVD5        ;判斷是不是到最后一位了
  343.         SJMP        DIVDE
  344. DIVD5:        LCALL        DIVDR        ;除數右移一位
  345.         MOV        A,R7
  346.         CLR        C
  347.         RLC        A
  348.         MOV        R7,A
  349.         MOV        A,R6
  350.         RLC        A
  351.         MOV        R6,A
  352.         DEC        R1        ;位置計數器-1
  353.         LCALL        SUBBD        ;比較夠不夠減
  354.         JC        DIVD4
  355.         SJMP        DIVD3
  356. SUBBD:        CLR        C        ;判斷夠不夠減子程序
  357.         MOV        A,R3
  358.         SUBB        A,R5
  359.         MOV        A,R2
  360.         SUBB        A,R4
  361.         RET
  362. DIVDR:        CLR        C
  363.         MOV        A,R4
  364.         RRC        A
  365.         MOV        R4,A
  366.         MOV        A,R5
  367.         RRC        A
  368.         MOV        R5,A
  369.         RET
  370. DIVDE:        SETB        OV
  371.          POP        ACC
  372.         POP        PSW         
  373.         RET

  374. XIANSHI:

  375. ;第二步,在第二行(起始位址為80H)顯示“2013-05-15”
  376. MOV WCOMDATE,#80H;設置DDRAM地址,該行起始80H
  377. LCALL INPUTCOMMAND
  378.         MOV        A,#30H
  379.         CJNE        A,10H,DYXY
  380.         MOV        WLCDDATe,#20H
  381.         SJMP        DYXY1
  382. DYXY:        MOV        WLCDDATe,10H        ;電壓最高位顯示0時消隱
  383. DYXY1:        LCALL        INPUTDATACODE
  384.         MOV        WLCDDATe,11H
  385.         LCALL        INPUTDATACODE
  386.         MOV        WLCDDATe,#2EH
  387.         LCALL        INPUTDATACODE
  388.         MOV        WLCDDATe,12H
  389.         LCALL        INPUTDATACODE
  390.         MOV        WLCDDATe,#56H
  391.         LCALL        INPUTDATACODE
  392.         
  393.         MOV WLCDDATe,#20H                ;功率部分(13H,14H,15H,16H,17H對應功率的5個數值)
  394.         LCALL        INPUTDATACODE        ;        MOV        P
  395.         MOV        WLCDDATe,#20H
  396.         LCALL        INPUTDATACODE
  397.         MOV        WLCDDATe,#20H
  398.         LCALL        INPUTDATACODE
  399.         MOV        WLCDDATe,#20H
  400.         LCALL        INPUTDATACODE
  401.         MOV        WLCDDATe,13H
  402.         LCALL        INPUTDATACODE
  403.         MOV        WLCDDATe,14H
  404.         LCALL        INPUTDATACODE
  405.         MOV        WLCDDATe,15H
  406.         LCALL        INPUTDATACODE
  407.         MOV        WLCDDATe,#2EH
  408.         LCALL        INPUTDATACODE
  409.         MOV        WLCDDATe,16H
  410.         LCALL        INPUTDATACODE
  411.         MOV        WLCDDATe,17H
  412.         LCALL        INPUTDATACODE
  413.         MOV        WLCDDATe,#57H
  414.         LCALL        INPUTDATACODE
  415.         

  416. ;第三步,在第三行
  417. ;電流部分(0CH,0DH,0EH對應電流的3個數值)
  418. MOV WCOMDATE,#90H;設置DDRAM地址
  419. LCALL INPUTCOMMAND

  420. MOV WLCDDATe,0CH
  421. LCALL INPUTDATACODE
  422. MOV WLCDDATe,#"."
  423. LCALL INPUTDATACODE
  424. MOV WLCDDATe,0DH
  425. LCALL INPUTDATACODE
  426. MOV WLCDDATe,0EH
  427. LCALL INPUTDATACODE
  428. MOV WLCDDATe,#"A"
  429. LCALL INPUTDATACODE
  430. RET
  431. SJMP $
  432. ;讀BF并判斷狀態子程序
  433. ;直到LCD空閑時退出本程序
  434. ;------------------------------------------------------------------------------------------------------------------
  435. READBFAC:
  436. PUSH ACC
  437. BFWAIT:
  438. SETB DB4;將4位數據線設置到讀有效狀態
  439. SETB DB5
  440. SETB DB6
  441. SETB DB7
  442. CLR RS;設置成讀BF及AC值操作狀態
  443. SETB RW
  444. SETB E;第一次讀,使LCD將BF及AC值的高4位信息釋放到數據總線上。
  445. MOV C,DB7
  446. MOV ACC.7,C
  447. CLR E;高半字節讀取完成
  448. CLR RW
  449. SETB DB4;將4位數據線設置到讀有效狀態
  450. SETB DB5
  451. SETB DB6
  452. SETB DB7
  453. SETB RW
  454. SETB E;第二次讀,使LCD將BF及AC值的低4位信息釋放到數據總線上。
  455. CLR E;第二次讀取完成
  456. JB ACC.7,BFWAIT;LCD忙碌時繼續等待并監控,空閑時執行下面指令
  457. POP ACC
  458. RET
  459. ;-------------------------------------------------------------------------------------------------------------------
  460. ;輸入指令子程序INPUTCOMMAND
  461. ;擬寫指令代碼存放在WCOMDATE中
  462. ;-------------------------------------------------------------------------------------------------------------------
  463. INPUTCOMMAND:
  464. PUSH ACC
  465. ;首先,判斷LCD是否空閑并視具體情況處理
  466. LCALL READBFAC
  467. ;然后,為寫指令代碼作好準備
  468. MOV A,WCOMDATE;將擬寫指令代碼取到A中
  469. ;再后,將擬寫指令代碼的高4位寫入LCD
  470. CLR RS;設置成寫指令狀態
  471. CLR RW
  472. SETB E
  473. MOV C,ACC.7;將高4位送出
  474. MOV DB7,C
  475. MOV C,ACC.6
  476. MOV DB6,C
  477. MOV C,ACC.5
  478. MOV DB5,C
  479. MOV C,ACC.4
  480. MOV DB4,C
  481. CLR E
  482. SETB RW
  483. CLR RW
  484. ;最后,將擬寫指令代碼的低4位寫入LCD
  485. SETB E
  486. MOV C,ACC.3;將低4位送出
  487. MOV DB7,C
  488. MOV C,ACC.2
  489. MOV DB6,C
  490. MOV C,ACC.1
  491. MOV DB5,C
  492. MOV C,ACC.0
  493. MOV DB4,C
  494. CLR E;E的下降沿執行上述指令,將低4位寫入LCD
  495. LCALL DELAY1ms
  496. POP ACC
  497. RET
  498. ;------------------------------------------------------------------------------------------------------------------
  499. ;寫顯示數據子程序INPUTDATACODE
  500. ;擬寫數據代碼存放在WLCDDATA中
  501. ;------------------------------------------------------------------------------------------------------------------
  502. INPUTDATACODE:
  503. PUSH ACC
  504. ;首先,判斷LCD是否空閑并視具體情況處理
  505. LCALL READBFAC
  506. ;然后,為寫顯示數據作好準備
  507. MOV A,WLCDDATE;將擬寫顯示數據取到A中
  508. ;第三,將擬寫數據代碼的高4位寫入LCD的DDRAM
  509. SETB RS;設置成寫顯示數據狀態
  510. clr rw
  511. setb E
  512. MOV C,ACC.7;將高4位送出
  513. MOV DB7,C
  514. MOV C,ACC.6
  515. MOV DB6,C
  516. MOV C,ACC.5
  517. MOV DB5,C
  518. MOV C,ACC.4
  519. MOV DB4,C
  520. clr E
  521. setb RW
  522. CLR RW
  523. ;最后,將擬寫數據代碼的低4位寫入LCD的DDRAM
  524. SETB E
  525. MOV C,ACC.3;將低4位送出
  526. MOV DB7,C
  527. MOV C,ACC.2
  528. MOV DB6,C
  529. MOV C,ACC.1
  530. MOV DB5,C
  531. MOV C,ACC.0
  532. MOV DB4,C
  533. CLR E
  534. LCALL DELAY1ms
  535. POP ACC
  536. RET
  537. ;---------------------------------------------------------------------------------------------------------------------
  538. ;延時子程序DELAY1MS:針對32MHZ晶振編程,延時不少1MS
  539. DELAY1MS:
  540. MOV r6,#22H
  541. DELAY1ms1:MOV R7,#064H
  542. DELAY1ms2: NOP
  543. DJNZ R7,DELAY1ms2
  544. DJNZ R6,DELAY1ms1
  545. NOP
  546. RET
  547. DELAY100MS:                        ;@12.000MHz
  548.         PUSH 30H
  549.         PUSH 31H
  550.         PUSH 32H
  551.         MOV 30H,#4
  552.         MOV 31H,#166
  553.         MOV 32H,#206
  554. NEXT:
  555.         DJNZ 32H,NEXT
  556.         DJNZ 31H,NEXT
  557.         DJNZ 30H,NEXT
  558.         POP 32H
  559.         POP 31H
  560.         POP 30H
  561.         RET
  562.         ;---------------------------------------------------------------------------------------------------------------------
  563. END

復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产福利视频在线观看 | 欧美性大战xxxxx久久久 | 欧美一级片在线看 | 亚洲精品在线免费播放 | 97人人超碰 | 国产精品99久久久久 | 成人免费观看视频 | 日韩在线视频免费观看 | 成人aaa视频 | 人人天天操 | 日韩一区二区三区四区五区 | 中文字幕一区二区三区四区五区 | 红桃视频一区二区三区免费 | 国产视频日韩 | 精国产品一区二区三区四季综 | 黄视频网站在线 | 蜜桃在线视频 | 亚洲精品久久嫩草网站秘色 | 国产高清精品一区二区三区 | 夜夜草视频 | 亚洲网站观看 | 韩日一区二区三区 | 在线国产小视频 | 国产97在线 | 日韩 | 国产人成精品一区二区三 | 三级在线观看 | 情侣酒店偷拍一区二区在线播放 | 亚洲成人福利在线观看 | 久久成人综合 | 国产精品国产三级国产aⅴ无密码 | 国产高清久久 | 亚洲精品欧美一区二区三区 | 久久久久久黄 | 成人黄色电影免费 | 欧美成年网站 | 国产高清在线视频 | 久久精品中文字幕 | 国产一区二区三区在线 | 五月婷婷丁香 | 日韩国产中文字幕 | 围产精品久久久久久久 |