ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:7.65MB ,
资源ID:8009135      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8009135.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机复习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机复习.docx

1、单片机复习【例1】 编制一个循环闪烁灯的程序。设80C51单片机的P1口作为输出口,经驱动电路74LS240(8反相三态缓冲/驱动器)接8只发光二极管,如图4-8所示。当输出位为“1”时,发光二极管点亮,输出位为“0”时为暗。试编程实现:每个灯闪烁点亮10次,再转移到下一个灯闪烁点亮10次,循环不止。 解:程序如下:FLASH:MOV A,#01H ;置灯亮初值FSH0: MOV R2,#0AH ;置闪烁次数FLOP: MOV P1,A ;点亮 LCALL DY1s ;延时1s MOV P1,#00H ;熄灭 LCALL DY1s ;延时1s DJNZ R2,FLOP ;闪烁10次 RL A

2、;左移一位 LJMP FSH0 ;循环 END ;【例】 在单片机应用系统中,常用LED数码管显示数码,但显示数字(9)与显示数字编码并不相同,需要将显示数字转换为显示字段码,通常是用查表的方法。现要求将30H中的显示数字转换为显示字段码并存入A。已知共阴字段码表首址为TABD。解:编程如下: LED:MOV DPTR,#TABD;置共阴字段码表首址 MOV A,30H ;读显示数字 MOVC A,A+DPTR ;查表,转换为显示字段码 RET ;TABD:DB 3FH,06H,5BH,4FH,66H;04共阴字段码表 DB 6DH,7DH,07H,7FH,6FH;59共阴字段码表START

3、: MOV 30H , #09H LEDON: LCALL LED MOV P1 , A LCALL DELAY_1SDJNZ 30H , LEDONLJMP STARTEND 参照以上例题,按下列要求编写程序:注:可与例1一起参考。 循环显示数字; fosc=6MHz; 显示间隔为1S; 例:显示内存31H36H中内容START2 MOV R0 ,#31H ;待显示数据所在内存首址送R0 MOV R1 ,#01H ; R1=00000001,数码管的选择码送R1 MOV A , R1 ; A=00000001 , 指向第一个数码管LP0:MOV P3 ,A ; 未循环前, P3.0=1,经“

4、非”门后变为零,指向第一个数码管. MOV 30H , R0 ; 待显示数据送A LCALL LED MOV P1 ,A ; 段码送P1口,由被选中的数码管显示 LCALL DELAY_1MS ; 延时1 毫秒 INC R0 ; R0内容加1,指向下一个存储单元 MOV A ,R1 ; 选择数码管的数据送A. RL A ; A循环左移一位, 00000001变为00000010,指向下一个数码管 JB ACC.6 , LP2 ; 若A的第6位为1,转向LP2, 否则往下执行 MOV R1 , A ; 下一个数码管的选择码送R1 LJMP LP0 ; 6个数码管未显示完,继续.LP2: LJMP

5、 START2 4511真值表【例】试编制程序显示数字987解: MOV P1,#F7H ;输出个位显示数7 CLR P1.4 ;选通个位,P1.4=0 MOV P1,#F8H ;输出十位显示数8 CLR P1.5 ;选通十位, P1.5=0 MOV P1,#F9H ;输出百位显示数9 CLR P1.6 ;选通百位, P1.6=0 RET一、独立式键盘接口驱动程序:LP: MOV C, P1.0 JC LPKEY: . . SJMP LP独立式键盘与单片机接口独立式键盘与单片机接口(图1)ORG 0030H KB:MOV P1,#0FFH ;置P1口为输入口 MOV A,P1 ;读键状态 CP

6、L A ANL A,#0FH ;屏蔽高4位 JZ KB ;无键闭合则返回 LCALL D10MS ;延时去抖动 MOV A,P1 ;再读键状态 CPL A ANL A,#0FH JZ KB ;无键闭合则返回 CJNE A,#01H,KB01 INC 20H ;K1键闭合,20H单元加1 LJMP KBKB01:CJNE A,#02H,KB02 DEC 20H ;K2键闭合,20单元减1 SJMP KB KB02:CJNE A,#04H,KB03 MOV 21H,#00H ;K3键闭合,21H单元清0 LJMP KB KB03:CJNE A,#08H,KB MOV 21H,#0FFH ;K4键闭

