单片机复习.docx

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

单片机复习.docx

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

单片机复习.docx

单片机复习

【例1】编制一个循环闪烁灯的程序。

设80C51单片机的P1口作为输出口,经驱动电路74LS240(8反相三态缓冲/驱动器)接8只发光二极管,如图4-8所示。

当输出位为“1”时,发光二极管点亮,输出位为“0”时为暗。

试编程实现:

每个灯闪烁点亮10次,再转移到下一个灯闪烁点亮10次,循环不止。

解:

程序如下:

FLASH:

MOVA,#01H;置灯亮初值

FSH0:

MOVR2,#0AH;置闪烁次数

FLOP:

MOVP1,A;点亮

LCALLDY1s;延时1s

MOVP1,#00H;熄灭

LCALLDY1s;延时1s

DJNZR2,FLOP;闪烁10次

RLA;左移一位

LJMPFSH0;循环

END;

【例】在单片机应用系统中,常用LED数码管显示数码,但显示数字(≤9)与显示数字编码并不相同,需要将显示数字转换为显示字段码,通常是用查表的方法。

现要求将30H中的显示数字转换为显示字段码并存入A。

已知共阴字段码表首址为TABD。

解:

编程如下:

LED:

MOVDPTR,#TABD;置共阴字段码表首址

MOVA,30H;读显示数字

MOVCA,@A+DPTR;查表,转换为显示字段码

RET;

TABD:

DB3FH,06H,5BH,4FH,66H;0~4共阴字段码表

DB6DH,7DH,07H,7FH,6FH;5~9共阴字段码表

START:

MOV30H,#09H

LEDON:

LCALLLED

MOVP1,A

LCALLDELAY_1S

DJNZ30H,LEDON

LJMPSTART

END

参照以上例题,按下列要求编写程序:

注:

可与例1一起参考。

①循环显示数字0-9;

②fosc=6MHz;

③显示间隔为1S;

例:

显示内存31H—36H中内容

START2MOVR0,#31H;待显示数据所在内存首址送R0

MOVR1,#01H;R1=00000001,数码管的选择码送R1

MOVA,R1;A=00000001,指向第一个数码管

LP0:

MOVP3,A;未循环前,P3.0=1,经“非”门后变为零,指向第一个数码管.

MOV30H,@R0;待显示数据送A

LCALLLED

MOVP1,A;段码送P1口,由被选中的数码管显示

LCALLDELAY_1MS;延时1毫秒

INCR0;R0内容加1,指向下一个存储单元

MOVA,R1;选择数码管的数据送A.

RLA;A循环左移一位,00000001变为00000010,指向下一个数码管

JBACC.6,LP2;若A的第6位为1,转向LP2,否则往下执行

MOVR1,A;下一个数码管的选择码送R1

LJMPLP0;6个数码管未显示完,继续.

LP2:

LJMPSTART2

4511真值表

【例】试编制程序显示数字987

解:

MOVP1,#F7H;输出个位显示数7

CLRP1.4;选通个位,P1.4=0

MOVP1,#F8H;输出十位显示数8

CLRP1.5;选通十位,P1.5=0

MOVP1,#F9H;输出百位显示数9

CLRP1.6;选通百位,P1.6=0

RET

一、独立式键盘接口

驱动程序:

LP:

MOVC,P1.0

JCLP

KEY:

…..

…..

SJMPLP

独立式键盘与单片机接口

独立式键盘与单片机接口(图1)

ORG0030H

KB:

MOVP1,#0FFH;置P1口为输入口

MOVA,P1;读键状态

CPLA

ANLA,#0FH;屏蔽高4位

JZKB;无键闭合则返回

LCALLD10MS;延时去抖动

MOVA,P1;再读键状态

CPLA

ANLA,#0FH

JZKB;无键闭合则返回

CJNEA,#01H,KB01

INC20H;K1键闭合,20H单元加1

LJMPKB

KB01:

CJNEA,#02H,KB02

DEC20H;K2键闭合,20单元减1

SJMPKB

KB02:

CJNEA,#04H,KB03

MOV21H,#00H;K3键闭合,21H单元清0

LJMPKB

KB03:

CJNEA,#08H,KB

MOV21H,#0FFH;K4键闭合,21H单元置FF

SJMPKB;若有两键以上闭合则返回

END

 

★⒊中断系统应用举例

【例】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。

解:

编程如下:

ORG0000H;复位地址

LJMPSTAT;转初始化

ORG0003H;中断入口地址

LJMPINT;转中断服务程序

