单片机实验报告.docx

上传人:b****7 文档编号:26185780 上传时间:2023-06-17 格式:DOCX 页数:37 大小:21.35KB
下载 相关 举报
单片机实验报告.docx_第1页
第1页 / 共37页
单片机实验报告.docx_第2页
第2页 / 共37页
单片机实验报告.docx_第3页
第3页 / 共37页
单片机实验报告.docx_第4页
第4页 / 共37页
单片机实验报告.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

单片机实验报告.docx

《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(37页珍藏版)》请在冰豆网上搜索。

单片机实验报告.docx

单片机实验报告

实验1.学习KEIL软件使用方法及P1口控制LED发光管的实验1

1.1.NULL1

1.2.点亮第一个发光管.1

1.3.点亮1、3、5、7发光二极管2

1.4.点亮2、4、6、8发光二极管2

1.5.轮回点亮1,3,5,7灯和2,4,6,8灯(周期2秒)2

1.6.第一个发光管闪烁2

实验2.定时器中断与LED3

2.1.用调用软件延时子程序的方法设计循环点亮发光二极管(每个发光二极管亮1秒)3

2.2.用调用软件延时子程序的方法设计循环点亮两个发光二极管(每个两个发光二极管亮2秒)3

2.3.用定时器T0方法设计循环点亮发光二极管(每个发光二极管亮1秒)4

实验3.数码管显示实验5

3.1.用调用软件延时子程序的方法设计单个数码管循环1-9(每个数码亮1秒)5

3.2.用定时器T0中断的方法设计单个数码管循环F-0(每个数码亮1秒)5

3.3.六个数码管显示0、1、2、3、4、57

3.4.六个数码管循环显示1、2、3、4、5、6;2、3、4、5、6、7;......;A,B,C,D,E,F(不分大小写);B,C,D,E,F,1;........(每种状态停留1秒)8

3.5.用调用软件延时子程序的方法设计单个数码管循环0-F(每个数码亮1秒)9

3.6.用定时器T0中断的方法设计单个数码管循环F-0(每个数码亮1秒)10

实验4.外部中断实验11

4.1.主程序是单个数码管循环显示1-9(每个发光数码管亮1秒)。

只要一按INT1键,CPU响应中断请求——数码管停留在按键前的显示数字,8个发光二极管显示器循环点亮一个灯,每个点亮1秒,执行5次循环,再回到主程序执行。

(作业)11

4.2.主程序是8个发光二极管显示器循环点亮一个灯,每个点亮1秒。

只要一按INT1键,CPU响应中断请求——单个数码管循环显示1-9(每个发光数码管亮1秒),再回到主程序执行。

(作业)12

4.3.主程序是单个数码管循环显示0-F(每个发光数码管亮1秒)。

只要一按INT1键,CPU响应中断请求——数码管停留在按键前的显示数字,8个发光二极管显示器循环两两点亮灯,每个状态点亮1秒,执行3次循环,再回到主程序执行。

14

4.4.主程序是8个发光二极管显示器循环点亮一个灯,每个点亮1秒。

只要一按INT1键,CPU响应中断请求——单个数码管循环显示F-0(每个发光数码管亮1秒),再回到主程序执行。

15

实验5.A/D转换实验16

5.1.将电路中电位器Re2(TAE)旋动到适当位置,使AD0804的6引脚电平为(0V<6引脚电平<1V),之后,观察发光二极管显示(A/D转换值)。

16

5.2.将电路中电位器Re2(TAE)旋动到适当位置,使AD0804的6引脚电平为(0V<6引脚电平<1V),之后,观察数码显示(A/D转换值)。

17

5.3.将电路中电位器Re2(TAE)旋动到适当位置,使AD0804的6引脚电平为(2V<6引脚电平<3V),之后,观察观察发光二极管显示和数码显示(A/D转换值)。

19

5.4.将电路中电位器Re2(TAE)旋动到适当位置,使AD0804的6引脚电平为(2V<6引脚电平<3V),之后,观察数码显示(A/D转换值)。

21

