8051单片机初学实验教程4.docx

上传人:b****2 文档编号:22890425 上传时间:2023-04-28 格式:DOCX 页数:18 大小:160.60KB
下载 相关 举报
8051单片机初学实验教程4.docx_第1页
第1页 / 共18页
8051单片机初学实验教程4.docx_第2页
第2页 / 共18页
8051单片机初学实验教程4.docx_第3页
第3页 / 共18页
8051单片机初学实验教程4.docx_第4页
第4页 / 共18页
8051单片机初学实验教程4.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

8051单片机初学实验教程4.docx

《8051单片机初学实验教程4.docx》由会员分享,可在线阅读,更多相关《8051单片机初学实验教程4.docx(18页珍藏版)》请在冰豆网上搜索。

8051单片机初学实验教程4.docx

8051单片机初学实验教程4

实验十三串并转换实验

一.实验要求

利用8031串行口,和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。

二.实验目的

1.掌握8031串行口方式0工作方式及编程方法。

2.掌握利用串行口扩展I/O通道的方法。

三.实验电路及连线

RXD接DATAIN,TXD接DCLK。

四.实验说明

串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。

在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。

由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。

待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。

五.实验程序框图

        

六.实验程序

TIMEREQU01H

ORG0000H

AJMPSTART

ORG000BH;T0中断程序入口地址

AJMPINT_T0

ORG0040H

START:

MOVSP,#60H

MOVTMOD,#01H;T0方式1

MOVTL0,#00H;延时50mS的常数

MOVTH0,#4BH

MOVR0,#0H

MOVTIMER,#20

MOVSCON,#00H;置串口工作方式0

CLRTI

CLRRI

SETBTR0;开中断

SETBET0

SETBEA

SJMP$

INT_T0:

;T0中断子程序

PUSHACC;保护现场

PUSHPSW

CLREA;关中断

CLRTR0

MOVTL0,#00H;延时50mS的常数

MOVTH0,#4BH

SETBTR0

DJNZTIMER,EXIT

MOVTIMER,#20;延时一秒的常数

MOVDPTR,#DATA;置表格基址

MOVA,R0;置表格偏移量

MOVCA,@A+DPTR;读表格数据

CLRTI

MOVSBUF,A;串行发送数据

INCR0

CJNER0,#0AH,EXIT;判断是否到表尾

MOVR0,#00H;调整表格偏移量

EXIT:

SETBEA;开中断

POPPSW

POPACC;恢复现场

RETI

               ;数码管显示常数表

DATA:

DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H

;0123456789

END

实验十五8251可编程串行口与PC机通讯实验

一.实验要求

利用实验机内的8251芯片,实现与PC机通讯。

本实验实现以下功能,将从PC机键盘上键入的数字、字母显示到PC机显示器上,实现PC机自发自收。

二.实验目的

1.掌握8251芯片结构和编程,掌握单片机通讯的编制。

2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。

3.了解PC机通讯的基本要求。

三.实验电路及连线

CS8251接8500HH。

四.实验说明

程序执行时,应先进入调试菜单下的对话窗口中,然后执行G0,就可实现实验要求。

五.实验程序框图 

                  

六.实验程序

系统晶振是11.0592MHz

Z8251EQU8502H;8251状态/命令口地址

D8251EQU8500H;8251数据口地址

COM_MODEQU04EH;字符8位,1位起始位,1位停止位

;异步*16

COM_COMEQU25H;请求发送,发送允许,接收允许

ORG0000H

AJMPSTART

ORG0040H

START:

MOVSP,#60H

LCALLINIT8251;初始化8251

WAIT1:

MOVDPTR,#Z8251;8251状态寄存器(读)

MOVXA,@DPTR

ANLA,#02H

JZWAIT1;判断是否有串行输入

MOVDPTR,#D8251

MOVXA,@DPTR;读接收到的字符

MOVB,A

MOVDPTR,#Z8251

WAIT3:

MOVXA,@DPTR

ANLA,#01H

JZWAIT3;判断发送允许

MOVA,B

MOVDPTR,#D8251

MOVX@DPTR,A;发送数据

NOP

MOVDPTR,#Z8251

WAIT2:

MOVXA,@DPTR

ANLA,#01H

JZWAIT2;判断发送允许

SJMPWAIT1

INIT8251:

;8251初始化子程序

PUSHDPH;保存现场

PUSHDPL

PUSHACC