ORG0100H;初始化程序首地址

STAT:

MOVSP,#60H;置堆栈指针

SETBIT0;置边沿触发方式

MOVIP,#01H;置高优先级

MOVIE,#81H;开中

MOV30H,#0;里程计数器清0

MOV31H,#0;

MOV32H,#0;

SJMP$;等待中断

•ORG0200H;中断服务子程序首地址

•INT:

PUSHAcc;保护现场

•PUSHPSW;

•MOVA,30H;读低8位计数器

•ADDA,#2;低8位计数器加2m

•MOV30H,A;回存

•CLRA;

•ADDCA,31H;中8位计数器加进位

•MOV31H,A;回存

•CLRA;

•ADDCA,32H;高8位计数器加进位

•MOV32H,A;回存

•PUSHPSW;恢复现场

•PUSHAcc;

•RETI;中断返回

 

一.定时/计数器概述

80C51单片机内部有两个16位定时/计数器T0和T1,其核心是计数器,基本功能是加1。

对外部事件脉冲(下降沿)计数,是计数器;

对片内机器周期脉冲计数,是定时器。

定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入(T0/P3.4T1/P3.5)。

且外部脉冲的最高频率不能超过时钟频率的1/24。

⒉工作方式1

16位计数器,最大计数值为216=65536。

⒊工作方式2

图方式2(初始常数自动重装载)

•8位计数器,仅用TL0计数,最大计数值为256,计满溢出后,一方面进位TF0,使溢出标志TF0=1;另一方面,使原来装在TH0中的初值装入TL0。

 

【例1】已知晶振6MHz,要求定时0.5mS,试分别求出T0工作于方求出T0工作于方式0、方式1、方式2、方式3时的定时初值。

⑵工作方式1:

T0初值=216-500s/2s=65536–250=65286=FF06H

TH0=FFH;TL0=06H。

⑶工作方式2:

T0初值=28-500s/2s=256-250=6

TH0=06H;TL0=06H。

 

①计算定时初值

T0初值=216-50000s/1s

=65536–50000=15536=3CB0H

TH0=3CH;TL0=B0H

②设置TMOD:

00000001B=01H

T0方式1

T0用作定时器

与无关

T1控制位

【例】有一生产流水线,流水线上通过的工件经光电转换电路产生计数脉冲,脉冲整形后送入T0端,要求每生产100个工件,向P1.0发出一包装命令正脉冲,包装成一箱,请编写控制程序。

【例】设MCS-51单片机系统的晶振频率为12M,编程测试外部脉冲输入引脚INT0(P3.2)上输人的正脉冲宽度(设正脉冲宽度小于65ms),并将测量数值以us为单位存放于R1,R2中。

当GATE=1时,T0的工作不仅由TR0控制,还受引脚INT0电平控制,只有当TR0为l,且INT0输入高电平时,定时器T0才会启动。

利用这个功能,可以测试外部脉冲输入引脚INT0上输入的正脉冲宽度。

【例】从P1.0输出方波信号,周期为2ms。

设单片机的focs=12MHz。

(C51)

•周期为2ms的方波要求定时间隔1ms,每次时间到P1.0取反。

•定时器计数率为fosc/12,Tcy=12/fosc=1µs。

•每个机器周期定时器计数加1,1ms=1000µs,需计数次数为1000/(12/fosc)=1000/1=1000。

•由于计数器向上计数,为得到l000个计数之后的定时器溢出,必须给定时器赋初值65536-1000,C语言中相当于-1000。

80C51扩展外RAM时典型连接电路

【例】试编制程序,从外部RAM6264起始地址(6000H)处读入数据,共16个数据,存入以30H为首址的内RAM。

IND:

MOVDPTR,#6000H;置外RAM地址

MOVR0,#30H;置内RAM数据存储区首址

IND0:

MOVXA,@DPTR;输入数据

MOV@R0,A;存数据

INCR0;指向下一存储单元

CJNER0,#40H,IND0;判16个数据读完否?

未完继续

RET

 

§8-3A/D转换接口电路

一、A/D转换的基本概念

A/D转换的功能是把模拟量电压转换为N位数字量。

常见的N为8、10、12

§8-4D/A转换接口电路

一、D/A转换的基本概念

D/A转换将N位数字量转换为相应的模拟量。

设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,其转换关系为:

UA=D×UREF/2N

(其中:

D=D0×20+D1×21+…+DN-1×2N-1)

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

当前位置:首页 > 总结汇报 > 学习总结

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

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