• 4

請問什麼是8051呀??

廣瀨康一 wrote:
這一科系以前是學什麼...(恕刪)


資管在我們學校包含
Web-Based的程式設計
JAVA或是C++
Server架設與管理
SQL+Data Mining+Data warehousing等
專案管理
產、銷、人、發、財的管理
動畫製作與實務
統計、會計
...
等等
你玩得動嗎?想太多wwwww
Stallings wrote:
不知道 8051 有沒有被取代的趨勢(恕刪)

短期內(10年內)應該取代不了,
大概只會增加新功能或修改成更快速的品種,
原先12clk = 1 Instruction cycle的設計真的是太慢了,
現在好像不少家的ASIC內包含1clk Instruction cycle的IP,
目前使用者太多了,要被取代不太可能.
感謝各位回答~~我大概有個概念了~~是一個單晶片~~然後可以用C語言寫~~應該可以把他當作是C語言的應用~~只是不同領域吧??可以用C++嗎?

FOR:Stallings~~還好你沒跳槽到資管~~應該說是我太混~~當完兵半年下來都在學東西~~以前大學沒學好~~只能怪自己
讀資工寫程式,邏輯概念,網路概念跟我們這些只喜歡跟妹一起修課的人比~~就是有差


C語言跟C++ 就是機器語言
要對單晶片指示動作指令 就是要會C語言 C++

就像到了美國總要會幾樣英文,才能在當地吃喝玩樂
愛喝烏龍茶的熊 wrote:
C語言跟C++ 就是...(恕刪)


C語言跟C++ 並不是機器語言, 組合語言才是.
早期8051只能用組語, 用C已經是後期的事情了.
現在要求機器效率的專案還是會用組語開發8051.

MCU51到目前的功能已經被擴張的十分強大, 跟一般學校所教的51大不相同,
開發所用的語言跟環境也是根據廠商都各有不同, 簡單說就是各式各樣.
唯一的共通就是 光用C是一定不夠的, 想用好51最終都還是要熟練組語.
失去座標的青春,能不能回到夢最起初的地方?
mirage wrote:
一開始就是由無敵的霹靂..霹靂燈做為起點..

別小看這是"夥計 "霹靂車的重要零件。


愛喝烏龍茶的熊 wrote:
現學校跟外面的也差太大了
完全不一樣,真懷疑學校收錢收怎麼多,設備卻都是最最最 基本

學校本來就是給基本,要進階只能到職場或自己學,難一點的連老師都不懂。懂的話就不會來當老師了。
但懂了之後就去當老闆了...

clintonlow wrote:
資管系學很雜

這是管理學科所以 每種都要懂一點皮毛,但是實際都不會


Stallings wrote:
以前唸書 (唸資工) 時,曾有一度越唸越賭爛,想轉資管

太可惜!通常好人是念資工, 陽光男孩會去念資管玩幾年。

資工是給好人念的。

Deray Xu wrote:
唯一的共通就是 光用C是一定不夠的, 想用好51最終都還是要熟練組語.

補充還有basic compiler 可以幫忙。
這個系列種族太多。
Deray Xu wrote:


C語言跟C++ ...(恕刪)


沒錯!!寫8051要寫組合語言較有效率,但是組語卻是很難懂的
強者我同學寫DSP很強,但是一拿到我用組語寫的8051程式,就搖頭說看不懂...
組語對版主來說應該有點難,所以還是由妳所熟悉的C語言去寫會比較好

