10年复习单片机.docx

上传人:b****3 文档编号:27053410 上传时间:2023-06-26 格式:DOCX 页数:13 大小:148.39KB
下载 相关 举报
10年复习单片机.docx_第1页
第1页 / 共13页
10年复习单片机.docx_第2页
第2页 / 共13页
10年复习单片机.docx_第3页
第3页 / 共13页
10年复习单片机.docx_第4页
第4页 / 共13页
10年复习单片机.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

10年复习单片机.docx

《10年复习单片机.docx》由会员分享,可在线阅读,更多相关《10年复习单片机.docx(13页珍藏版)》请在冰豆网上搜索。

10年复习单片机.docx

10年复习单片机

复习

练习1

现有一蜂鸣器,用80C51设计一系统,使蜂鸣器周而复始地响1min,停1min,设晶振为12MHz。

要求采用定时子程序。

画出电路,编写子程序和主程序。

解:

1.电路

 

2.定时子程序

定时器计数一次的时间:

s=1us

定时50ms的计数次数:

=50000次

定时/计数器工作方式:

方式013位定时/计数器

方式116位定时/计数器

方式28位循环定时/计数器(初值重装入)

方式3T1做波特率发生器(用与串行口)

16位定时/计数器的最大计数次数:

216=26K≈64000(次)>50000次

所以:

采用16位定时/计数器(即定时/计数器工作于方式1)

因为:

50000=C350H

所以:

定时器初值=10000H–C350H=3CB0H

 

流程图

 

工作方式TMOD=10H

定时器1

定时器0

GATE

C/T(平)

M1

M0

0

0

0

1

子程序:

DELAY:

MOVTMOD,#10H;设定时器工作方式

MOVTH1,#3CH;设定时器1高8位TH1的初值

MOVTL1,#B0H;设定时器1低8位TL1的初值

SETBTR1;启动定时器1工作

REQTF1:

JNBTF1,$;查询TF1的状态,等待定时器1溢出

CLRTF1

RET;返回主程序

 

3.使P1.1电平每隔1min变反一次的主程序

定时子程序定时50ms

要定时1min,需要循环

=1200次

因为:

工作寄存器(R0~R7)只有8位,28=256<1200

所以:

采用双重循环。

设内循环40次,外循环30次,40*30=1200

流程图

 

程序:

ORG1000H

PRO:

MOVR2,#30;设外循环次数

OUTERLP:

MOVR3,#40;设内循环次数

INNERLP:

LCALLDELAY;调定时50ms子程序

DJNZR3,INNERLP;内循环

DJNZR2,OUTERLP;外循环

CPLP1.0;P1.1取反

AJMPPRO

END

 

完整程序

ORG1000H

PRO:

MOVR2,#30;设外循环次数

OUTERLP:

MOVR3,#40;设内循环次数

INNERLP:

LCALLDELAY;调定时50ms子程序

DJNZR3,INNERLP;内循环

DJNZR2,OUTERLP;外循环

CPLP1.0;P1.1取反

AJMPPRO

DELAY:

MOVTMOD,#10H;设定时器工作方式

MOVTH1,#3CH;设定时器1高8位TH1的初值

MOVTL1,#B0H;设定时器1低8位TL1的初值

SETBTR1;启动定时器1工作

REQTF1:

JNBTF1,$;查询TF1的状态,等待定时器1溢出

CLRTF1

RET;返回主程序

END

 

◆思考:

蜂鸣器响10us

 

练习2.利用80C51串行口工作方式3实现一个数据块的带奇偶校验的发送,设发送数据缓冲区首地址为片内50H,发送数据长度(字节数)为10H,选定波特率为1200,时钟频率为11.0529MHz。

解:

分析:

串行口方式0:

同步通信方式,用于串行口扩展

方式1:

异步通信方式,波特率可变,由T1溢出率决定

即T1溢出

次,发送一个位,T1一般用方式2,

所以波特率=

方式2:

多机通信方式(与SM2有关),波特率=

方式3:

多机通信方式(与SM2有关),波特率与方式1同

查表:

教材P84表4-3

波特率为1200、时钟频率为11.059MHz、SMOD=0时,定时器T1的计数初值为E8H

定时器T1工作于方式2

 

1.采用查询方式

流程图

 

定时器工作方式字TMOD=20H

定时器1

定时器0

GATE

C/T(平)

M1

M0

0

0

1

1

串行口工作方式字SCON=C0H

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

1

1

0

0

程序

ORG1000H

MOVR2,#10H

MOVR0,#50H

MOVSCON,#0C0H

MOVTMOD,#20H

CLRSMOD

MOVTH1,#E8H

MOVTH0,#E8H

BYTLP:

MOVA,@R0

MOVTB8,P

MOVSBUF,A

SETBTR1

JNBTI,$

CLRTI

INCR0

DJNZR2,BYTLP

END

 

2.采用中断方式

采用循环结构,每次循环发送一个字节,在发送一个字节的过程中需要等待,发送完一个字节后跳出等待,因此用一个标志位来标志一个字节有没有发送完。

该标志位首先清零,在发送一个字节的过程中,不断查询该标志位的状态,若是零,继续查询;

若一个字节发送完毕,进入中断服务子程序,在此子程序中,将标志位置1;

中断处理完毕,返回查询标志位的语句,因为标志位已是1,所以跳出查询

流程图:

(1)主程序

 

ORG1000H

MOVR2,#10H

MOVR0,#50H

SETBEA

SETBES

CLRET1

MOVSCON,#C0H

MOVTMOD,#20H

MOVPCON,#00H;设置SMOD=0

MOVTH1,#E8H

MOVTH0,#E8H

BYTLP:

CLR00H

MOVA,@R0

MOVTB8,P

MOVSBUF,A

SETBTR1

JNB00H,$

INCR0

DJNZR2,BYTLP

END

(2)中断服务子程序

流程图

 

子程序

ORG0023H

AJMPSEND

SEND:

CLRTI

SETB00H

RETI

 

练习3.片内RAM40H开始的单元内有10字节二进制数,编程找出其中最大值并存于片外RAM50H单元

解:

流程图

ORG1000H

MOVR0,#40H

MOVR1,#50H

MOVR2,#10

MOVA,@R0

MOV30H,@R0

CJNEA,30H,LOG1

LOG1:

JCNEXT

XCHA,30H

NEXT:

INCR0

DJNZR2

MOVX@R1,A

END

 

本课程的重点章节:

第二章单片机的结构

第三章单片机的指令

第四章汇编程序(综合)

第五章第六章第七章三个基本功能

第九章并行扩展键盘和LED显示器

考试题型:

1.单项选择13*2分=26分

2.程序题3小题,共16分

3.应用题5小题,共58分

编程很重要!

注意:

要求编写主程序,一定要有伪指令ORG和END

要求编写指令段,可不写伪指令ORG和END

子程序一定要有返回语句

熟悉指令系统(几类指令)

重点:

1.三个基本功能单元

2.LED显示器

3.单片机指令

 

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

当前位置:首页 > 初中教育 > 英语

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

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