標(biāo)題: 我建議初學(xué)者學(xué) 51單片機(jī)直接使用三總線接法,暫時(shí)不要學(xué)模擬接口 [打印本頁(yè)]

作者: lyonkon    時(shí)間: 2022-3-5 01:00
標(biāo)題: 我建議初學(xué)者學(xué) 51單片機(jī)直接使用三總線接法,暫時(shí)不要學(xué)模擬接口
      我學(xué)習(xí)51單片機(jī)很長(zhǎng)時(shí)間了,C語(yǔ)言學(xué)廢了。轉(zhuǎn)學(xué)匯編,現(xiàn)在能用匯編語(yǔ)言實(shí)現(xiàn)一些簡(jiǎn)單的想法。比較之前學(xué)C語(yǔ)言的時(shí)候,像1602lcd用模擬端口接法,既要延時(shí) 又要寫寫數(shù)據(jù)程序 寫指令程序。很麻煩,       我C語(yǔ)言沒學(xué)下去在lcd顯示控制這方面卡了好長(zhǎng)時(shí)間,以至于沒有機(jī)會(huì)做想做的東西,整天消耗在控制硬件上失敗再調(diào)試 再失敗再調(diào)試。真正的算法沒來(lái)得及應(yīng)用,已經(jīng)被模擬端口操作整的暈頭轉(zhuǎn)向。     51單片機(jī)可以用三總線模式,接lcd1602就像圖上那樣,編程的時(shí)候根本不需要考慮什么時(shí)序 什么延時(shí) 和寫數(shù)據(jù)指令。數(shù)據(jù)直接塞進(jìn)去就顯示。不是很好嗎。模擬總線操作真的讓人感到痛苦。特別是新手。
      像18b20 這些單總線器件 更是讓人難受,當(dāng)你學(xué)會(huì)這些器件操作的時(shí)候,你當(dāng)初學(xué)習(xí)單片機(jī)的想法 目的 激情,可能已經(jīng)消散殆盡。

      作為初學(xué)者,我真正經(jīng)歷這種痛苦。我不想再在控制時(shí)序方面折磨自己。

       所以,我對(duì)初學(xué)者的建議是,直接使用8位并口器件接P0口,用控制三總線法 來(lái)控制器件  盡量不使用需要模擬端口的器件。
       這樣你可以集中精神在算法 邏輯 功能上 ,這樣學(xué)起來(lái)會(huì)更好。

無(wú)標(biāo)題.jpg (57.86 KB, 下載次數(shù): 55)

無(wú)標(biāo)題.jpg

作者: GEECGYJ    時(shí)間: 2022-3-5 08:24
LCD1602也可以用I2C轉(zhuǎn)接模塊驅(qū)動(dòng),兩個(gè)I/0就可以了!
作者: xiexugang    時(shí)間: 2022-3-5 08:54
接口信號(hào)時(shí)序都是基礎(chǔ)的知識(shí),稍加練習(xí),都容易掌握的.
作者: a399288395    時(shí)間: 2022-3-5 14:00
與C和匯編沒有關(guān)系; 對(duì)于各種周邊外設(shè), 首先自己仔細(xì)的把時(shí)序圖理清楚,51 本來(lái)就是通過IO口模擬各種時(shí)序, 如果時(shí)序都搞不懂, 我想你搞匯編一樣也搞不明白;
作者: lyonkon    時(shí)間: 2022-3-6 08:44
比如用總線法接LCD1602.
要在80H地址顯示字符A,
MOV R1,80H    ;80H值傳遞給R1
MOV A,0X41     ;0X41傳遞給累加器
MOVX @R1,A    ;將0x41傳遞到片外80H地址
end
用匯編總共用3句話,
用C語(yǔ)言應(yīng)該更簡(jiǎn)單      
片外尋址指令   80H   =  "A";
只用一句話。
這樣可以讓新手直接針對(duì)數(shù)據(jù)和算法和目標(biāo), 而不是針對(duì)硬件
作者: 風(fēng)158    時(shí)間: 2022-3-6 10:02
LCD1602是常用模塊,有現(xiàn)成驅(qū)動(dòng)程序,搬過來(lái)嵌入主程序就行。增加硬件不麻煩嗎?
作者: hp34401a    時(shí)間: 2022-3-8 17:55
呵呵,我覺得LZ還是初學(xué)者。。。
作者: auxccc    時(shí)間: 2022-3-9 18:40
我只會(huì)C呢,和你相反。
作者: datouyuan    時(shí)間: 2022-3-11 08:44
lyonkon 發(fā)表于 2022-3-6 08:44
比如用總線法接LCD1602.
要在80H地址顯示字符A,
MOV R1,80H    ;80H值傳遞給R1

新手就不需要知道函數(shù)嗎?(匯編叫子程序,C叫函數(shù))
不管是總線法,還是接口法,甚至更換MCU,都可以封裝成同一個(gè)函數(shù)lcd1602_write(cmd,dat).
這才是讓新手“直接針對(duì)數(shù)據(jù)和算法和目標(biāo)”的正確方式。
作者: 君工創(chuàng)    時(shí)間: 2022-3-11 09:27
其實(shí)學(xué)單片機(jī),串口.并口都要學(xué)。這是基礎(chǔ)。我使用12864一直都是使用串口,為了節(jié)省IO口。還沒用過并口。
作者: myemcu    時(shí)間: 2022-3-11 10:05
你選擇了Intel時(shí)序。
作者: lyonkon    時(shí)間: 2022-3-14 10:40
myemcu 發(fā)表于 2022-3-11 10:05
你選擇了Intel時(shí)序。

你說(shuō)之前我還不知道有Intel時(shí)序,現(xiàn)在我知道了
作者: 一事無(wú)成    時(shí)間: 2022-3-15 23:04
只會(huì)C,表示單總線確實(shí)難搞,主要是延時(shí)不準(zhǔn),I2C倒是用的挺順手。
作者: rsx9583    時(shí)間: 2022-3-16 08:30
我感覺我就沒樓主遇到的這些問題,因?yàn)槲叶际浅瓌e人的程序




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1