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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)匯編程序驅(qū)動帶字庫LCD12864液晶屏詳細(xì)教程

  [復(fù)制鏈接]
ID:996149 發(fā)表于 2022-1-3 22:00 | 顯示全部樓層 |閱讀模式
一丶引腳說明
Lcd12864(帶字庫版本,ST7920為主芯片驅(qū)動)
(正面)
(反面)
由于是帶字庫版本,與不帶字庫版本有出入,其部分引腳有不同
二丶接口時序
Mpu從模塊寫入資料
(時序圖很重要,能夠保證命令正確寫入ST7920芯片,讓12864屏幕正常使用)


  

這里我們采用并行模式,PSB,RS全部置高(PSB,RS所對應(yīng)的引腳置高電平)
(設(shè)P2.6RS對應(yīng)口,P2.5 RWP2.7 ED0-D7接在P0串口,PSB P3.2,RST P3.3  vcc5v 下面統(tǒng)一采取這種接法)
寫入指令:

CLR P2.7(使能信號先置低電平)

CLR P2.6(RS低電平)

CLR P2.5(RW低電平)

LCALL DELAY1(延時一段時間 對應(yīng)時序圖TAS)

CLR P2.7(使使能信號置低電平)

SETB P2.7(使能信號置換高電平)

MOV P0,#08H(輸入08#對應(yīng)指令)

LCALL DELAY1(延時一段時間,對應(yīng)TC)

CLR P2.7

LCALL DELAY1

SETB P2.7

LCALL DELAY(此處延時大于60ms相當(dāng)于讀忙了)

這個程序段可以看作一個指令

寫入數(shù)據(jù):

同上     CLR P2.6,改為SETB P2.6即可,其余相同

其中延時時間如上圖,只要超過最小值即可,最好不要過長了。



三丶對12864的所有操作概括起來有4種

1)、讀忙狀態(tài)(同時讀出指針地址內(nèi)容),初始化之后每次對12864的讀寫均要進(jìn)行忙檢測。(我每次寫一次完整指令都延時一段時間,相當(dāng)于讀忙了,下面就不再贅述)

2)、寫命令:所有的命令可以查看指令表,后續(xù)講解指令的詳細(xì)用法。寫地址也是寫指令。

3)、寫數(shù)據(jù):操作對象有DDRAM、CGRAM、GDRAM。

4)、讀數(shù)據(jù):操作對象也是DDRAM、CGRAM、GDRAM。

忙標(biāo)志:BF
BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準(zhǔn)備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。
利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗(yàn)?zāi)K之工作狀態(tài)。

那我們要如何在12864上面顯示圖像或者字符呢?

下面就來介紹一下DDRAM

上圖所對應(yīng)的四個區(qū)是DDRAM所對應(yīng)的在ST7920上面的地址,其中能夠顯示的只有壹貳區(qū),那么我們只需要把字符所對應(yīng)的數(shù)據(jù)寫進(jìn)DDRAM中,那么就可以讓12864顯示出我們想要的字符。

其中80H到87H為第一行

90H到97H為第二行(上半屏)

88H到8FH為第三行

98H到9FH 為第四行(下半屏)

下面我們來試著編寫一下程序

(這幾個步驟很重要,學(xué)會了步驟就學(xué)會了12864的使用)

*網(wǎng)上有帶字庫12864詳細(xì)指令集,這里我就不打出來了,注意,我編寫的輸入指令的指令碼是只對應(yīng)DB0到DB7的,和下面綠框那種一樣是沒有RW,RS,E位的,那些位我在編指令的時候就設(shè)定好了。

(1)功能設(shè)定


(2)清屏指令



(3)進(jìn)入設(shè)定點(diǎn)

(4)顯示狀態(tài)開關(guān)設(shè)置


上面為初始化程序
(綠色框代表指令碼,可以輸入二進(jìn)制也可以輸入16進(jìn)制,只要保證p0口電平信號相對應(yīng)就行了)

  • 設(shè)置DDRAM地址

