为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机1

2013-11-13 40页 ppt 275KB 14阅读

用户头像

is_074303

暂无简介

举报
单片机1null基于PROTEUS的PIC单片机仿真设计 基于PROTEUS的PIC单片机仿真设计 机电学院 郭军第三章 PIC指令系统第三章 PIC指令系统PIC指令系统概览PIC指令系统概览PIC16F877共有35条指令,按操作对象可分为3类 面向字节操作类(17条) 面向位操作类(4条) 常数操作和控制操作类(14条)面向字节操作类指令面向字节操作类指令面向字节操作类指令面向字节操作类指令除了CLRF,MOVWF两条指令外,面向字节指令执行结果都可以有两个目的地,W寄存器或参与操作的字节寄存器本身 对减法指令,SUBWF,执行...
单片机1
null基于PROTEUS的PIC单片机仿真设计 基于PROTEUS的PIC单片机仿真设计 机电学院 郭军第三章 PIC指令系统第三章 PIC指令系统PIC指令系统概览PIC指令系统概览PIC16F877共有35条指令,按操作对象可分为3类 面向字节操作类(17条) 面向位操作类(4条) 常数操作和控制操作类(14条)面向字节操作类指令面向字节操作类指令面向字节操作类指令面向字节操作类指令除了CLRF,MOVWF两条指令外,面向字节指令执行结果都可以有两个目的地,W寄存器或参与操作的字节寄存器本身 对减法指令,SUBWF,执行指令前应将被减数存入W 带进位循环左移面向位操作类指令面向位操作类指令常数操作和控制操作类指令常数操作和控制操作类指令指令系统寻址方式指令系统寻址方式寻址:寻找操作数的存放地址。 PIC指令系统寻址方式 立即寻址 直接寻址 寄存器间接寻址 位寻址 指令系统寻址方式指令系统寻址方式立即寻址 指令码中携带着实际操作数(立即数) 例 ADDLW 16H,其中16H就是参与运算的立即数 直接寻址 指令码中包含着被访问寄存器的单元地址 例 XORWF 16H,其中16H为参与运算的寄存器,其中存储的内容实际参与运算指令系统寻址方式指令系统寻址方式间接寻址 通过INDF(0)寄存器作为参与运算的寄存器,实际指定FSR寄存器的内容为目标寄存器地址,称为间接寻址。 指令系统寻址方式指令系统寻址方式位寻址 可以对任一寄存器中的任一位直接寻址访问 汇编语言语句格式汇编语言语句格式标号 操作码(指令助记符) 操作数;注释 顺序固定 标号可选 标号可以和随后的指令码写在一行或分为两行,效果相同 汇编程序设计汇编程序设计分支程序设计 循环程序设计 子程序设计 中断程序设计汇编程序设计汇编程序设计循环程序的设计。 根据循环体先执行还是循环条件先判断可分为两种模式,如下图(a)(b)所示。编程实例1编程实例1设计一程序,将20H~30H之间的所有RAM都存放33。 分析:这是需要应用循环的典型例子。首先计算需操作的总次数,设置一循环变量表示已操作数,另一变量表示待操作地址,采用间接寻址方式编程。编程实例1编程实例1程序图编程实例1编程实例1程序源代码编程实例1编程实例1在菜单“Debuger -> Select Tool”中选择”5 MPLAB SIM ” 运行程序,选择“View -> File Registers” 如下图所示,从20H~30H的单元都被写入21H,即33。结果正确。 汇编程序设计汇编程序设计子程序设计 同高级语言的概念类似,汇编语言子程序也是可以被主程序调用的独立代码段。 不同之处主要体现在汇编语言子程序不提供入口参数传递机制,只能通过主、子程序对共同的RAM单元的读写来完成参数传递。编程实例2编程实例2设计一程序,将从30H单元开始存放的3个数中的最大值找出,并存入40H单元。 分析:很显然,找到3个数中的最大一个首先要将前两个相比较,将其中较大的和第3个比较,就得到所求的最大值。这其中,两次都需要比较两个数的大小,可以用子程序实现。编程实例2编程实例2编程实例2编程实例2为了验证程序,我们另外编写了一个初始化子程序INIT,将30H~32H单位分别写入3,4,8。 初始化子程序如下编程实例2编程实例2主程序如下编程实例2编程实例2最大值子程序如下编程实例2编程实例2程序运行结果如下,40H单元出现了最大值8。练习1练习1编程求从1加到10 思考:从1加到100怎么求?练习2练习2编程找出连续存放的10个数中的最小值。练习3练习3编程,实现给定存储器首、末地址,将其中数据按从小到大排列的子程序。汇编程序设计汇编程序设计查表程序设计 在单片机开发应用中,经常用到查表程序,来实现代码转换、索引或翻译等功能。 同样的功能在高级语言中一般通过数组来实现。实验1:7段数码管显示实验1:7段数码管显示所需器件 实验1:7段数码管显示实验1:7段数码管显示实验电路如图所示,晶振频率设为4MHz,电阻、电容值如图,保存为“7段数码管.DSN”实验1:7段数码管显示实验1:7段数码管显示程序设计目标:在7段数码管上轮流显示数字1,2,3…F。 分析:数字的显示是通过将不同位置的数码管点亮来实现的,首先应将对应端口B的组合状态编制成表,通过查表来实现对应数字显示。实验1:7段数码管显示实验1:7段数码管显示程序流程图实验1:7段数码管显示实验1:7段数码管显示主程序源代码实验1:7段数码管显示实验1:7段数码管显示查表程序源代码实验1:7段数码管显示实验1:7段数码管显示7/8段共阴数码管结构如下图所示, 例如显示0,要a,b,c,d,e,f都点亮,而g不亮,因此其段码为B’00111111’,即3FH,同理可得其它段码实验1:7段数码管显示实验1:7段数码管显示查表程序原理 在调用查表子程序前,首先将位置偏移码送入W 在子程序开始,将W与PCL相加,转到相应的段码位置,用RETLW将对应代码通过W返回。实验1:7段数码管显示实验1:7段数码管显示程序运行结果,数码管循环显示数字实验1:7段数码管显示实验1:7段数码管显示程序循环显示数字简单地利用了溢出原理,从0开始累加,到达F后再加1低4位再次回0。练习4练习4用2个7段数码管循环显示00~99。
/
本文档为【单片机1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索