MOVDPTR,#Z8251

MOVA,#00H;使8251回到方式指令格式

MOVX@DPTR,A

MOVA,#00H;使8251回到方式指令格式

MOVX@DPTR,A

MOVA,#00H;使8251回到方式指令格式

MOVX@DPTR,A

MOVA,#40H;使8251回到方式指令格式

MOVX@DPTR,A

MOVA,#COM_MOD;置8251工作方式

MOVX@DPTR,A

MOVA,#COM_COM;请求发送,发送允许,接收允许

MOVX@DPTR,A

POPACC;恢复现场

POPDPL

POPDPH

RET

END

实验十四单片机串行口与PC机通讯实验

一.实验要求

利用8031单片机串行口,实现与PC机通讯。

本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。

二.实验目的

1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制。

2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。

3.了解PC机通讯的基本要求。

三.实验电路及连线 

实验电路已在实验机监控电路上构成。

CS8279接8700H。

模块中的十个短路套都套在8279侧。

8279状态口地址为8701H;8279数据口地址为8700H;

四.实验说明

1.当用GR命令执行程序时,实验机内部会将8031串行口电路切换与PC机通讯,无须连线。

2.程序执行前,进入LCA51,加载程序后,才进入调试菜单工具中的对话窗口,然后执行GR0,就可实行单片机串行口与PC机通信实验。

五.实验程序框图 

   

六.实验程序:

Z8279EQU8701H;8279状态/命令口地址

D8279EQU8700H;8279数据口地址

LEDMODEQU00H;左边输入八位字符显示

              ;外部译码键扫描方式,双键互锁

LEDFEQEQU2FH;扫描速率

LEDCLSEQU0C1H;清除显示RAM

LEDWR0EQU80H;设定的将要写入的显示RAM地址

READKBEQU40H;读FIFORAM地址0的命令字

ORG0000H

AJMPSTART

ORG0040H

START:

MOVSP,#60H

LCALLINIT8279;初始化8279

MOVSCON,#50H;串口方式1

MOVTMOD,#20H;T1方式1

MOVTL1,#0FDH;波特率9600的常数

MOVTH1,#0FDH

SETBTR1;开中断

SETBET1

SETBEA

WAIT:

JBCRI,DIS_REC;是否接收到数据

LCALLGETKEY;读键盘

CJNEA,#0FFH,WAIT;是否有键输入

MOVSBUF,B;串口输出键盘输入的值

NOP

SS:

JBCTI,WAIT;是否发送完毕

SJMPSS

DIS_REC:

MOVA,SBUF;读串口接收到的数据

CLRC

SUBBA,#30H;以下判定输入是否在0-F

JCERROR

SUBBA,#0AH

JNCDIS_REC1

ADDA,#0AH

SJMPDIS_REC2

DIS_REC1:

SUBBA,#7H

JCERROR

SUBBA,#6H

JNCERROR

ADDA,#10H

DIS_REC2:

MOVR4,#00H

MOVR5,A

LCALLDISLED;显示输入的数字(0-F)

ERROR:

AJMPWAIT

INIT8279:

;8279初始化子程序

PUSHDPH;保存现场

PUSHDPL

PUSHACC

LCALLDELAY;延时

MOVDPTR,#Z8279

MOVA,#LEDMOD;置8279工作方式

MOVX@DPTR,A

MOVA,#LEDFEQ;置键盘扫描速率

MOVX@DPTR,A

MOVA,#LEDCLS;清除LED显示

MOVX@DPTR,A

POPACC;恢复现场

POPDPL

POPDPH

RET

              ;读取键盘子程序

              ;输入:

无;输出:

B:

读到的键码A:

按键的标志

GETKEY:

PUSHDPH;保存现场

PUSHDPL

PUSHPSW

MOVDPTR,#Z8279

MOVXA,@DPTR;读8279状态

ANLA,#07H;屏蔽D7-D3

JNZGETVAL;判断是否有键输入

MOVA,#0H;置标志(无键输入)

SJMPNKBHIT

GETVAL:

MOVA,#READKB;读FIFORAM命令

MOVX@DPTR,A

MOVDPTR,#D8279

MOVXA,@DPTR;读键

ANLA,#0FH;屏蔽SHIFT和CTRL键

MOVDPTR,#KEYCODE;键码表起始地址

MOVCA,@A+DPTR;查表

MOVB,A;置返回键值