對應(yīng)指令1000 0000也就是給p0輸入#80H

DDRAM從80H開始輸入指令,12864的DDRAM橫向地址會自動讀取表中的數(shù)據(jù),每輸入兩個16位的數(shù)據(jù)如#41H,#41H,地址會自動從80H跳到81H以此類推,網(wǎng)上有詳細(xì)的運(yùn)作方式,可以上網(wǎng)查閱。



上圖很明顯,我輸入了三個#41H進(jìn)80H中,12864就自動將第三個41#也就是大寫A寫進(jìn)81H中,這里提一下,帶字庫DDRAM12864一個地址可以寫一個漢字兩個字母(廠家規(guī)定的,無法修改)


  • 輸入DDRAM地址

這里可以用查表的方式,一直往DDRAM寫入數(shù)據(jù),但是寫進(jìn)去的數(shù)據(jù)是這樣的,先填滿第一行,再填滿第三行,再填滿第二行,再填滿第四行

,那我這里就采用查不同表的方式,設(shè)DDRAM起始地址為80H的時候只查16個數(shù)據(jù),再設(shè)90H再查16個數(shù)據(jù),以此類推。


下面我給仿真圖和指令

(注意,這里仿真要帶字庫的12864,不帶字庫的不能成功仿真,帶字庫的模型上網(wǎng)搜)




我設(shè)置的引腳和開發(fā)板的設(shè)置引腳一致,直接插上去使用了,大家使用的時候可以看看開發(fā)板的原理圖,一般都是一樣的,不行就改引腳


那普通的字符可以了,那怎么畫圖呢,廣告的需求肯定不能只有字符,還要有圖案,那怎么定制呢。下面就來介紹另一個RAM,CGRAM,也叫繪圖RAM。




這些都是點(diǎn)陣,繪圖RAM就是給這些點(diǎn)陣置1或置0,可以看到其實(shí)它本來是32行×256列的,但是分成了上下兩屏顯示,每個點(diǎn)對應(yīng)了屏幕上的一個點(diǎn)。要使用繪圖功能需要開啟擴(kuò)展指令。然后寫地址,再讀寫數(shù)據(jù)。


這幅圖就是CDRAM對應(yīng)的地址,其實(shí)也是12864實(shí)際的樣子,水平位址對應(yīng)著DDRAM的80H到8FH,一共16格,每8格對應(yīng)一個半屏,共兩個半屏。一格一行一共對應(yīng)了16位的二進(jìn)制數(shù)字那么半個屏幕就是16*8(共8格,一格16列)*32(32行),一個半屏32行,一個整屏就是16*8*32*2=128*64所以稱之為12864屏幕(很重要,一定要理解了)


那看到上圖bit0和bit15,可以知道,一個地址是先從高位讀到低位置,看起來很麻煩。但是后面取字模軟件可以幫你修改,那我這里向CGRAM輸入還是像DDRAM一樣,當(dāng)然,CGRAM和DDRAM的地址是一樣的,一旦讀夠16個二進(jìn)制數(shù)字,也就是兩個16進(jìn)制數(shù),也就是兩個字節(jié),就會自動加一,DDRAM從80H到81H,那CGRAM對應(yīng)的地址也是一樣下面會提到。這是x坐標(biāo),但是y坐標(biāo)不會,y坐標(biāo)要你輸入了16個數(shù)值后自己修改,也就是寫完一行后要自己改。