以下是我以前寫的程式,功能是8051跟電腦RS232連接,在VB裡面秀數值,在VB裡面在數字則由8051秀在LED上
可以進階做出遠端控制的功能,如果能力不夠,大概看沒幾行就頭昏了
ORG 000H
JMP START
ORG 023H
JMP UARTINT
START:
MOV TMOD,#00100000B ;設定工作模式
ANL PCON,#01111111B ;設定包率為9600
MOV TH1,#0FDH ;
SETB TR1 ;
MOV SCON,#01010000B
MOV IE,#10010000B ;允許串列產生中斷
LOOP:
MOV A,#01111111B ;PORT0為LED
MOV R3,#038H ;38H傳回電腦ASCII碼顯示為8
MOV SBUF,R3 ;在8051裡面SBUF唯一個串列暫存器,寫入,讀取都從此使用
MOV P0,A ;初始狀態為PORT0.0亮
ACALL DELAY1 ;DELAY
WAIT:
JNB P2.0,MAIN ;檢查是否PORT2.8按鍵是否按下
AJMP WAIT
MAIN:
MOV R5,#1
ACALL DELAY1
JNB P2.0,OK ;再次檢查為了怕雜訊干擾
AJMP WAIT
OK:
RR A ;如果真的按下就右旋
DEC R3 ;R3-1,變成037H
MOV SBUF,R3
MOV P0,A
ACALL DELAY1
CJNE R3,#031H,RELEASE ;右旋到PORT0.7後在重頭開始
AJMP LOOP
RELEASE:JB P2.0,WAIT
JMP RELEASE
DELAY1:
MOV R6,#30
D11: MOV R7,#200
DJNZ R7,$
DJNZ R6,D11
DJNZ R5,DELAY1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
UARTINT: ;串列中斷
PUSH PSW
PUSH ACC
SETB RS0
CLR RS1
JBC RI,RECEIEVINT
CLR TI
SJMP RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RECEIEVINT:
MOV R1,SBUF ;把SBUF丟給R1,從VB接收訊號回來
CJNE R1,#041H,AAA ;判斷R1是否為041H,式的話跳到AAA,當VB表單按下A時,他傳出來的ASCII碼為041H
MOV R5,#10
MOV A,#088H ;088H給ACC
CPL A ;反向
MOV P1,A ;ACC丟給PORT1七段顯示器顯示A
MOV SBUF,R1 ;傳回去給VB做確認
ACALL DELAY ;DELAY
AJMP RETURN ;跳到RETURN,準備跳出串列中斷
AAA: CJNE R1,#042H,BBB ;判斷R1是否為042H,式的話跳到BBB,當VB表單按下B時,他傳出來的ASCII碼為042H
MOV R5,#10
MOV A,#083H ;083H給ACC
CPL A
MOV P1,A ;ACC丟給PORT1七段顯示器顯示B
MOV SBUF,R1 ;傳回去給VB做確認
ACALL DELAY
AJMP RETURN ;跳到RETURN,準備跳出串列中斷
BBB: CJNE R1,#043H,CCC ;判斷R1是否為043H,式的話跳到CCC,當VB表單按下C時,他傳出來的ASCII碼為043H
MOV R5,#10
MOV A,#0A7H ;0A7H給ACC
CPL A
MOV P1,A ;ACC丟給PORT1七段顯示器顯示C
MOV SBUF,R1 ;傳回去給VB做確認
ACALL DELAY
AJMP RETURN ;跳到RETURN,準備跳出串列中斷
CCC: CJNE R1,#044H,RECEIEVINT;判斷R1是否為044H,當VB表單按下D時,他傳出來的ASCII碼為044H
MOV R5,#10
MOV A,#0A1H ;0A1H給ACC
CPL A
MOV P1,A ;ACC丟給PORT1七段顯示器顯示D
MOV SBUF,R1 ;傳回去給VB做確認
ACALL DELAY
AJMP RETURN ;跳到RETURN,準備跳出串列中斷
DELAY:
MOV R6,#30
D1: MOV R7,#200
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,DELAY
RET

RETURN:
POP ACC
POP PSW
RETI
END
Deray Xu wrote:
(恕刪)....
早期8051只能用組語, 用C已經是後期的事情了.
現在要求機器效率的專案還是會用組語開發8051.
(恕刪)....


上面這個說法可能會誤導初學者

不管是早期的51還是現在的51,都只能執行機械碼
現在有C語言可用只是因為有廠商開發在51下的C編譯器

至於assembly好還是C好,只要能達到目地,都好

sochin wrote:
沒錯!!寫8051要...(恕刪)


主要也是要有學作組語才看的懂,

就跟沒學過C就叫他看程式碼一樣,

  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?