5.5.将电路中电位器Re2(TAE)旋动到适当位置,使AD0804的6引脚电平为(4V<6引脚电平<5V),之后,观察数码显示(A/D转换值)。

21

实验1.学习KEIL软件使用方法及P1口控制LED发光管的实验

1.1.NULL

1.2.点亮第一个发光管.

DIOLABITP2.5

SETBDIOLA

MOVP1,#01111111B(字节操作);初始为P0.7灯点亮

SJMP$

;点亮第一个发光管(位操作).

DIOLABITP2.5

SETBDIOLA

CLRP1.7

SJMP$

;点亮最后一个发光管(位操作).

DIOLABITP2.5

SETBDIOLA

CLRP1.0

SJMP$

END

1.3.点亮1、3、5、7发光二极管

DIOLABITP2.5

SETBDIOLA

MOVP1,#10101010B(字节操作)

SJMP$

END

1.4.点亮2、4、6、8发光二极管

DIOLABITP2.5

SETBDIOLA

MOVP1,#01010101B;(字节操作)

SJMP$

END

1.5.轮回点亮1,3,5,7灯和2,4,6,8灯(周期2秒)

DIOLABITP2.5

SETBDIOLA

LOOP:

MOVP1,#01010101B;(字节操作)

ACALLDELAY1S

MOVP1,#01010101B;(字节操作)

ACALLDELAY1S

SJMPLOOP

DELAY1S:

MOVR5,#10;1ΜS(20时为2秒)

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

END

1.6.第一个发光管闪烁

DIOLABITP2.5

SETBDIOLA

LOOP:

MOVP1,#11111110B(字节操作);初始为P0.1灯点亮

ACALLDELAY1S

SETBP1.0;(字节操作)

ACALLDELAY1S

SJMPLOOP

DELAY1S:

MOVR5,#5;1ΜS(20时为2秒)

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

END

实验2.定时器中断与LED

2.1.用调用软件延时子程序的方法设计循环点亮发光二极管(每个发光二极管亮1秒)

DIOLABITP2.5

SETBDIOLA

MOVA,#11111110B(字节操作);初始为P0.1灯点亮

LOOP:

P1,A

ACALLDELAY1S

RLA

SJMPLOOP

DELAY1S:

MOVR5,#20;1ΜS(20时为2秒)

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

END

2.2.用调用软件延时子程序的方法设计循环点亮两个发光二极管(每个两个发光二极管亮2秒)

DIOLABITP2.5

SETBDIOLA

MOVA,#11111100B(字节操作);初始为P0.1灯点亮

LOOP:

MOVP1,A

ACALLDELAY2S

RLA

RLA

SJMPLOOP

DELAY2S:

MOVR5,#20;1ΜS(20时为2秒)

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

END

2.3.用定时器T0方法设计循环点亮发光二极管(每个发光二极管亮1秒)

DIOLABITP2.5

ORG0000H

AJMPBG

ORG000BH

AJMPTTT0

BG:

SETBDIOLA

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVIE,#82H

MOVR7,#20;1秒

SETBTR0;TCON的T0中断开

MOVA,#0FEH;点亮第一灯

MOVP1,A

SJMP$

TTT0:

DJNZR7,NEXT

RLA

MOVP1,A

MOVR7,#20

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

RETI

END

用定时器T1方法设计循环点亮两个发光二极管(每个两个发光二极管亮2秒)

DIOLABITP2.5

ORG0000H

AJMPBG

ORG001BH

AJMPTTT1

BG:

SETBDIOLA

MOVTMOD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

MOVIE,#88H

MOVR7,#40;2秒

SETBTR1;TCON的T1中断开

MOVA,#0FCH;点亮第一、二灯

MOVP1,A

SJMP$

TTT1:

DJNZR7,NEXT

RLA

RLA

MOVP1,A

MOVR7,#40

NEXT:

MOVTH1,#3CH

MOVTL1,#0B0H

RETI

END

实验3.数码管显示实验

3.1.用调用软件延时子程序的方法设计单个数码管循环1-9(每个数码亮1秒)

JSHQEQU40H

DULABITP2.6;

WELABITP2.7;

MAIN:

MOVJSHQ,#1