(我這里寫得不太清楚,LCD12864點(diǎn)陣型液晶顯示器總結(jié) - 吃不了就兜著走 可以看一下這個作者寫的他寫的很詳細(xì))


  GDRAM的讀寫:

  首先說明對GDRAM的操作基本單位是一個字,也就是2個字節(jié),就是說讀寫GDRAM時一次最少寫2個字節(jié),一次最少讀2個字節(jié)。


  寫數(shù)據(jù):先開啟擴(kuò)展指令集(0x36,然后送地址,這里的地址與DDRAM中的略有不同,DDRAM中的地址只有一個,那就是字地址。而GDRAM中的 地址有2個,分別是字地址(列地址/水平地址X)和位地址(行地址/垂直地址Y),上圖中的垂直地址就是00H~31H,水平地址就是00H~15H,寫 地址時先寫垂直地址(行地址)再寫水平地址(列地址),也就是連續(xù)寫入兩個地址,然后再連續(xù)寫入2個字節(jié)的數(shù)據(jù)。這里列舉個寫地址的例子:寫GDRAM地址指令是0x80+地址。被加上的地址就是上面列舉的XY,假設(shè)我們要寫 第一行的2個字節(jié),那么寫入地址就是0x00H(寫行地址)然后寫0x80H(列地址),之后才連續(xù)寫入2個字節(jié)的數(shù)據(jù)(先高字節(jié)后低字節(jié))。

下面說說指令,其實(shí)和DDRAM基本一致,就是寫寫入CGRAM指令要先寫x坐標(biāo),再寫y坐標(biāo),其余步驟基本一樣,但是查表要注意了,因?yàn)槲揖帉懙某绦騌A寄存器只能讀到256位置,那我要分成4個表才能讀完整個屏


下面給出指令和仿真。


下面拉屏和閃爍我就簡要說一下思路


閃爍我是通過不停地睡眠喚醒來實(shí)現(xiàn),這里睡眠指令要開拓展指令,然后寫一個循環(huán)和跳出循環(huán)的指令,通過兩個按鈕或者一個開關(guān)實(shí)現(xiàn),也可以通過反白來實(shí)現(xiàn),其實(shí)會寫步驟就完成大部分了,剩余的其實(shí)都是不斷地調(diào)試和檢查錯誤。


拉屏(仿真跑不了卷屏)

功能:SR=1: AC5~AC0 為垂直卷動地址,SR=0:。

那這里要說一下了,怎么實(shí)現(xiàn)拉屏呢。其實(shí)12864里自帶了一個指令叫做卷動地址設(shè)置,它規(guī)定了只會向上滾動,而因?yàn)橐还彩怯?4列的但是上面CGRAM為什么只有32行呢,那是因?yàn)槠渲?/p>

A0到A7對應(yīng)第一個屏中實(shí)際的第三行,其實(shí)它們也是可以輸入數(shù)據(jù)的,只是沒使用卷動指令時無法看到,那我假設(shè)


設(shè)置拉屏的行數(shù)為16吧,那80H就到了原來的B0哪里,一整行都替換了,然后A0就到90H一行,90H就到80H,其實(shí)就是一行推著整個半屏都在運(yùn)動,但是12864的一行實(shí)際上是80H到8FH,上下半屏都在動,但不會相互影響


實(shí)際的一行:

80H





























8FH

90H





























9FH

A0H





























AFH

B0H





























BFH

所以一整個屏都會移動




(下圖是半個屏,下面因?yàn)槲乙呀?jīng)實(shí)現(xiàn)全屏不方便改了,就只看上半屏吧)


那我要怎么實(shí)現(xiàn)全屏滾動呢,那么A0和B0行就開始有用了,那我只要將80H

對應(yīng)的行,假設(shè)是CGRAM中的y  00H,x80H向上移,那我就設(shè)置成看起來從下半屏的最下面開始往上面升起,那就是Y 32H  X  88H,這一行。那這就開始有思路了,那我吧80H到88H的數(shù)據(jù)一起輸入到A8到AFH區(qū)域不就行了嗎,以此類推90H區(qū)到98H的就輸入到B8到BF中,88H的輸入到A0,98H的輸入到B0就ok了。

下面試一下

成功了(此處要說明一下,CGRAM的y坐標(biāo)是到0到63,是可以設(shè)置到A0和B0位置的,網(wǎng)上教程說的不清不楚的,花費(fèi)了我很多精力,上面說y是0到31是因?yàn)椴辉O(shè)置卷動看不見,所以不顯示)


