標(biāo)題: 再談我對(duì)單片機(jī)編程的理解 [打印本頁(yè)]

作者: 海闊天空8    時(shí)間: 2019-1-25 21:34
標(biāo)題: 再談我對(duì)單片機(jī)編程的理解
要對(duì)單片機(jī)寫入程序必須要有“地址”(就是寫在哪里的問(wèn)題),還要有數(shù)據(jù)(也就是程序的組成部分),還要能變化不同的地址(例如二進(jìn)位的0001,0010,0011,,,)還要有數(shù)據(jù)寫入后的固定。最后寫入程序的讀出要有時(shí)序控制(有節(jié)奏的輸出寫入的程序)。

作者: wc86110    時(shí)間: 2019-1-26 00:35
樓主需要找的是這貨么,好像市面上很難找到現(xiàn)貨,要玩轉(zhuǎn)它還需下點(diǎn)功夫

作者: yzwzfyz    時(shí)間: 2019-1-26 08:55
六不搭對(duì)!
計(jì)算機(jī)含單片機(jī),是由眾多的邏輯電路構(gòu)成,
邏輯電路是:對(duì)應(yīng)于一組輸入就產(chǎn)生一組輸出(狹義的)。
CPU會(huì)沿既定的路徑(存儲(chǔ)區(qū))依序取出數(shù)據(jù)(指令),并把這個(gè)數(shù)據(jù)看成是邏輯電路的“輸入”【取指】,于出就產(chǎn)生出一組“輸出”【執(zhí)行】,也就是“取指”與“執(zhí)行”。
做完一組再取下一組,永遠(yuǎn)不息直至掉電(沒(méi)有休眠,休眠可以看作是時(shí)鐘頻率=0,實(shí)際上也是這么做的:休眠是切斷了時(shí)鐘通道)。
所謂【編程】:就是將特定的、有目的代碼(可以認(rèn)為是數(shù)據(jù)、可以認(rèn)為是指令、其實(shí)就是0101……這樣一串串的字節(jié))有序放在CPU要取指的路徑上(對(duì)于51單片機(jī)來(lái)說(shuō),就是從0000H單元開(kāi)始的程序區(qū)),讓CPU一條一條的取指執(zhí)行。
用任何語(yǔ)言寫的程序,最終都會(huì)被編譯平臺(tái)(如:KELL)翻譯成這樣的代碼,放入(以51為例)從0000H開(kāi)始的存儲(chǔ)區(qū)中。
明白這個(gè)道理,就會(huì)知道:C語(yǔ)言為何必須要知道是采用的什么芯片了,實(shí)際就是告訴平臺(tái),讓它按照用什么指令,放在什么地方。(不同的類型的單片機(jī),指令系統(tǒng)可能不同,程序的也可能起點(diǎn)不同。)
作者: w1179benp    時(shí)間: 2019-1-26 10:10
坐地板上聽(tīng)課..................
作者: #include51.h    時(shí)間: 2019-1-26 12:35
你對(duì)單片機(jī)還處在一種入門級(jí)的認(rèn)識(shí)中,當(dāng)你后面接觸更多的類型的單位片機(jī),你的認(rèn)識(shí)就會(huì)加深。如果認(rèn)大家現(xiàn)在就給你定一個(gè)認(rèn)識(shí)標(biāo)準(zhǔn)都 是不合理的。因?yàn)榇蠹覍W(xué)的用的單片機(jī)各不相同,光論壇里就的51,PIC,AVR,
STM.不在上面的有合泰,義隆,松翰,NEC等等。每家都有自身的特點(diǎn)
作者: wc86110    時(shí)間: 2019-1-26 15:53
樓主說(shuō)的這貨屬于網(wǎng)友們說(shuō)的“上古時(shí)期”產(chǎn)物,成本低但電路復(fù)雜且還需自制,關(guān)鍵是沒(méi)點(diǎn)基礎(chǔ)還真的玩不轉(zhuǎn)
能把玩的也就早期幾款芯片有點(diǎn)雞肋,真是實(shí)力派看不上而土豪金又不屑一顧的物色
缺的是有意愿又有動(dòng)手能力的玩家

