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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机作业.docx

1、单片机作业八课时部分实验一开关状态指示闪烁灯实验目的:1.掌握编译工具keil和单片机模拟器proteus的使用。2.掌握简单位操作指令写法。3.掌握单片机I/O 口的输入输出功能。4.学习延时子程序的编写和使用。实验设备:预装了 keil及proteus的PC机。实验内容:1.在AT89C51单片机的P1.0端口上接一个发光二极管 L1,使L1在不停 地一亮一灭,一亮一灭的时间间隔为 0.2秒。2.监视开关K1 (接在P3.0端口上),用发光二极管L1 (接在单片机P1.0 端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。电路原理图如下图所示:3.AT89C51 单片机的 P

2、1.0- P1.3 接四个发光二极管 L1 - L4, P1.4- P1.7接了四个开关K1 - K4,编程将开关的状态反映到发光二极管上。 (开关闭合,对应的灯亮,开关断开,对应的灯灭)。电路原理图如下图所示:四.实验步骤:1.任务一:使用keil编辑程序,生成hex文件,打开DSN文件,把hex文件加入到单片机中,观察发光二极管的闪烁情况。2.任务二:使用keil编辑程序,生成hex文件,打开DSN文件,把hex文件加入到单片机中,合上开关,二极管发光,打开开关,二极管熄 灭。3.任务三:使用keil编辑程序,生成hex文件,打开DSN文件,把hex文件加入到单片机中,合上开关,对应的二极

3、管发光,打开开关,对 应的二极管熄灭。五.实验要求:1.根据实验任务要求,编写源程序。任务一的代码:ORG 2000HSTART: CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYSJMP START END任务三代码:ORG 2200HSTART: MOV A,P1;取开关值;开关对应发光二极管ANL A,#0F0H RR ARR ARR ARR AORL A,#0F0HMOV P1,ASJMP START END2.上机调试程序。六 思考:1.并行输入 /输出接口中 P0、P1、P2、 P3 口各有什么功能?并加以比较对比P0 口不接片外存储器与不扩展I/O

4、口时,可作为准双向I/O 口。接片 外存储器或扩展I/O 口时,P0 口分时复用低8位地址总线和双向数据总线。P1 口可以作为准双向I/O 口使用,另外对于52子系列,P1.0有第二 功能:定时/计数器2的计数脉冲输入端T2; P1.1也有第二功能:定时/计 数器2的外部控制端T2EX。P2 口可以作为准双向I/O 口使用以及高8位地址总线。P3 口可以作为准双向I/O 口,并且每一位都有第二功能。见下表引脚第二功能P3.0RxD:串行口接收数据输入端P3.1TxD:串行口发送数据输出端P3.2INT0:外部中断申请输入端0P3.3INT1:外部中断申请输入端1P3.4T0:外部计数脉冲输入端

5、0P3.5T1:外部计数脉冲输入端1P3.6WR:与外设控制信号输出端P3.7RD:读外设控制信号输出端2.有关端口操作的指令有哪些? 了解这些指令的功能这四个端口均各有一个锁存器(即特殊功能寄存器 P0P3),故可以具 有所有包含直接寻址方式的指令如:数据传送指令 MOV P0 #data, PUSH P0等算术运算指令ADDC A P0等逻辑运算指令ANL A,P0等条件转移指令CJNE A,P0, rel等另外这四个端口可以 按位使用,即每一位均能独立作输入输出用,故 可以使用位操作指令如:位传送指令MOV C P0.1 ;位逻辑操作指令CPL P0.3;位条件转移指 令 JB P0.2

6、,rel 等3.要求任务1中,将延时时间改为1分钟,则改程序将作如何的修改? 由于本题中,设定振荡频率为12MHz,指令周期为1us,而DJNZ指 令为双周期指令,故执行每条该指令需花费2us时间。1分钟为60000000us 故需要执行30000000次DJNZ指令,所以这里可以将代码修改为DELAY: MOV R4,#30D1: MOV R5,#100 涎时子程序,延时60秒D2: MOV R6,#100D3: MOV R7,#100DJNZ R7,$DJNZ R6,D3DJNZ R5,D2DJNZ R4,D1RET实验二 广告灯实验目的:1. 学习 P1 口的使用方法。2.学习延时子程序

7、的设计方法。3.学习移位指令的用法。 实验设备: 预装了 keil 及 proteus 的 PC 机。 实验内容 :1.八个发光二极管 L1L8 分别接在单片机的 P1.0P1.7 接口上,输出 “0” 时,发光二极管亮,开始时 P1.X P1.1 P1.2 P1.3-T P1.7 P1.6-T P1.0亮,重复循环。2. 利用取表的方法,使端口 P1 做单一灯的变化:左移 2 次,右移 2 次, 闪烁 2次(延时的时间 0.2秒)。电路原理图如下图所示:4.实验步骤:1.任务一:使用keil编辑程序,生成hex文件,打开DSN文件,把hex 文件加入到单片机中,观察二极管的闪烁情况是否符合实

8、验要求。2.任务二:使用keil编辑程序,生成hex文件,打开DSN文件,把hex 文件加入到单片机中,观察二极管的闪烁情况是否符合实验要求。5.实验要求:1.根据实验任务要求,编写源程序;任务一的代码:ORG 2000HSTART: MOV R2,#8MOV A,#0FEH ;最开始 L1 亮SETB CLOOP: MOV P1,ALCALL DELAYRLC A ; L2, L8 依次亮DJNZ R2,LOOPMOV R2,#8LOOP1:DELAY:D1:TABLE:MOV DPTR,#TABLECLR AMOVC A,A+DPTRCJNE A,#10H,LOOP ;执行到表中数据为 1

9、0H 时结束JMP STARTMOV P1,AMOV R3,#20LCALL DELAYINC DPTRJMP LOOPMOV R4,#20 ;延时子程序MOV R5,#248DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYRETDB 0FEH,0FDH,0FBH,0F7H ;按顺序排列码值DB 0EFH,0DFH,0BFH,07FHDB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0

10、FDH,0FEHDB 00H, 0FFH,00H, 0FFHDB 10HEND2.上机调试程序。六 思考:1.修改程序,使发光二极管闪亮时间改变。修改闪亮时间即是将代码中的延时子程序修改,这里修改为 0.1 秒闪亮 1 次,则将延时子程序改为:DELAY: MOV R4,#10D1: MOV R5,#248DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYRET2.修改程序,使发光二极管闪亮移位方向改变。对于任务一,可以将 RLC A 和 RRC A 的顺序调整,实现发光二极管 自L8L1 L8依次变亮对于任务二,根据如图所示电路,从程序中可以看出发光二极管的移 位方向是自上而下

11、两次,在自下而上两次,最后全亮全灭两次结束。这里 将其修改为自上而下自下而上自上而下自下而上全亮全灭结束将 TABLE 表数据改为:TABLE: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 00H, 0FFHDB 10HEND试验三报警产生器1.实验目的:掌握利用单片机产生音频信号的方

12、法。2.实验设备:预装了 keil及proteus的PC机。3.实验内容:用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms, 500Hz信号响200ms交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 55分钟电路原理图如下图所示:使用keil编辑程序,生成hex文件,打开DSN文件,把hex文件加入到 单片机中,运行仿真,报警器产生报警信号,按下 SP1,报警信号停止。五.实验要求:1.根据实验任务要求,编写源程序;ORG 2000HFF BIT P1.5 ;设置频率转换标志位SETB FF ;首先将

13、频率置为1KHzSTART: JB P1.7,START1.要求1KHz信号响200ms, 500Hz信号响100ms,应该如何调整程序?本题中,500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次。若要更改程序,达到 1KHz 信号响 200ms, 500Hz 信号响 100ms。只需将程序上半段产生 500Hz 信号的持续时间改为:MOV R2,#100程序下半段产生 1KHz 信号的持续时间改为:MOV R2,#10 DV1 :MOV R1 , #40 DV2: CPL P1.0DJNZ R1,DV2DJNZ R2,DV12.若

14、使两种信号交替有间隔的响,应该如何调整程序?假设间隔为 100 毫秒,则在 FIRST 和 NEXT 之前加入如下程序:MOV R2,#200LOOPO: LCALL DELY500DJNZ R2, LOOP0实验四I/O并行口直接驱动LED显示1.实验目的:1.掌握七段数码管的显示原理。2.掌握通过AT89C51驱动七段数码管的方法。2.实验设备:预装了 keil及proteus的PC机。3.实验内容:利用AT89C51单片机的P0端口的P0.0- P0.7连接到一个共阴数码管的a -h的笔段上,数码管的公共端接地。在数码管上循环显示 0-9数字,时间间 隔0.2秒。四.实验步骤:使用kei

15、l编辑程序,生成hex文件,打开DSN文件,把hex文件加入到 单片机中,运行仿真,数码管循环显示 0-9数字。五.实验要求:1.根据实验任务要求,编写源程序;实验代码为:ORG 2000HSTART:NEXT:MOV R1,#00HMOV A,R1MOV DPTR,#TABLEMOVC A,A+DPTR ;从 0 开始显示MOV P0,ALCALL DELAYINC R1CJNE R1,#10,NEXT ;判断是否显示到 9LJMP STARTDELAY:D2:MOV R5,#20 ;延时子程序MOV R6,#20D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1DJNZ R

16、5,D2RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND2. 上机调试程序。 六 思考:调整程序 ,试让数码管所显示数字递减循环。只需将表TABLE中数据颠倒一下变为从9-0的段选码即可。为:TABLE:DB 6FH,7FH ,07H ,7DH ,6DH,66H,4FH,5BH,06H,3FH实验五 按键识别实验目的:1.了解按键识别的方法。2.掌握一键多功能的原理。实验设备: 预装了 keil 及 proteus 的 PC 机。 实验内容 :1.每按下一次开关SP1,计数值加1,通过AT89C51单片机的P1端口的 P1.0到P1.

17、3显示出其的二进制计数值。2.开关 SP1 接在 P3.7/RD 管脚上,在 AT89C51 单片机的 P1 端口接有四 个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,3.4.实验步骤:1任务一:使用keil编辑程序,生成hex文件,打开DSN文件,把hex 文件加入到单片机中,运行仿真,每次按下开关,计数加一,二极管 都会用二进制形式显示结果。2.任务二:使用keil编辑程序,生成hex文件,打开DSN文件,把hex文件加入到单片机中,运行仿真,按周实验内容的要求,按下开关, 观察二极管的亮灭是否符合要求。5.实验要求:3.根据实验任务要求,编写源程序;任务一的代码:O

18、RG 2000HSTART:MOV R1,#00H;从0开始计数MOV A,R1CPL AMOV P1,A;送出P1端口由发光二极管显示REL:JNB P3.7,REL;判断SP1是否按下LCALL DELAY;若按下,则延时10ms左右JNB P3.7,RELINC R1MOV A,R1 CPL AMOV P1,AJB P3.7,$SJMP REL DELAY: MOV R6,#20 L1 : MOV R7,#248DJNZ R7,$DJNZ R6,L1RETEND 任务二的代码:FLAG EQU P2.0L1 BIT P1.0L2 BIT P1.1L3 BIT P1.2 L4 BIT P1

19、.3ORG 2000HMOV FLAG,#00H START: JB P3.7,RELLCALL DELAY1JB P3.7,REL INC FLAG MOV A,FLAGCJNE A,#04,RELMOV FLAG,#00HREL: JNB P3.7,$MOV A,FLAGCJNE A,#00H,IS0;计数内容加 1;发光二极管显示;等待 SP1 释放;延时 10ms 子程序;定义标志位;开始时标志位置 0,从 L1 亮起 ;调用延时程序 1 判断是否真的按键 ;每按一次键,二极管移位一次 ;判断是否按到连续按到第五次;按到第 5 次标志位清 0CPL L1 ;按到第一次则执行LCALL

20、DELAYSJMP STARTIS0:CJNE A,#01H,IS1CPL L2;按到第二次则执行LCALL DELAYSJMP STARTIS1:CJNE A,#02H,IS2CPL L3LCALL DELAY SJMP START;按到第三次则执行IS2:CJNE A,#03H,IS3CPL L4LCALL DELAY SJMP START;按到第四次则执行IS3:LJMP START;按到第五次重新开始DELAY1:MOV R6,#20;延时 10 毫秒程序LOOP1:MOV R7,#248DJNZ R7,$DJNZ R6,LOOP1RETDELAY:MOV R5,#20;延时 200

21、毫秒程序LOOP2:LCALL DELAY1DJNZ R5,LOOP2 RETEND4. 上机调试程序。 六 思考:1. 在任务一中,我们做的是加法显示,如果要求是减法显示,应如何调 整程序?减法显示只需将上述程序改为:MOV R1,#0FFHJ J J J J J J JJNB P3.7,REL ;判断 SP1 是否真得按下DEC R1 ;若真按下,计数内容减 12. 在任务二中,如果要求二极管闪烁的顺序颠倒过来,应如何调整程 序?当最开始判断时, CJNE A,#00H,IS0若相等,则 CPL L4F面依次执行CPL L3、CPL L2、CPL L1即可实验六计数器与计时器实验目的:1.

22、学习单片机计数器的使用和编程。2.熟悉计数器中断处理程序的编程。实验设备:预装了 keil及proteus的PC机。实验内容:1.利用AT89C51单片机来制作一个手动计数器,在 AT89C51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的 P2.0P2.7接一个共阴数码管,作为 00 99计数的个位数显示,用单片机 的P0.0- P0.7接一个共阴数码管,作为 00 99计数的十位数显示。2.在AT89C51单片机的P0和P2端口分别接有两个共阴数码管,P0 口 驱动显示秒时间的十位,而 P2 口驱动显示秒时间的个位。电路原理图如下图所示:四.实验步骤:1任务一:使用ke

23、il编辑程序,生成hex文件,打开DSN文件,把hex 文件加入到单片机中,运行仿真,按照实验要求,按下开关,计数加 一,观察数码管显示数字是否正确。2.任务二:使用keil编辑程序,生成hex文件,打开DSN文件,把hex 文件加入到单片机中,运行仿真,观察数码管是否显示秒表计时,到 达59秒时,是否归零。五 实验要求:1. 根据实验任务要求,编写源程序; 任务一的代码:SP1 BIT P3.7ORG 2000HSTART:MOV R1,#00H ;设初值 0NEXT:MOV A,R1MOV B,#10DIV AB ;得到计数值的十位MOV DPTR,#TABLEMOVC A,A+DPTRM

24、OV P0,AMOV A,B ;得到计数值的个位MOVC A,A+DPTRMOV P2,AWT:JNB SP1,WTWAIT:JB SP1,WAIT ;判断键是否按下LCALL DELY1JB SP1,WAITINC R1 ;计数值加 1MOV A,R1CJNE A,#100,NEXT ;判断是否加到 100LJMP STARTDELY1:MOV R6,#20D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND任务二的代码:ORG 0START:MOV R0,#00H ;

25、设初值 0NEXT:MOV A,R0MOV B,#10TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND2. 上机调试程序。六 思考:1. 实验电路中只有 2 位数码管,当需要多位数码管时,电路应如何连接? 在这里我们可以 采用动态显示方式 ,将所有位的段选线并接在一个I/O 口上,而利用另一个 I/O 口来选择哪一位显示。这样从段选线 I/O 口 上按位依次分别送显示字符的段选码, 在位选控制口也按相应的次序分别 选通相应的显示位, 选通位显示相应字符, 并保持几毫秒的延时, 未选通 位则不显示字符。 因为人的视觉滞留, 看不出这种变化, 各位显示器能连 续稳定地显示不同的字符。

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

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