說明書心得:

說實(shí)話,這次我選的課題確實(shí)不算難度大的那一批了,網(wǎng)上也有很多的教程,但是由于要全部用匯編實(shí)現(xiàn),工作量大了很多,我以為很快就能成功,沒想到過程真的是千辛萬苦,一個是仿真,可以說網(wǎng)上帶字庫的仿真幾乎沒有,那個Proteus的帶字庫模型還要自己在網(wǎng)上買,不斷調(diào)試,不斷測試才終于和開發(fā)板的一致。

不斷在網(wǎng)上搜索教程,看了半天居然是不帶字庫的,差點(diǎn)暈倒在桌子上。后面終于在網(wǎng)上找到ST7920的說明書,一看和天書一樣晦澀難懂,沒辦法,一個個不會的知識點(diǎn)慢慢學(xué),實(shí)在不行就先看了1602的,這里很感謝知乎的北鸮他寫的一篇文章超詳細(xì)講解,LCD1602電路與驅(qū)動 真的很詳細(xì)清楚

然后是燒錄的問題,燒錄還好,因?yàn)榫W(wǎng)上的教程很詳盡明白,沒什么問題。然后就是不斷地寫程序,調(diào)仿真一直反復(fù)。然后不斷地看網(wǎng)上作者們寫的程序,吐槽一下,網(wǎng)上都是c語言的程序,匯編幾乎沒有,少有的幾個甚至有語法錯誤,看的時候都有點(diǎn)頭痛,那只好看著c語言思路來寫匯編了,感謝網(wǎng)絡(luò)上各位熱心的作者,他們無償?shù)胤窒碇R,而且教的很棒,真的非常感謝他們。


86e0d05fe8f56c817af3f618db2bc8c.jpg 284c762113d0210cfc0e5014be9e0fa.jpg