作者: 海闊天空8    時(shí)間: 2019-1-26 16:46
yzwzfyz 發(fā)表于 2019-1-26 08:55
六不搭對(duì)!
計(jì)算機(jī)含單片機(jī),是由眾多的邏輯電路構(gòu)成,
邏輯電路是:對(duì)應(yīng)于一組輸入就產(chǎn)生一組輸出(狹義 ...

“用任何語(yǔ)言寫的程序,最終都會(huì)被編譯平臺(tái)(如:KELL)翻譯成這樣的代碼,放入(以51為例)從0000H開(kāi)始的存儲(chǔ)區(qū)中!----------也就是說(shuō)單片機(jī)只能識(shí)別0和1呀!這不就完了嗎?我就是要用0和1和它對(duì)話。
作者: wc86110    時(shí)間: 2019-1-26 18:25
海闊天空8 發(fā)表于 2019-1-26 16:46
“用任何語(yǔ)言寫的程序,最終都會(huì)被編譯平臺(tái)(如:KELL)翻譯成這樣的代碼,放入(以51為例)從0000H開(kāi)始 ...

看樣子樓主已有更好更新解決途徑和辦法了,能不能和大伙們分享一下
作者: angmall    時(shí)間: 2019-1-26 23:20
海闊天空8 發(fā)表于 2019-1-26 16:46
“用任何語(yǔ)言寫的程序,最終都會(huì)被編譯平臺(tái)(如:KELL)翻譯成這樣的代碼,放入(以51為例)從0000H開(kāi)始 ...

        這程序翻譯成這樣的代碼用0和1 你能識(shí)別用什么指令嗎?
        0b01110101, 0b10110000, 0b00000000,
        0x01111001, 0b11111111,
        0b01111000, 0b11111111,
        0b11011000, 0b11111110,
        0b11011001, 0b11111100,
        0b01110101, 0b10110000, 0b00000001,
        0x01111001, 0b11111111,
        0b01111000, 0b11111111,
        0b11011000, 0b11111110,
        0b11011001, 0b11111100,
        0b10000000, 0b11101000
       


匯編語(yǔ)言編程


start:  mov   0xb0, #0x00     ; //I/O P3.0 口特殊功能寄存器
l1:     mov   r1, #0xff       ;   延時(shí)程序 ;向R1寄存器中載入十六進(jìn)制數(shù)FFH
        mov   r0, #0xff        ;向R0寄存器中載入十六進(jìn)制數(shù)FFH
l2:     djnz  r0, l2
        djnz  r1, l1
        mov   0xb0, #0x01
l3:     mov   r1, #0xff       ;   延時(shí)程序 ;向R1寄存器中載入十六進(jìn)制數(shù)FFH      
        mov   r0, #0xff        ;向R0寄存器中載入十六進(jìn)制數(shù)FFH
l4:     djnz  r0, l4
        djnz  r1, l3
        sjmp  start    ;/ 跳start執(zhí)行循環(huán)體





對(duì)應(yīng)的匯編程序翻譯成這樣的代碼
    0x75, 0xb0, 0x00, // mov 0xb0, 0x00
    0x79, 0xff,       // mov r1, 0x10
    0x78, 0xff,       // mov r0, 0xff
    0xd8, 0xfe,       // djnz r0, -2
    0xd9, 0xfc,       // djnz r1, -4
    0x75, 0xb0, 0x01, // mov  0xb0, 0x01
    0x79, 0xff,       // mov r1, 0x10
    0x78, 0xff,       // mov r0, 0xff
    0xd8, 0xfe,       // djnz r0, -2
    0xd9, 0xfc,       // djnz r1, -4   
    0x80, 0xe8,       // sjmp   -24


作者: 海闊天空8    時(shí)間: 2019-1-27 10:50
angmall 發(fā)表于 2019-1-26 23:20
這程序翻譯成這樣的代碼用0和1 你能識(shí)別用什么指令嗎?
        0b01110101, 0b10110000, 0b00000000,
        0x011 ...

我不懂
作者: 海闊天空8    時(shí)間: 2019-1-27 10:53
wc86110 發(fā)表于 2019-1-26 18:25
看樣子樓主已有更好更新解決途徑和辦法了,能不能和大伙們分享一下

我理解這就是用0和1與單片機(jī)對(duì)話的辦法,可是我不懂:

編程步驟.jpg (929.92 KB, 下載次數(shù): 63)

編程步驟.jpg

作者: wc86110    時(shí)間: 2019-1-27 13:44
海闊天空8 發(fā)表于 2019-1-27 10:53
我理解這就是用0和1與單片機(jī)對(duì)話的辦法,可是我不懂:

被樓主整成小白了
作者: yoxi    時(shí)間: 2019-1-27 18:20
wc86110 發(fā)表于 2019-1-27 13:44
被樓主整成小白了

同一個(gè)不想下水的人談?dòng)斡揪褪浅叮?hr noshade size="2" width="100%" color="#808080"> 作者: 海闊天空8    時(shí)間: 2019-1-28 19:05
yoxi 發(fā)表于 2019-1-27 18:20
同一個(gè)不想下水的人談?dòng)斡揪褪浅叮?/blockquote>

