我是剛學應用電子的,剛微控制器,但要程式設計,我C語言不會,所以請教一下我需要什麼樣的C語言書

時間 2022-03-13 06:10:21

1樓:匿名使用者

《c程式設計》第

二、三版,譚浩強,清華大學出版社

這是通用的教材 ,你可以看下

2樓:陳學陽

org 0000h

ljmp start

org 001bh ;int t1 入口地址

ljmp int_t1

org 0080h

start:

mov sp,#60h

mov 30h,#0

mov 31h,#0

mov 32h,#0

mov 33h,#0

mov 34h,#0

mov 35h,#0

mov 36h,#0

mov 37h,#0

mov r3,#0h ;時

mov r2,#0h ;分

mov r1,#0h ;秒

mov r6,#0h ;標誌

mov r7,#0h ;標誌

mov 38h,#0h ;標誌

mov 39h,#0h ;標誌

mov tmod,#10h

mov tl1,#00h ;50 ms 的時間常數

mov th1,#04ch

mov r0,#10

mov r4,#2

setb p2.7

setb tr1

setb et1

setb ea ;允許中斷

loop:

lcall scankey

cjne r7,#0ffh,wait1

lcall display2

sjmp loop

wait1:

cjne r6,#0ffh,wait

lcall display1

mov 34h,30h

mov 35h,31h

mov 36h,32h

mov 37h,33h

sjmp loop

wait:

lcall display

sjmp loop

int_t1: ;int_t1中斷服務子程式

push dph ;保護現場

push dpl

push acc

push psw

clr tr1

mov tl1,#00h ;50ms 定時常數

mov th1,#4ch

setb tr1

djnz r4,exit1

mov r4,#2

mov a,30h

cjne a,#09h,s0

mov 30h,#0

mov a,31h

cjne a,#9h,s1

mov 31h,#0h

mov a,32h

cjne a,#9h,s2

mov 32h,#0h

mov a,33h

cjne a,#9h,s3

mov 33h,#0h

s3:mov a,33h

add a,#1

mov 33h,a

s2:mov a,32h

add a,#1

mov 32h,a

s1:mov a,31h

add a,#1

mov 31h,a

s0:mov a,30h

add a,#1

mov 30h,a

djnz r0,exit1 ;判斷毫秒=0

mov r0,#10 ;delay 1 second

cpl p2.7

mov a,38h

cjne a,#0ffh,next1

ljmp hour1

next1:

mov a,39h

cjne a,#0ffh,next2

ljmp minute1

next2: cjne r1,#59h,second ;判斷秒=59

mov r1,#99h

minute1:cjne r2,#59h,minute ;判斷分=59

mov r2,#99h

hour1:cjne r3,#23h,hour ;判斷時=23

mov r3,#99h

hour:

mov a,r3

add a,#1 ;時加1

da a

mov r3,a

mov a,38h

cjne a,#00,exit1

minute:

mov a,r2

add a,#1 ;分加1

da a

mov r2,a

mov a,39h

cjne a,#00,exit1

second:

mov a,r1

add a,#1 ;秒加1

da a

mov r1,a

exit1:

mov 38h,#0h

mov 39h,#0h

pop psw ;恢復現場

pop acc

pop dpl

pop dph

reti ;中斷返回

display:

mov a,r3

anl a,#0fh

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

;mov p2,#0fbh

setb p2.0

clr p2.2

setb p2.1

setb p2.3

lcall delay

mov a,r3

swap a

anl a,#0fh

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

setb p2.0

clr p2.3

setb p2.2

setb p2.1

;mov p2,#0f7h

lcall delay

mov a,r2

anl a,#0fh

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

setb p2.1

clr p2.0

setb p2.2

setb p2.3

;mov p2,#0feh

lcall delay

mov a,r2

swap a

anl a,#0fh

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

setb p2.0

clr p2.1

setb p2.2

setb p2.3

;mov p2,#0fdh

lcall delay

retdisplay1:

mov a,30h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0feh

lcall delay

mov a,31h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0fdh

lcall delay

mov a,32h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0fbh

lcall delay

mov a,33h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0f7h

lcall delay

retdisplay2:

mov a,34h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0feh

lcall delay

mov a,35h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0fdh

lcall delay

mov a,36h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0fbh

lcall delay

mov a,37h

mov dptr,#ledseg

movc a,@a+dptr

mov p0,a

mov p2,#0f7h

lcall delay

retdelay: ;延時子程式

push 0 ;儲存現場

push 1

mov 0,#1h

delay1: mov 1,#0fh

djnz 1,$

djnz 0,delay1

pop 1 ;恢復現場

pop 0

retscankey:

setb p1.0

jb p1.0,p11

lcall delay

jb p1.0,p11

mov r6,#0ffh

mov r7,#0h

mov 30h,#0

mov 31h,#0

mov 32h,#0

mov 33h,#0

sjmp loop1

p11:

setb p1.1

jb p1.1,p12

lcall delay

jb p1.1,p12

mov r6,#0h

mov r7,#0h

sjmp loop1

p12:

setb p1.2

jb p1.2,p13

lcall delay

jb p1.2,p13

mov r7,#0ffh

sjmp loop1

p13:

setb p1.3

jb p1.3,p14

lcall delay

jb p1.3,p14

mov 38h,#0ffh

sjmp loop1

p14:

setb p1.4

jb p1.4,loop1

lcall delay

jb p1.4,loop1

mov 39h,#0ffh

sjmp loop1

loop1:

retledseg: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;'0,1,2,3,4,5,6,7'

db 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;'8,9,a,b,c,d,e,f'

db 6dh,02h,08h,00h,59h,0fh,76h

end如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

小弟剛學微控制器,遇到了驅動數碼管的問題(不用鎖存器)。現在苦無思路,望大俠給點幫助謝謝謝

愛迪貓 怎麼錯了?都是低電平有效 p0口應接電阻 你用低電平有效,所以p0口可以不加上拉。很多微控制器io口可設4鍾狀態,也不需要上拉了。ic 鎖存器 輸出有電流限制,不加電阻,電流也不會太大,但ic功耗大了。採用掃描方式 動態 亮度低,需要減小限流電阻,位數越多,要求限流電阻越小,但小到一定程度,...

我是微控制器初學者,我想問一下我需要學哪些知識

我覺得首先要看懂111條指令,懂意思就行,根本就不需要每一條都記住,因為常用的都只有四五十條罷了。那麼多的指令意在可以用多種語句實現同一種功能。還有就是一定要實際的程式設計,這一點是非常重要的,只有在實際程式設計中才能熟悉指令的應用,當然你或許會問自己什麼都不懂怎麼程式設計啊,這時候你不要著急,你可...

我是今年剛畢業的大專學生,學的是電子商務專業,我打算去日本進修本科,然後讀研究生

天津要壞 專業是能換 但要早換 如果還找不到自己想學或想做得事情 建議先工作 在工作中學中國這邊的教育都是沒完沒了的往上學 但實際社會 不管是日本還是中國 都比較看實際水平當你真讀完修士找工作就會發現 不會那麼輕鬆 工資不會那麼高 甚至和剛畢業的沒區別 這是實情 除非你有多麼出眾的技術 但這不太可能...