單片機(jī)源程序如下:
  1. AJMP MAIN
  2. TAB1:
  3. DB #41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H
  4. ,#41H,#41H
  5. TAB2: DB "元旦快樂大家好"
  6. //帶字庫的很方便,直接按這個格式輸入漢字就行 一行7漢字,沒有字的地方記得輸入空格,空格占半個地址位
  7. TAB3: DB "我你不合格 ",07FH,05FH,06FH
  8. TAB4: DB "哦哦哦哦哦 ",07FH,05FH,06FH            
  9. //想改字符漢字直接改表就行,漢字要打在引號里面
  10. MAIN:
  11. SETB P3.2
  12. LCALL DELAY1
  13. CLR  P3.3
  14. LCALL DELAY1
  15. SETB P3.3
  16. LCALL DELAY1
  17. //初始化
  18. CLR P2.6
  19. CLR P2.5
  20. MOV P0,#30H
  21. LCALL DELAY1
  22. SETB P2.7
  23. LCALL DELAY1
  24. CLR P2.7
  25. LCALL DELAY1
  26. //寫入#30H對應(yīng)的指令
  27. CLR P2.7
  28. CLR P2.6
  29. LCALL DELAY1
  30. CLR P2.5
  31. MOV P0,#08H
  32. LCALL DELAY1
  33. SETB P2.7
  34. LCALL DELAY1
  35. CLR P2.7
  36. LCALL DELAY1
  37. //寫入#08H的指令
  38. CLR P2.7
  39. CLR P2.6
  40. LCALL DELAY1
  41. CLR P2.5
  42. MOV P0,#0CH
  43. LCALL DELAY1
  44. SETB P2.7
  45. LCALL DELAY1
  46. CLR P2.7
  47. LCALL DELAY1
  48. //開屏
  49. CLR P2.7
  50. CLR P2.6
  51. LCALL DELAY1
  52. CLR P2.5
  53. MOV P0,#01H
  54. LCALL DELAY1
  55. SETB P2.7
  56. LCALL DELAY1
  57. CLR P2.7
  58. LCALL DELAY1
  59. //清屏指令
  60. CLR P2.7
  61. CLR P2.6
  62. ACALL DELAY1
  63. CLR P2.5
  64. MOV P0,#80H
  65. LCALL DELAY1
  66. SETB P2.7
  67. LCALL DELAY1
  68. CLR P2.7
  69. LCALL DELAY1
  70. //光標(biāo)設(shè)置
  71. CLR P2.7
  72. CLR P2.6
  73. LCALL DELAY1
  74. CLR P2.5
  75. MOV P0,#80H
  76. LCALL DELAY1
  77. SETB P2.7
  78. LCALL DELAY1
  79. CLR P2.7
  80. LCALL DELAY1
  81. //設(shè)置DDRAM地址

  82. CLR P2.7
  83. SETB P2.6
  84. ACALL DELAY1
  85. CLR P2.5
  86. MOV R2,#15D
  87. MOV DPTR,#TAB1
  88. LOOP:MOV A,R0
  89. INC R0
  90. MOVC A,@A+DPTR
  91. SETB P2.6
  92. LCALL DELAY1
  93. CLR P2.5
  94. MOV P0,A
  95. SETB P2.7
  96. LCALL DELAY1
  97. CLR P2.7
  98. LCALL DELAY1
  99. DJNZ R2,LOOP
  100. //查表指令


  101. CLR P2.6
  102. ACALL DELAY1
  103. CLR P2.5
  104. MOV P0,#90H
  105. LCALL DELAY1
  106. SETB P2.7
  107. LCALL DELAY1
  108. CLR P2.7
  109. LCALL DELAY1
  110. //設(shè)置DDRAM地址
  111. MOV R2,#15D
  112. MOV DPTR,#TAB2
  113. MOV R0,#00H
  114. LOOP1:MOV A,R0
  115. INC R0
  116. MOVC A,@A+DPTR
  117. SETB P2.6
  118. LCALL DELAY1
  119. CLR P2.5
  120. MOV P0,A
  121. SETB P2.7
  122. LCALL DELAY1
  123. CLR P2.7
  124. LCALL DELAY1
  125. DJNZ R2,LOOP1
  126. //查表指令
  127. CLR P2.6
  128. ACALL DELAY1
  129. CLR P2.5
  130. MOV P0,#88H
  131. LCALL DELAY1
  132. SETB P2.7
  133. LCALL DELAY1
  134. CLR P2.7
  135. LCALL DELAY1
  136. //設(shè)置DDRAM地址
  137. MOV R2,#15D
  138. MOV DPTR,#TAB3
  139. MOV R0,#00H
  140. LOOP2:MOV A,R0
  141. INC R0
  142. MOVC A,@A+DPTR
  143. SETB P2.6
  144. LCALL DELAY1
  145. CLR P2.5
  146. MOV P0,A
  147. SETB P2.7
  148. LCALL DELAY1
  149. CLR P2.7
  150. LCALL DELAY1
  151. DJNZ R2,LOOP2
  152. //查表指令
  153. CLR P2.6
  154. ACALL DELAY1
  155. CLR P2.5
  156. MOV P0,#98H
  157. LCALL DELAY1
  158. SETB P2.7
  159. LCALL DELAY1
  160. CLR P2.7
  161. LCALL DELAY1
  162. //設(shè)置DDRAM地址

  163. MOV R2,#15D
  164. MOV DPTR,#TAB4
  165. MOV R0,#00H
  166. LOOP3:MOV A,R0
  167. INC R0
  168. MOVC A,@A+DPTR
  169. SETB P2.6
  170. LCALL DELAY1
  171. CLR P2.5
  172. MOV P0,A
  173. SETB P2.7
  174. LCALL DELAY1
  175. CLR P2.7
  176. LCALL DELAY1
  177. DJNZ R2,LOOP3

  178. //查表指令

  179.             
  180. DELAY1:
  181. MOV  R7,#100   ;單周期指令(1us)
  182. D1:  
  183.   MOV  R6,#100  ;單周期指令(1us)        
  184.   DJNZ R6,[        DISCUZ_CODE_3        ]nbsp;     ;雙周期指令(2us)//該指令自身執(zhí)行R6次        
  185.   DJNZ R7,D1     ;雙周期指令(2us)//D1執(zhí)行R7次  
  186. RET
  187. END
