欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
上傳一個(gè)單片機(jī)實(shí)驗(yàn)代碼
[打印本頁(yè)]
作者:
heicad
時(shí)間:
2014-6-18 00:51
標(biāo)題:
上傳一個(gè)單片機(jī)實(shí)驗(yàn)代碼
實(shí)驗(yàn)二
實(shí)驗(yàn)要求:
P3.2、P3.3、P3.4、P3.5作輸入口接四個(gè)按鈕開(kāi)關(guān)SW1、SW2、SW3、SW4;P1.2、P1.3 、P1.2,P1.3作輸出口接發(fā)光二極管,編寫(xiě)程序讀取開(kāi)關(guān)狀態(tài),將此狀態(tài)在發(fā)光二極管上顯示出來(lái)。編程時(shí)應(yīng)注意P3.2、P3.3、P3.4、P3.5作為輸入口時(shí)應(yīng)先置1,才能正確讀入值。
代碼:
ORG 0000H ;復(fù)位開(kāi)始
LCALL MAIN;轉(zhuǎn)去主程序執(zhí)行
ORG 0030H;主程序從0030H開(kāi)始
MAIN:
MOV A, #0FFH ;預(yù)設(shè)初始化的值是為1111 1111
LJMP LOOP ;不斷循環(huán)
LOOP:
MOV P3,A ; 初始化 p3作為輸入口應(yīng)為1
MOV P1,P3 ;開(kāi)關(guān)按下,p3口就得到了當(dāng)前的值,并賦值給p1,點(diǎn)亮相應(yīng)的LED
RET ;返回
END
實(shí)驗(yàn)三:
實(shí)驗(yàn)要求:
用單次脈沖申請(qǐng)中斷,在中斷處理程序中對(duì)信號(hào)進(jìn)行反轉(zhuǎn)輸出
代碼:
ORG 0000H;
LJMP MAIN;
ORG 0003H ; INT0中斷的入口程序地址
LJMP INT; 中斷程序的標(biāo)號(hào)
ORG 0400;
MAIN:
SETB P1.0; 置位p1.0,
MOV TCON,#01H; 選擇外部中斷0(INT0)觸發(fā)方式控制位。
MOV IE,#81H; 開(kāi)所有中斷且中斷源為INT0
LJMP $; 一直跳轉(zhuǎn)到當(dāng)前地址,也就是循環(huán)
ORG 0100; INT的起始地址
INT: CLR EX0; 關(guān)INT0中斷
PUSH ACC; 然后保護(hù)現(xiàn)場(chǎng)
PUSH PSW;
CPL P1.0; 將p1.0取反
POP PSW; 恢復(fù)現(xiàn)場(chǎng)
POP ACC;
SETB EX0; 開(kāi)中斷
RETI; 中斷返回
END
實(shí)驗(yàn)四
實(shí)驗(yàn)展示:
單片機(jī)內(nèi)部定時(shí)器中斷方式計(jì)時(shí)每隔一秒鐘輸出狀態(tài)反轉(zhuǎn)一次
X= 2M -(t/12*T osc)t的值是50ms, x值為15536就是3CB0。
代碼:
ORG 0000H;
LJMP MAIN;
ORG 000BH;
LJMP INT;
MAIN:
MOV TMOD,#01H;選擇定時(shí)器0 工作方式一
MOV TL0,#0B0H;設(shè)置時(shí)間常數(shù)3CB0
MOV TH0,#03CH;
SETB P1.0; 設(shè)置p1.0的初始狀態(tài)
MOV R0,#014H;設(shè)置秒計(jì)數(shù)值 20. 20*50ms=1s
MOV IE,#82H; 開(kāi)所有中斷且選擇中斷源為定時(shí)器0
SETB TR0; 啟動(dòng)定時(shí)器工作
LJMP $; 死循環(huán)
INT:
CLR ET0; 關(guān)中斷
PUSH ACC; 保護(hù)現(xiàn)場(chǎng)
PUSH PSW
MOV TL0,#0B0H;重新賦值
MOV TH0,#03CH;
CJNE R0,#00H,LOOP;如果R0==0,就繼續(xù)執(zhí)行下去 否則LooP
CLR EA;關(guān)中斷
MOV R0,#014H;如果已經(jīng)到1S了重新計(jì)時(shí)
CPL P1.0; 取反p1.0
LOOP:
DEC R0; 如果還木有到1s那么就將計(jì)數(shù)值自減
POP PSW; 恢復(fù)現(xiàn)場(chǎng)
POP ACC;
MOV IE,#82H; 開(kāi)中斷
RETI; 中斷返回
END;
實(shí)驗(yàn)五
實(shí)驗(yàn)展示:
PC機(jī)串行口設(shè)置波特率4800,啟始位1位,數(shù)據(jù)為8位,停止位1位,用交叉串行線(xiàn)連接單片機(jī)J232。 編程實(shí)現(xiàn)向PC機(jī)串行發(fā)送1-10十個(gè)數(shù)據(jù),波特率4800,工作方式1。
通常采用T1的工作方式2,即自動(dòng)重裝載方式作為波特率發(fā)生器
代碼
ORG 0000H;
LJMP MAIN;
ORG 0100H;
MAIN:
MOV TMOD,#20H; 定時(shí)器T1 工作方式2
MOV TL1,#0F3H; 通過(guò)公式去計(jì)算對(duì)應(yīng)的初始值
MOV TH1,#0F3H;
MOV IE,#98H; 開(kāi)全部中斷且開(kāi)串行中斷,且中斷源是T1
SETB TR1; 啟動(dòng)定時(shí)器1
MOV SCON,#50H; 設(shè)定串行口的工作方式為方式1
MOV PCON,#80H;比特率加倍
MOV R0,#00H; 發(fā)送數(shù)據(jù)計(jì)數(shù)器 從0開(kāi)始
MOV A,#00H; 準(zhǔn)備發(fā)送的數(shù)據(jù) 先初始化成0
WRITE:
CLR TI; 發(fā)送中斷標(biāo)志位發(fā)送完數(shù)據(jù)之后會(huì)變成1 發(fā)送數(shù)據(jù)之前要清零
INC A; 從1開(kāi)始發(fā)送發(fā)送到10即可停止
MOV SBUF,A; 發(fā)送數(shù)據(jù)
WAUT:
JBC TI,CONT; 如果發(fā)送數(shù)據(jù)完畢那么就轉(zhuǎn)去CONT執(zhí)行 發(fā)送下一個(gè)數(shù)據(jù)
LJMP WAUT; 否則就一直等到該數(shù)據(jù)發(fā)送直到發(fā)送完畢
CONT:
CLR TI; 清零,該句可以省略
INC R0; 發(fā)送完一幀數(shù)據(jù)以后 計(jì)數(shù)值就加1
CJNE R0,#0AH,WRITE ; 還木有發(fā)送到10 那就繼續(xù)發(fā)送 否則循序執(zhí)行
END;
實(shí)驗(yàn)七
實(shí)驗(yàn)要求:
根據(jù)動(dòng)態(tài)顯示原理在四位LED上顯示1234
代碼:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P0,#00H; 初始化 哪一位都不選
MOV P2,#00H;
LOOP:
SETB P0.0選擇第一位顯示1
MOV P2,#06H 段的碼數(shù)表示1
LCALL DELAY 顯示延遲
MOV P0,#00H; 清空數(shù)碼管
SETB P0.1選擇第二位顯示2
MOV P2,#5BH 段的碼數(shù)表示2
LCALL DELAY
MOV P0,#00H;
SETB P0.2 選擇第三位顯示3
MOV P2,#4FH;
LCALL DELAY
MOV P0,#00H;
SETB P0.3選擇第四位
MOV P2,#66H
LCALL DELAY
LJMP LOOP 不斷的循環(huán) 動(dòng)態(tài)的顯示1 2 3 4
DELAY: MOV R7,#4
DELY1: MOV R6,#248
NOP
DELY2: DJNZ R6,DELY2
DJNZ R7,DELY1
RET
END
實(shí)驗(yàn)十三
實(shí)驗(yàn)要求:
開(kāi)關(guān)3S2接通P1.7時(shí)工作,這時(shí)P1.7=1,繼電器控制線(xiàn)圈通電吸合,P1.7=0,繼電器斷電釋放。當(dāng)3S2接到GND時(shí),繼電器始終斷電釋放。
ORG 0000H;
LJMP MAIN;
MAIN:
MOV P1 ,#7FH; 設(shè)置p1口的初值 使得p1.7為0
LOOP:
CPL P1.7; 取反操作
LCALL DELAY;延遲
LJMP LOOP; 一直執(zhí)行取反-延遲操作
DELAY:
MOV R7,#200;
DELAY1:
MOV R6,#123
NOP
DELAY2:
DJNZ R6,DELAY2;
DJNZ R7,DELAY2;
RET
END
作者:
openpppp2008
時(shí)間:
2014-7-5 20:39
謝謝分享
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1