CLRDULA;

MOVP0,#0FEH;

SETBWELA;

CLRWELA;

MAIN1:

MOVA,JSHQ

CJNEA,#10,LOOP1

MOVJSHQ,#1;

LOOP1:

MOVA,JSHQ

LOOP:

ACALLDISPLAY

INCJSHQ

AJMPMAIN1

DISPLAY:

MOVDPTR,#TABLE;显示程序

MOVCA,@A+DPTR

MOVP0,A;;显示

SETBDULA;

CLRDULA;

ACALLDELAY1S

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DELAY1S:

MOVR5,#10;1ΜS

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

;((2X200+3)X250+3)X10+3

END

3.2.用定时器T0中断的方法设计单个数码管循环F-0(每个数码亮1秒)

JSHQEQU40H

DULABITP2.6;

WELABITP2.7;

ORG0000H

AJMPBG

ORG000BH

AJMPTTT0

BG:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVIE,#82H

SETBTR0

CLRDULA;

MOVP0,#FEH;

SETBWELA;

CLRWELA;

MOVR7,#20

MOVJSHQ,#09H

MOVA,JSHQ

ACALLDISPLAY

SJMP$

TTT0:

DJNZR7,NEXT

DECJSHQ

MOVA,JSHQ

CJNEA,#0FFH,DISP

MOVJSHQ,#09H

MOVA,JSHQ

DISP:

ACALLDISPLAY

MOVR7,#20

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

RETI

DISPLAY:

;显示程序

MOVDPTR,#TABLE

CLRWELA;

MOVCA,@A+DPTR

MOVP0,A;;显示

SETBDULA;

CLRDULA;

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

END

3.3.六个数码管显示0、1、2、3、4、5

WEI0EQU40H

WEI1EQU41H

WEI2EQU42H

WEI3EQU43H

WEI4EQU44H

WEI5EQU45H

DULABITP2.6;

WELABITP2.7;

MOVWEI0,#0

MOVWEI1,#1

MOVWEI2,#2

MOVWEI3,#3

MOVWEI4,#4

MOVWEI5,#5

DISPLAY:

;显示程序

MOVR0,#WEI0

MOVR7,#6

MOVR6,#0FEH

DISP:

MOVDPTR,#TABLE

CLRWELA;

MOVA,@R0

MOVCA,@A+DPTR

MOVP0,A;;显示0位

SETBDULA;

CLRDULA;

MOVP0,R6;

SETBWELA;

CLRWELA;

ACALLDELAY1MS

INCR0

MOVA,R6

RLA

MOVR6,A

DJNZR7,DISP

SJMPDISPLAY

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DELAY1MS:

MOV52H,#2;

DELAYA:

MOV51H,#250

DJNZ51H,$

DJNZ52H,DELAYA

RET;延时返回

END

3.4.六个数码管循环显示1、2、3、4、5、6;2、3、4、5、6、7;......;A,B,C,D,E,F(不分大小写);B,C,D,E,F,1;........(每种状态停留1秒)

WEI0EQU40H

WEI1EQU41H

WEI2EQU42H

WEI3EQU43H

WEI4EQU44H

WEI5EQU45H

DULABITP2.6;

WELABITP2.7;

BG:

MOVWEI0,#0

MOVWEI1,#1

MOVWEI2,#2

MOVWEI3,#3

MOVWEI4,#4

MOVWEI5,#5

DISP:

ACALLDELAY1S;延时1S

INCWEI0

INCWEI1

INCWEI2

INCWEI3

INCWEI4

INCWEI5

MOVA,WEI5

CJNEA,#0FH,DISP

SJMPBG

DISPLAY:

;显示程序

MOVR0,#WEI0

MOVR7,#6

MOVR6,#0FEH

DISP1:

MOVDPTR,#TABLE

CLRDULA;

MOVA,@R0

MOVCA,@A+DPTR

MOVP0,A;;显示0位

SETBDULA;

CLRDULA;

MOVP0,R6;

SETBWELA;

CLRWELA;

CALLDELAY1MS

INCR0

MOVA,R6

RLA

MOVR6,A