復(fù)制代碼

以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
12864匯編教程.docx (2.48 MB, 下載次數(shù): 73)

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:262 發(fā)表于 2022-1-4 18:23 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

ID:996149 發(fā)表于 2022-1-7 18:53 | 顯示全部樓層
感謝admin
回復(fù)

使用道具 舉報

ID:1000958 發(fā)表于 2022-1-11 15:19 | 顯示全部樓層
太感謝了,之前看的12864都是有CS1、CS2接口的,這個是PSB真不錯
回復(fù)

使用道具 舉報

ID:612823 發(fā)表于 2022-5-22 12:49 | 顯示全部樓層
講的詳細(xì),新手感謝你
回復(fù)

使用道具 舉報

ID:996149 發(fā)表于 2022-12-30 00:08 | 顯示全部樓層
不好意思各位,現(xiàn)在我才發(fā)現(xiàn)我的代碼有問題
回復(fù)

使用道具 舉報

ID:996149 發(fā)表于 2022-12-30 00:10 | 顯示全部樓層
下面是改正過的代碼:
AJMP MAIN
TAB1:DB 041H,041H,041H,041H,041H,041H,041H,041H,041H,041H,03H,03H,03H,03H,041H,041H
TAB2: DB "祝大家圣誕快樂"

TAB3: DB "記得吃飯睡覺",05FH,06FH
TAB4: DB "小心啊啊啊啊",05FH,06FH            
//????????????,?????????
MAIN:
SETB P3.2
LCALL DELAY1
CLR  P3.3
LCALL DELAY1
SETB P3.3
LCALL DELAY1
//???
CLR P2.6
CLR P2.5
MOV P0,#30H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??#30H?????
CLR P2.7
CLR P2.6
LCALL DELAY1
CLR P2.5
MOV P0,#08H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??#08H???
CLR P2.7
CLR P2.6
LCALL DELAY1
CLR P2.5
MOV P0,#0CH
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??
CLR P2.7
CLR P2.6
LCALL DELAY1
CLR P2.5
MOV P0,#01H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//????
CLR P2.7
CLR P2.6
ACALL DELAY1
CLR P2.5
MOV P0,#80H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//????
CLR P2.7
CLR P2.6
LCALL DELAY1
CLR P2.5
MOV P0,#80H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??DDRAM??

CLR P2.7
SETB P2.6
ACALL DELAY1
CLR P2.5
MOV R2,#15D
MOV DPTR,#TAB1
LOOP:MOV A,R0
INC R0
MOVC A,@A+DPTR
SETB P2.6
LCALL DELAY1
CLR P2.5
MOV P0,A
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
DJNZ R2,LOOP
//????


CLR P2.6
ACALL DELAY1
CLR P2.5
MOV P0,#90H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??DDRAM??
MOV R2,#15D
MOV DPTR,#TAB2
MOV R0,#00H
LOOP1:MOV A,R0
INC R0
MOVC A,@A+DPTR
SETB P2.6
LCALL DELAY1
CLR P2.5
MOV P0,A
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
DJNZ R2,LOOP1
//????
CLR P2.6
ACALL DELAY1
CLR P2.5
MOV P0,#88H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??DDRAM??
MOV R2,#15D
MOV DPTR,#TAB3
MOV R0,#00H
LOOP2:MOV A,R0
INC R0
MOVC A,@A+DPTR
SETB P2.6
LCALL DELAY1
CLR P2.5
MOV P0,A
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
DJNZ R2,LOOP2
//????
CLR P2.6
ACALL DELAY1
CLR P2.5
MOV P0,#98H
LCALL DELAY1
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
//??DDRAM??