7、合,21H单元置FF SJMP KB ;若有两键以上闭合则返回 END 中断系统应用举例【例】 出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。 解:编程如下: ORG 0000H ;复位地址 LJMP STAT ;转初始化 ORG 0003H ;中断入口地址 LJMP INT ;转中断服务程序 ORG 0100H; 初始化程序首地址 STAT: MOV SP,#60H ; 置堆栈指针 SETB IT0 ; 置边沿触发方式 MOV IP,#01H ;

8、置高优先级MOV IE,#81H ;开中 MOV 30H,#0 ;里程计数器清0 MOV 31H,#0 ; MOV 32H,#0 ; SJMP $ ; 等待中断 ORG 0200H ;中断服务子程序首地址 INT: PUSH Acc ;保护现场 PUSH PSW ; MOV A,30H ;读低8位计数器 ADD A,#2 ;低8位计数器加2m MOV 30H,A ;回存 CLR A ; ADDC A,31H ;中8位计数器加进位 MOV 31H,A ;回存 CLR A ; ADDC A,32H ;高8位计数器加进位 MOV 32H,A ;回存 PUSH PSW ;恢复现场 PUSH Acc ;

9、 RETI ;中断返回一. 定时/计数器概述 80C51单片机内部有两个16位定时/计数器T0和T1,其核心是计数器,基本功能是加1。 对外部事件脉冲(下降沿)计数,是计数器; 对片内机器周期脉冲计数,是定时器。 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入(T0/P3.4 T1/P3.5)。且外部脉冲的最高频率不能超过时钟频率的1/24。 工作方式116位计数器,最大计数值为216 = 65536。 工作方式2 图 方式 2(初始常数自动重装载) 8位计数器,仅用TL0计数,最大计数值为256,计满溢出后,一方面进位TF0,使溢出标志TF0 = 1;另一方面,使原来装在TH0中

10、的初值装入TL0。【例1】 已知晶振6MHz,要求定时0.5mS,试分别求出T0工作于方求出T0工作于方式0、方式1、方式2、方式3时的定时初值。 工作方式1: T0初值 =216-500s/2s=65536250=65286=FF06H TH0=FFH;TL0=06H。 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。 计算定时初值 T0初值 =216-50000s/1s =6553650000=15536=3CB0H TH0=3CH;TL0=B0H 设置TMOD: 0000 0 0 01 B = 01H T0方式1 T0用作定时器 与 无

11、关 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.

12、0输出方波信号,周期为2 ms。 设单片机的focs=12MHz。(C51) 周期为2ms的方波要求定时间隔1 ms,每次时间到P1.0取反。 定时器计数率为 fosc/12, Tcy = 12/fosc = 1 s。 每个机器周期定时器计数加1, 1 ms = 1000 s,需计数次数为1000/(12/fosc) = 1000/1 = 1000。 由于计数器向上计数,为得到l000个计数之后的定时器溢出,必须给定时器赋初值65536-1000,C语言中相当于-1000。80C51扩展外RAM时典型连接电路【例】试编制程序,从外部RAM6264起始地址(6000H)处读入数据,共16个数据,

13、存入以30H为首址的内RAM。IND: MOV DPTR,#6000H ;置外RAM地址 MOV R0,#30H ;置内RAM数据存储区首址IND0: MOVX A,DPTR ;输入数据 MOV R0,A ;存数据 INC R0 ;指向下一存储单元CJNE R0,#40H,IND0 ;判16个数据读完否?未完继续 RET 8-3 A/D转换接口电路一、A/D转换的基本概念 A/D转换的功能是把模拟量电压转换为N位数字量。 常见的N为8、10、128-4 D/A转换接口电路一、D/A转换的基本概念 D/A转换将N位数字量转换为相应的模拟量。 设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,其转换关系为: UA = DUREF /2N (其中:D=D020+D121+ +DN-12N-1)

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

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