DJNZR7,DISP1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H,00H,00H,00H,00H,00H

DELAY1MS:

MOV52H,#2;

DELAYA:

MOV51H,#250

DJNZ51H,$

DJNZ52H,DELAYA

RET;延时返回

DELAY1S:

MOVR5,#100;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

ACALLDISPLAY;调用显示子程序

DJNZR5,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

RET;2ΜS

END

3.5.用调用软件延时子程序的方法设计单个数码管循环0-F(每个数码亮1秒)

JSHQEQU40H

DULABITP2.6;

WELABITP2.7;

MAIN:

MOVJSHQ,#0

CLRDULA;

MOVP0,#0FEH;

SETBWELA;

CLRWELA;

MAIN1:

MOVA,JSHQ

CJNEA,#16,LOOP1;0---F

MOVJSHQ,#0;

LOOP1:

MOVA,JSHQ

LOOP:

ACALLDISPLAY

INCJSHQ

AJMPMAIN1

DISPLAY:

MOVDPTR,#TABLE;显示程序

MOVCA,@A+DPTR

MOVP0,A;;显示

SETBDULA;

CLRDULA;

ACALLDELAY1S

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DELAY1S:

MOVR5,#10;1ΜS

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJNZR5,DELAY0;2X10ΜS=20ΜS

RET;2ΜS

;((2X200+3)X250+3)X10+3

END

3.6.用定时器T0中断的方法设计单个数码管循环F-0(每个数码亮1秒)

JSHQEQU40H

DULABITP2.6;

WELABITP2.7;

ORG0000H

AJMPBG

ORG000BH

AJMPTTT0

BG:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVIE,#82H

SETBTR0

CLRDULA;

MOVP0,#FEH;

SETBWELA;

CLRWELA;

MOVR7,#20

MOVJSHQ,#0FH

MOVA,JSHQ

ACALLDISPLAY

SJMP$

TTT0:

DJNZR7,NEXT

DECJSHQ

MOVA,JSHQ

CJNEA,#0FFH,DISP

MOVJSHQ,#0FH

MOVA,JSHQ

DISP:

ACALLDISPLAY

MOVR7,#20

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

RETI

DISPLAY:

;显示程序

MOVDPTR,#TABLE

CLRWELA;

MOVCA,@A+DPTR

MOVP0,A;;显示

SETBDULA;

CLRDULA;

RET

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

END

实验4.外部中断实验

4.1.主程序是单个数码管循环显示1-9(每个发光数码管亮1秒)。

只要一按INT1键,CPU响应中断请求——数码管停留在按键前的显示数字,8个发光二极管显示器循环点亮一个灯,每个点亮1秒,执行5次循环,再回到主程序执行。

(作业)

JSHQEQU40H

DULABITP2.6;

WELABITP2.7;

LCDENBITP3.4;给INT1营造低电平

ORG0000H

AJMPBG

ORG0013H

AJMPINT111;按S18键进入INT1中断

BG:

CLRLCDEN;给INT1营造低电平

SETBIT1;INT1负边触发有效

MOVSP,#60H

MOVIE,#84H

MOVJSHQ,#1

MAIN1:

MOVA,JSHQ

CJNEA,#10,LOOP1

MOVJSHQ,#1;

LOOP1:

MOVA,JSHQ

ACALLDISPLAY

INCJSHQ

SJMPMAIN1

INT111:

PUSHACC

PUSHJSHQ

MOVA,#0FEH;一次循环

MOVR4,#40;循环五次

LOOP:

MOVP1,A;点亮第一灯

ACALLDELAY1S

RLA

DJNZR4,LOOP

POPJSHQ

POPACC

RETI

DELAY1S:

PUSH05H

PUSH06H

PUSH07H

MOVR5,#10;1ΜS

DELAY0:

MOVR6,#250;1X10ΜS=10ΜS

DELAY1:

MOVR7,#200;1X250X10ΜS=2500ΜS=2.5MS

DELAY2:

DJNZR7,DELAY2;2X200X250X10ΜS=1000000ΜS=1S

DJNZR6,DELAY1;2X250X10=5000ΜS=5MS

DJN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1