MOV R2,#15D
MOV DPTR,#TAB4
MOV R0,#00H
LOOP3:MOV A,R0
INC R0
MOVC A,@A+DPTR
SETB P2.6
LCALL DELAY1
CLR P2.5
MOV P0,A
SETB P2.7
LCALL DELAY1
CLR P2.7
LCALL DELAY1
DJNZ R2,LOOP3

//????

            
DELAY1:
MOV  R7,#10   ;?????(1us)
D1:  
  MOV  R6,#10  ;?????(1us)        
  DJNZ R6,$;     ;?????(2us)//???????R6?        
  DJNZ R7,D1     ;?????(2us)//D1??R7?  
RET
END
回復(fù)

使用道具 舉報

ID:1060196 發(fā)表于 2023-1-3 21:23 | 顯示全部樓層
講的詳細(xì),新手感謝你
回復(fù)

使用道具 舉報

ID:433219 發(fā)表于 2023-1-5 14:07 | 顯示全部樓層
asm+并行驅(qū)動,,,,沒啥玩的
回復(fù)

使用道具 舉報

ID:1057863 發(fā)表于 2023-1-13 09:52 | 顯示全部樓層
很棒啊,這匯編整的
回復(fù)

使用道具 舉報

ID:996149 發(fā)表于 2023-2-8 15:06 | 顯示全部樓層

謝謝
回復(fù)

使用道具 舉報

ID:424501 發(fā)表于 2024-12-11 15:44 | 顯示全部樓層
這教程寫的真詳細(xì)
回復(fù)

使用道具 舉報

ID:1139308 發(fā)表于 2024-12-11 21:49 | 顯示全部樓層
kdaodsi 發(fā)表于 2022-12-30 00:10
下面是改正過的代碼:
AJMP MAIN
TAB1:DB 041H,041H,041H,041H,041H,041H,041H,041H,041H,041H,03H,03H,0 ...

還是有3個錯誤啊
回復(fù)

使用道具 舉報

ID:1139308 發(fā)表于 2024-12-11 21:53 | 顯示全部樓層
kdaodsi 發(fā)表于 2022-12-30 00:10
下面是改正過的代碼:
AJMP MAIN
TAB1:DB 041H,041H,041H,041H,041H,041H,041H,041H,041H,041H,03H,03H,0 ...

不好意思復(fù)制錯了
回復(fù)

使用道具 舉報

ID:1139573 發(fā)表于 2024-12-12 20:12 | 顯示全部樓層
很詳細(xì)感謝大佬
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人午夜电影网 | 日韩视频在线一区 | 午夜视频大全 | 日韩 国产 在线 | 国产精品免费一区二区三区四区 | 国产精品精品视频一区二区三区 | 毛片免费观看视频 | 日韩在线精品强乱中文字幕 | 一区二区三区av | 99精品一区二区三区 | 亚洲一区二区视频 | 亚洲成人一区二区在线 | 欧美高清视频一区 | 亚洲一区二区三区高清 | 免费观看成人性生生活片 | 欧美亚洲一区二区三区 | 成人在线视频一区 | 久久高清免费视频 | 国产1区 | 99资源站 | 成人国产精品久久 | 激情五月激情综合网 | 亚洲成人一区二区三区 | 欧美a v在线 | 亚洲精品天堂 | 夜夜草 | hdfreexxxx中国妞 | 黄色香蕉视频在线观看 | 国产高清久久 | 欧美性吧 | 日韩视频在线播放 | 日本粉嫩一区二区三区视频 | 伊人色综合久久久天天蜜桃 | 日韩aⅴ在线观看 | 国产在线观看一区二区 | 欧美日韩在线视频一区二区 | 午夜视频网站 | 在线成人av| 日韩精品一区二区三区中文字幕 | 天天干天天草 | 成人在线视频网址 |