不對(duì)!單片機(jī)就得先下水,你們都上岸了,忘了水下了。^_^,,,,,,,,,,,
作者: shuisheng60    時(shí)間: 2019-1-28 21:43
下什么水了、你去看數(shù)模電路教程,單片機(jī)教程,C語(yǔ)言教程了么......?整天的在那里糾結(jié)對(duì)單片機(jī)的理解。
作者: 海闊天空8    時(shí)間: 2019-1-29 08:54
shuisheng60 發(fā)表于 2019-1-28 21:43
下什么水了、你去看數(shù)模電路教程,單片機(jī)教程,C語(yǔ)言教程了么......?整天的在那里糾結(jié)對(duì)單片機(jī)的理解。

怎么就沒(méi)遇到一位能講明白硬件如何接線的呢!什么C語(yǔ)言?C語(yǔ)言不也是單片機(jī)出現(xiàn)以后才有的嗎?沒(méi)有C語(yǔ)言單片機(jī)就不能動(dòng)了嗎?
作者: shuisheng60    時(shí)間: 2019-1-29 17:35
接線去看模電數(shù)電。C語(yǔ)言真不是單片機(jī)出現(xiàn)以后才有!你有這功夫用在該用的地方。
作者: 海闊天空8    時(shí)間: 2019-1-29 18:14
shuisheng60 發(fā)表于 2019-1-29 17:35
接線去看模電數(shù)電。C語(yǔ)言真不是單片機(jī)出現(xiàn)以后才有!你有這功夫用在該用的地方。

C語(yǔ)言真不是單片機(jī)出現(xiàn)以后才有!那C語(yǔ)言在單片機(jī)之前是干什么的?
作者: angmall    時(shí)間: 2019-1-29 20:17
海闊天空8 發(fā)表于 2019-1-29 18:14
C語(yǔ)言真不是單片機(jī)出現(xiàn)以后才有!那C語(yǔ)言在單片機(jī)之前是干什么的?

C語(yǔ)言在單片機(jī)之前是編程大型計(jì)算機(jī)的.
作者: 海闊天空8    時(shí)間: 2019-1-29 21:45
angmall 發(fā)表于 2019-1-29 20:17
C語(yǔ)言在單片機(jī)之前是編程大型計(jì)算機(jī)的.

還是先有計(jì)算機(jī)呀
作者: angmall    時(shí)間: 2019-1-30 07:27
海闊天空8 發(fā)表于 2019-1-29 21:45
還是先有計(jì)算機(jī)呀

沒(méi)有人之前,還有誰(shuí)會(huì)說(shuō)人話。
作者: 佛云    時(shí)間: 2019-1-30 09:24
海闊天空8 發(fā)表于 2019-1-26 16:46
“用任何語(yǔ)言寫的程序,最終都會(huì)被編譯平臺(tái)(如:KELL)翻譯成這樣的代碼,放入(以51為例)從0000H開(kāi)始 ...

