《單片機應(yīng)用技術(shù) 》中職配套PPT課件,單片機應(yīng)用技術(shù) ,《單片機應(yīng)用技術(shù),》中職配套PPT課件,單片機,應(yīng)用技術(shù),配套,PPT,課件
可預(yù)置可逆4位計數(shù)器
1. 實驗任務(wù)
利用AT89S51單片機的P1.0-P1.3接四個發(fā)光二極管L1-L4,用來指示當(dāng)前計數(shù)的數(shù)據(jù);用P1.4-P1.7作為預(yù)置數(shù)據(jù)的輸入端,接四個撥動開關(guān)K1-K4,用P3.6/WR和P3.7/RD端口接兩個輕觸開關(guān),用來作加計數(shù)和減計數(shù)開關(guān)。
2. 電路原理圖
3. 系統(tǒng)板上硬件連線 (1. 把“單片機系統(tǒng)”區(qū)域中的P1.0-P1.3端口用8芯排線連接到“八路發(fā)
光二極管指示模塊”區(qū)域中的L1-L4上;要求:P1.0對應(yīng)著L1,P1.1對應(yīng)著L2,P1.2對應(yīng)著L3,P1.3對應(yīng)著L4; (2. 把“單片機系統(tǒng)”區(qū)域中的P3.0/RXD,P3.1/TXD,P3.2/INT0,P3.3/INT1
用導(dǎo)線連接到“四路撥動開關(guān)”區(qū)域中的K1-K4上; (3. 把“單片機系統(tǒng)”區(qū)域中的P3.6/WR,P3.7/RD用導(dǎo)線連接到“獨立式鍵
盤”區(qū)域中的SP1和SP2上;
4. 程序設(shè)計內(nèi)容
(1). 兩個獨立式按鍵識別的處理過程;
(2). 預(yù)置初值讀取的問題
(3). LED輸出指示
5. 程序框圖
6. 匯編源程序 COUNT EQU 30H ORG 00H
START: MOV A,P3 ANL A,#0FH MOV COUNT,A MOV P1,A
SK2: JB P3.6,SK1 LCALL DELY10MS JB P3.6,SK1 INC COUNT MOV A,COUNT
CJNE A,#16,NEXT MOV A,P3 ANL A,#0FH MOV COUNT,A NEXT: MOV P1,A
WAIT: JNB P3.6,WAIT LJMP SK2
SK1: JB P3.7,SK2 LCALL DELY10MS JB P3.7,SK2 DEC COUNT MOV A,COUNT
CJNE A,#0FFH,NEX MOV A,P3 ANL A,#0FH MOV COUNT,A NEX: MOV P1,A
WAIT2: JNB P3.7,WAIT2 LJMP SK2
DELY10MS: MOV R6,#20 MOV R7,#248 D1: DJNZ R7,$ DJNZ R6,D1 RET END
7. C語言源程序
#include
unsigned char curcount;
void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); }
void main(void) {
curcount=P3 & 0x0f; P1=~curcount; while(1) {
if(P3_6==0) {
delay10ms(); if(P3_6==0) {
if(curcount>=15) {
curcount=15; } else {
curcount++; }
P1=~curcount; while(P3_6==0); } }
if(P3_7==0) {
delay10ms(); if(P3_7==0) {
if(curcount<=0) {
curcount=0; } else {
curcount--; }
P1=~curcount; while(P3_7==0); } } } }