整理所学|单片机原理及应用-第三版-张毅刚(二:实验)

这篇博客主要记录了博主在学习单片机过程中进行的实验,包括实验目的、程序编译执行的步骤以及五个具体实验的内容。通过KEIL和PROTEUS软件,博主掌握了中断原理、定时计数器、非编码键盘、串口通信和存储器扩展。详细介绍了从创建工程、编写代码到在PROTEUS中仿真运行的整个过程。
摘要由CSDN通过智能技术生成

博主是2018级机械设计制造及自动化的学生,本来对结构颇为感兴趣,由于这学期课程接触到了单片机和编程,再加上对传统行业的落寞感到的心生倦怠和对自动化和芯片的浓厚兴趣,让我产生了对嵌入式行业产生了不小的兴趣,所以打算边学边写,看看能不能入得了这个行业槛。
当然作为整理所学,也不只是为了我自己日后方便回顾所学,也是为了刚开始接触这门学科的同学,因为我是比较崇尚B站大学的,很多学科也是托了B站才能够在课下多学点知识(主要是上课有时候确实会听漏),但是对于这门课网上的课程确实对于初学者实在是不太友好,所以想要写点,为了帮助和我遭遇一样的同学们。
(以上纯属废话)

一、实验目的

  • 软件部分:

    • 熟悉KEIL和PROTEUS软件的安装与使用方法,
    • 掌握基于PROTEUS的单片机系统仿真方法,
    • 以及实现KEIL和PROTEUS的联调。
  • 实验部分(硬件与编程):

    • 实验一:掌握中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断响应过程的理解;
    • 实验二:掌握51单片机定时计数器的原理,包括相关工作方式寄存器,控制寄存器,工作方式、计数初值的计算等内容;
    • 实验三:掌握非编码键盘的工作原理,包括利用扫描法和线反转法实现如何判断键盘按下,如何判断键号等基本内容;
    • 实验四:掌握串口通信的工作原理,包括串口通信工作方式,特殊功能寄存器的设置,波特率制定等内容;
    • 实验五:理解单片机的三总线结构,理解单片机存储器扩展常用的锁存器、译码器、RAM存储器以及ROM存储器;

二、记录程序从编译到执行的实验结果:

1:打开KEIL新建工程
在这里插入图片描述
2:为目标选择单片机型号
在这里插入图片描述
3:这里我们选择的是AT89C51,在画电路图的时候我们也需要用这个相同的单片机在这里插入图片描述
4:后面新建代码页,这时需要在后面加上.asm才能够被后面的选择到
在这里插入图片描述
5:然后双击原组,在里面选择刚刚所创建的文件
在这里插入图片描述
6:选择TARGET OPTIONS需要选择一些选项
在这里插入图片描述
7:在OUTPUT里面选择CREATE HEX FILE,因为PROTEUS里面,C51单片机的程序只能使用HEX格式的文件。
在这里插入图片描述
8:然后在DEBUG里面选择最后一项
在这里插入图片描述
9:在程序输入完成后,点击BUILT,和REBUILT,运行程序看是否有问题出现。
在这里插入图片描述
10:在程序调试完成后,就可以保存,然后来到PROTEUS的界面,选PROGRAM FILE 这一栏里面点击文件夹。
在这里插入图片描述
11:然后选择刚刚保存的那个HEX文件,点击确定。
在这里插入图片描述
12:点击左下角的那个仿真开始键,如果程序没问题,就可以开始进行操作了。
在这里插入图片描述

三、完整代码

实验一:当按下按键时,相邻2个LED灯从左向右移动。即先灯1,2亮,然后3,4亮,然后5,6,然后7,8亮。

ORG   0000H
LJMP  MAIN
ORG   0013H
LJMP  IT
ORG   0030H
MAIN: MOV   P1, #0C0H
SETB  EA
SETB  EX1
SETB  IT1
SJMP  $
IT:   MOV  A,P1
RR    A
RR    A
MOV   P1,A
RETI
END

实验二:采用T0作为定时器,T1作为计数器,实现1秒钟的定时,要求采用中断方法,定时时间到,在LED数码管上显示数字1。数码管所连接的I/O口自行设定。

           ORG    0000H
RESET:     LJMP   MAIN   
           ORG    000BH 
           LJMP   IT0P 
           ORG    1000H 

MAIN:      MOV    SP,#60H
           MOV    B,#0AH 
           MOV    TMOD,#01H
           MOV    TL0,#0B0H  
           MOV    TH0
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值