曾經(jīng),我遇見(jiàn)一個(gè)奇人,小學(xué)都沒(méi)畢業(yè),憑著自己對(duì)單片機(jī)的愛(ài)好執(zhí)著,寫程序只用機(jī)器碼(16進(jìn)制)就搞定,一般51單片機(jī)的燒錄文件(bin文件),不用反匯編,直接在bin文件上修改代碼添加功能.看來(lái)這位兄臺(tái)想走這條路了,加油
作者: zl2168    時(shí)間: 2019-1-30 12:04
鉆牛角尖!若你是個(gè)聰明人,鉆鉆也罷!若你不是個(gè)聰明人,就是浪費(fèi)時(shí)間!
作者: 海闊天空8    時(shí)間: 2019-1-30 15:07
本帖最后由 海闊天空8 于 2019-1-30 15:31 編輯
angmall 發(fā)表于 2019-1-30 07:27
沒(méi)有人之前,還有誰(shuí)會(huì)說(shuō)人話。

您說(shuō)得沒(méi)錯(cuò)!有人之后才有得人話,很多不同種類的話,C語(yǔ)言也差不多是這個(gè)意思,但C語(yǔ)言絕不是唯一的和計(jì)算機(jī)對(duì)話的語(yǔ)言,,,,,,,,我的辦法更直觀:就像手指著一個(gè)蘋果說(shuō)“蘋果”(中文),APPLE(外文),XXXX(他國(guó)文字),,,“蘋果”也好,“APPLE”也好,“XXXX”也好都是和嘴對(duì)話(吃)的!^_^,,,,,,,,,,,
作者: 海闊天空8    時(shí)間: 2019-1-30 15:10
佛云 發(fā)表于 2019-1-30 09:24
曾經(jīng),我遇見(jiàn)一個(gè)奇人,小學(xué)都沒(méi)畢業(yè),憑著自己對(duì)單片機(jī)的愛(ài)好執(zhí)著,寫程序只用機(jī)器碼(16進(jìn)制)就搞定,一般51 ...

您說(shuō)的大概就是這個(gè)意思吧!我時(shí)間不多了,不學(xué)什么C語(yǔ)言了,就想用0和1(電位的H,L)對(duì)單片機(jī)的引腳進(jìn)行交流,,,,,,,,
作者: 海闊天空8    時(shí)間: 2019-1-30 15:11
zl2168 發(fā)表于 2019-1-30 12:04
鉆牛角尖!若你是個(gè)聰明人,鉆鉆也罷!若你不是個(gè)聰明人,就是浪費(fèi)時(shí)間!

