日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

51单片机c语言学习笔记,51单片机学习笔记(一)_总记

發(fā)布時(shí)間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机c语言学习笔记,51单片机学习笔记(一)_总记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

單片機(jī)電路仿真軟件Proteus;編程軟件Keil;

在Proteus中設(shè)計(jì)好電路圖、在Keil中編寫程序編譯生成十六進(jìn)制文件。本文引用地址:http://www.eepw.com.cn/article/201611/318622.htm

在電路圖中載入該十六進(jìn)制文件通過(guò)相應(yīng)的程序控制電路。

51hei單片機(jī)+Proteus視頻+實(shí)例+開發(fā)工具包 http://download.csdn.net/detail/leytton/7658297

http://www.51hei.com/

文章閱讀

http://www.51hei.com/mcuteach/252.html

http://www.51hei.com/mcuteach/150.html

視頻教程

http://www.51hei.com/sp/

JBJB P1.3,L1 意思就是判斷P1.3的值是不是“1” 如果是就跳轉(zhuǎn)到L1程序執(zhí)行

eg1

MOV R7,#250 ;賦值R7=250 注意沒(méi)有"H"

LOOP:

DJNZ R7,LOOP ;R7=R7-1;if(R7!=0) goto LOOP;循環(huán)250次

eg2 http://www.51hei.com/mcuteach/244.html

MOV R7,#20

MOV R0,#30H

LOOP:MOV A,@R0

INC R0

DJNZ R7,LOOP

這個(gè)例程中大部份指令我們是能看懂的,第一句,是將立即數(shù)20送到R7中,執(zhí)行完后R7中的值應(yīng)當(dāng)是20。第二句是將立即數(shù)30H送入R0工作寄存器中,所以執(zhí)行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個(gè)值作為地址,取這個(gè)地址單元的內(nèi)容送入A中,此時(shí),執(zhí)行這條指令的結(jié)果就相當(dāng)于MOV A,30H。第四句,沒(méi)學(xué)過(guò),就是把R0中的值加1,因此執(zhí)行完后,R0中的值就是31H,第五句,學(xué)過(guò),將R7中的值減1,看是否等于0,不等于0,則轉(zhuǎn)到標(biāo)號(hào)LOOP處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行MOV A,@R0這句話,此時(shí)相當(dāng)于執(zhí)行了MOV A,31H(因?yàn)榇藭r(shí)的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環(huán)20次為止,就實(shí)現(xiàn)了我們的要求:從30H單元開始將20個(gè)數(shù)據(jù)送入A中。

AJMP無(wú)條件跳轉(zhuǎn)指令

以直接地址為目的操作數(shù)的指令

MOV direct,A例:MOV 20H,A

MOV direct,Rn MOV 20H,R1

MOV direct1,direct2 MOV 20H,30H

MOV direct,@Ri MOV 20H,@R1

MOV direct,#data MOV 20H,#34H

以間接地址為目的操作數(shù)的指令

MOV @Ri,A例:MOV @R0,A

MOV @Ri,direct MOV @R1,20H

MOV @Ri,#data MOV @R0,#34H

十六位數(shù)的傳遞指令

MOV DPTR,#data16

51單片機(jī)匯編指令周期表:

http://blog.sina.com.cn/s/blog_4419d72d0100mt7r.html

http://www.51hei.com/mcuteach/242.html

單片機(jī)的累加器A與片外RAM之間的數(shù)據(jù)傳遞類指令

MOVX A,@Ri

MOVX @Ri,A

MOVX A,@DPTR

MOVX @DPTR,A

在51系列單片機(jī)中,與外部存儲(chǔ)器RAM打交道的只能是A累加器。所有需要傳送入外部RAM的數(shù)據(jù)必需要通過(guò)A送去,而所有要讀入的外部RAM中的數(shù)據(jù)也必需通過(guò)A讀入。在此我們能看出內(nèi)外部RAM的區(qū)別了,內(nèi)部RAM間能直接進(jìn)行數(shù)據(jù)的傳遞,而外部則不行,比如,要將外部RAM中某一單元(設(shè)為0100H單元的數(shù)據(jù))送入另一個(gè)單元(設(shè)為0200H單元),也必須先將0100H單元中的內(nèi)容讀入A,然后再傳送到0200H單元中去。

MOVC就是讀代碼存儲(chǔ)器,MOVX就是讀寫外部存儲(chǔ)器,即外部RAM

51C語(yǔ)言

表 3-1 KEIL uVision2 單片機(jī)c語(yǔ)言編譯器所支持的數(shù)據(jù)類型

摘自http://www.51hei.com/mcuteach/146.html

數(shù)據(jù)類型長(zhǎng) 度值 域

unsigned char單字節(jié)0~255

signed char單字節(jié)-128~+127

unsigned int雙字節(jié)0~65535

signed int雙字節(jié)-32768~+32767

unsigned long四字節(jié)0~4294967295

signed long四字節(jié)-2147483648~+2147483647

float四字節(jié)±1.175494E-38~±3.402823E+38

*1~3 字節(jié)對(duì)象的地址

bit位0 或 1

sfr單字節(jié)0~255

sfr16雙字節(jié)0~65535

sbit位0 或 1

位運(yùn)算:[摘自百度百科]

P1=(4>0)&&(9<0xab);//將邏輯運(yùn)算結(jié)果送P1口

P0=0xa2^0x3c;//將條件運(yùn)算結(jié)果送P0口,P0=8=0000 1000B

一個(gè)簡(jiǎn)單的C51程序[參考http://www.51hei.com/mcuteach/248.html]

#include void DELAY() //延時(shí)函數(shù){ unsigned char i,j;for(i=0;i<250;i++){for(j=0;j<200;j++);} }void main() //程序從這里開始執(zhí)行{while(1) //這句的作用就是反復(fù)的執(zhí)行下面這個(gè){}中包含的4句{P1_0=1; //(1)熄滅燈DELAY(); //(2)延時(shí)一段時(shí)間P1_0=0; //(3)點(diǎn)亮燈DELAY(); //(4)延時(shí)一段時(shí)間}}

總結(jié)

以上是生活随笔為你收集整理的51单片机c语言学习笔记,51单片机学习笔记(一)_总记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。