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

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

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

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

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

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

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

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


匯編語言編程


start:  mov   0xb0, #0x00     ; //I/O P3.0 口特殊功能寄存器
l1:     mov   r1, #0xff       ;   延時程序 ;向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       ;   延時程序 ;向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)體





對應(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    時間: 2019-1-27 10:50
angmall 發(fā)表于 2019-1-26 23:20
這程序翻譯成這樣的代碼用0和1 你能識別用什么指令嗎?
        0b01110101, 0b10110000, 0b00000000,
        0x011 ...

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

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

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

編程步驟.jpg

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

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

同一個不想下水的人談游泳就是扯!
作者: 海闊天空8    時間: 2019-1-28 19:05
yoxi 發(fā)表于 2019-1-27 18:20
同一個不想下水的人談游泳就是扯!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

被小白套路成大白




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