^_^,我現(xiàn)在有的就是時(shí)間!希望有高人把話說(shuō)明白(哪跟哪接不就完了嗎?繞不完的圈子還真是浪費(fèi)時(shí)間。
作者: 海闊天空8    時(shí)間: 2019-1-30 15:24
yzwzfyz 發(fā)表于 2019-1-26 08:55
六不搭對(duì)!
計(jì)算機(jī)含單片機(jī),是由眾多的邏輯電路構(gòu)成,
邏輯電路是:對(duì)應(yīng)于一組輸入就產(chǎn)生一組輸出(狹義 ...

您說(shuō)得太專業(yè)!還是聽(tīng)不懂。謝謝,真的謝謝。
作者: 海闊天空8    時(shí)間: 2019-1-30 15:40
yzwzfyz 發(fā)表于 2019-1-26 08:55
六不搭對(duì)!
計(jì)算機(jī)含單片機(jī),是由眾多的邏輯電路構(gòu)成,
邏輯電路是:對(duì)應(yīng)于一組輸入就產(chǎn)生一組輸出(狹義 ...

我承認(rèn)我對(duì)基礎(chǔ)知識(shí)一知半解(半解也不到),邏輯電路還有時(shí)序邏輯電路吧?好像是“對(duì)應(yīng)一組輸入不一定有一組輸出”?是這個(gè)意思嗎?您下面的我一點(diǎn)也不懂了,,,,,,
作者: 海闊天空8    時(shí)間: 2019-1-30 15:44
shuisheng60 發(fā)表于 2019-1-28 21:43
下什么水了、你去看數(shù)模電路教程,單片機(jī)教程,C語(yǔ)言教程了么......?整天的在那里糾結(jié)對(duì)單片機(jī)的理解。

我就是想用0和1于單片機(jī)對(duì)話。在一定的各引腳設(shè)置成特定電位狀態(tài)下,向哪些引腳加上什么電位,怎么寫入0和1的問(wèn)題,,,,,,,,,,
作者: angmall    時(shí)間: 2019-1-30 16:57
海闊天空8 發(fā)表于 2019-1-27 10:50
我不懂

因?yàn)槿藗儾欢脵C(jī)器語(yǔ)言0和1代碼和它(計(jì)算機(jī))對(duì)話,所以使用了匯編語(yǔ)言, c語(yǔ)言 來(lái)編程
你要用0和1和它對(duì)話。你就要懂機(jī)器語(yǔ)言用0和1的代碼。
作者: hello_liu    時(shí)間: 2019-1-30 21:05
對(duì)單片機(jī)還處在一種入門級(jí)的認(rèn)識(shí)中,當(dāng)你后面接觸更多的類型的單位片機(jī),你的認(rèn)識(shí)就會(huì)加深。如果認(rèn)大家現(xiàn)在就給你定一個(gè)認(rèn)識(shí)標(biāo)準(zhǔn)都 是不合理的。加油!
作者: 鉆牛尖滴劉尖尖    時(shí)間: 2019-1-30 22:12
本帖最后由 鉆牛尖滴劉尖尖 于 2019-1-31 05:03 編輯

努力!努力!再努力!努力........地鉆下去!
作者: sheng7533967    時(shí)間: 2019-1-30 22:24
圍觀圍觀,靖彩的獨(dú)角戲!戲別停!
作者: 站著說(shuō)話不腰疼    時(shí)間: 2019-2-18 23:17
這是關(guān)于二進(jìn)制的好話題,續(xù)繼..................
作者: wushiye54    時(shí)間: 2019-2-22 19:56
兄弟,建議多看看相關(guān)的書再學(xué)單片機(jī)吧
作者: static    時(shí)間: 2019-2-22 23:48
wushiye54 發(fā)表于 2019-2-22 19:56
兄弟,建議多看看相關(guān)的書再學(xué)單片機(jī)吧

樓主只是感興趣,在家維修個(gè)家電,有經(jīng)濟(jì)來(lái)源,單片機(jī)完全是好玩而己,勸多了也皮了。
作者: 海闊天空8    時(shí)間: 2019-2-23 21:53
static 發(fā)表于 2019-2-22 23:48
樓主只是感興趣,在家維修個(gè)家電,有經(jīng)濟(jì)來(lái)源,單片機(jī)完全是好玩而己,勸多了也皮了。

為什么不少人都把單片機(jī)神秘化了?包括寫書的!怎么就不會(huì)說(shuō)明白話呢?小孩子都能玩單片機(jī),大人們卻說(shuō)不了明白話。
作者: wc86110    時(shí)間: 2019-2-24 03:56
海闊天空8 發(fā)表于 2019-2-23 21:53
為什么不少人都把單片機(jī)神秘化了?包括寫書的!怎么就不會(huì)說(shuō)明白話呢?小孩子都能玩單片機(jī),大人們卻說(shuō)不 ...

樓主抱怨啥呢,做個(gè)換顱手術(shù)不就能秒懂了么

作者: 海闊天空8    時(shí)間: 2019-2-24 08:38
static 發(fā)表于 2019-2-22 23:48
樓主只是感興趣,在家維修個(gè)家電,有經(jīng)濟(jì)來(lái)源,單片機(jī)完全是好玩而己,勸多了也皮了。

懂不懂與我沒(méi)什么實(shí)際意義了。算精神生活的組成吧。矛盾之所以存在主要是雙方?jīng)]有“交集”,我問(wèn)我的你答你的距離較遠(yuǎn),還會(huì)產(chǎn)生誤解,確有隔靴搔癢之感,,,,,,,,,,,,,
作者: Sawardeakar    時(shí)間: 2019-2-24 17:37
海闊天空8 發(fā)表于 2019-2-23 21:53
為什么不少人都把單片機(jī)神秘化了?包括寫書的!怎么就不會(huì)說(shuō)明白話呢?小孩子都能玩單片機(jī),大人們卻說(shuō)不 ...

跟不下水的人談水就是扯唄
作者: 春風(fēng)十里吹    時(shí)間: 2019-2-24 18:38
wc86110 發(fā)表于 2019-1-27 13:44
被樓主整成小白了

被小白套路成大白




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