MOVA,#0FFH;置标志(有键输入)

NKBHIT:

POPPSW;恢复现场

POPDPL

POPDPH

RET

             ;显示字符子程序

             ;输入:

R4,位置R5,值

DISLED:

PUSHDPH;保存现场

PUSHDPL

PUSHACC

MOVA,#LEDWR0;置显示起始地址

ADDA,R4;加位置偏移量

MOVDPTR,#Z8279

MOVX@DPTR,A;设定显示位置

MOVDPTR,#LEDSEG;置显示常数表起始位置

MOVA,R5

MOVCA,@A+DPTR;查表

MOVDPTR,#D8279

MOVX@DPTR,A;显示数据

POPACC;恢复现场

POPDPL

POPDPH

RET

DELAY:

;延时子程序

PUSH0;保存现场

PUSH1

MOV0,#0H

DELAY1:

MOV1,#0H

DJNZ1,$

DJNZ0,DELAY1

POP1;恢复现场

POP0

RET

                ;LED显示常数表

LEDSEG:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;'0,1,2,3,4,5,6,7'

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;'8,9,A,B,C,D,E,F'

DB0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H;'0.,1.,2.,3.,4.,5.,6.,7.'

DB0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H;'8.,9.,A.,B.,C.,D.,E.,F.'

DB6DH,02H,08H,00H,59H,0FH,76H;'U,-,_,,I,O,P,'

               ;键盘键码表

KEYCODE:

DB30H,31H,32H,33H,34H,35H,36H,37H;'1,2,Q,W,A,S,+,Z'

DB38H,39H,41H,42H,43H,44H,45H,46H;'3,4,E,R,D,F,X,C'

DB47H,48H,49H,4AH,4BH,4CH,4DH,4EH;'5,6,T,Y,G,H,V,B'

END

实验十六8253定时/计数器实验

一.实验要求

编程将8253的定时器0设置为方式3(方波),定时器1设置为方式2(分频),定时器2设置为方式2(分频)。

定时器0输出的脉冲作为定时器1的时钟输入。

定时器1的时钟输入作为定时器2的输入,定时器2的输出接在一个LED上,运行后可观察到该LED在不停闪烁。

也可用示波器观察各对应引脚之间的波形关系。

二.实验目的

了解8253定时器的硬件连接方法及时序关系。

掌握8253的各种模式的编程及其原

理,用示波器观察各信号之间的时序关系。

三.实验电路及连线

8253中GATE0、GATE1、GATE2接+5V。

CLK0接模块的频率插孔(149.06KHZ),CLK1接OUT0,CLK2接OUT1。

OUT2接L1灯。

CS8251接8000孔。

四.实验说明

8253的工作频率是0~2MHz,所以输入的CLK频率必须在2MHz以下。

实验板上的晶振是14.7456MHz,因此须经过8284和393分频后再作为8253的CLK输入。

运行本程序后,用示波器观察8253的OUT0、OUT1、OUT2脚上的输出波形。

同时可看到L1灯在不停闪烁。

五.实验程序框图 

              

六.实验程序

;---------------------------------------------------------

TIM_CTLEQU8003H;8253状态/命令口地址

TIMER0EQU8000H 

TIMER1EQU8001H 

TIMER2EQU8002H 

MODE03EQU00110110B

MODE12EQU01110100B

MODE22EQU10110100B

;---------------------------------------------------------

ORG0000H

LJMPSTART

ORG0030H

START:

MOVDPTR,#TIM_CTL;定时器0工作在方式3

MOVA,#MODE03

MOVX@DPTR,A

MOVDPTR,#TIMER0

MOVA,#00H

MOVX@DPTR,A

MOVA,#01H

MOVX@DPTR,A;计数初值为0100H,100分频

MOVDPTR,#TIM_CTL;定时器1工作在方式2

MOVA,#MODE12 

MOVX@DPTR,A

MOVDPTR,#TIMER1

MOVA,#18H

MOVX@DPTR,A

MOVA,#00H

MOVX@DPTR,A;计数初值为0018H,24分频

MOVDPTR,#TIM_CTL;定时器2工作在方式2

MOVA,#MODE22

MOVX@DPTR,A

MOVDPTR,#TIMER2

MOVA,#0AH

MOVX@DPTR,A

MOVA,#00H

MOVX@DPTR,A;计数初值为000AH,10分频

;SJMPSTART

SJMP$

END

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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