0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解PIC系列单片机数据存储器转换寄存器的指令

jf_35136247 来源:jf_35136247 作者:jf_35136247 2023-06-25 13:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

A/D转换寄存器这里摘录一段笔者从网上下载的用PIC16F877单片机芯片(带Flash存储器的)完成有关A/D转换的源程序部分指令,并用它说明有关A/D转换寄存器在指令中的用法。

这里先引用部分源程序,源程序中的注释是笔者按照指令在程序中的作用所加的注释(不是某条指令的直接功能),这是初学者读以下指令时应注意的。A/D转换器部分源程序清单如下:

DEMO877ASM

ListP=16F877

org 0x00 ;复位向量

NOP ;空操作

Start Banksel PORTC;选择PORTC所在

;数据存储器的存储

;体(实为Bank0)

CLRF PORTC ;对RC口清零

MOVLW B′01000001′ ;A/D转换时钟

;择FOSC/8,打开

; A/D转换器

MOVWF ADCON0 ;设定了A/D转换

;操作部分参数

Banksel OPTION_REG ;选择OPTION所在

;数据存储器的存储

;体(实为Bank1)

MOVLW B′10000111′ ;设置预分频器TM

; R0,分频率1∶256

MOVWF OPTION ;完成上条指令设置

CLRF TRISC ;设定RC口(8位)

;为输出

MOVLW B′0001110′ ;选中模拟量通道1

;(RA1/AN1)

MOVWF ADCON1 ;模拟基准电压

VREF为芯片电源电压,选择通道1(RA1/AN1)完成main …

要阅读上述的指令,读者还需了解以下几点补充知识:

(1)关于用PIC16F877单片机作A/D转换器。PIC16F877单片机是具有多通道模拟量输入的8位A/D转换器。上述的源程序是利用该PIC产品作A/D转换的一种实验程序,其实验目的是用PIC16F877单片机来实现一个通道的8位A/D转换,并将转换结果以二进制形式经RC口输出再由LED显示。

(2)编制与A/D转换器有关的专用寄存器指令。要读懂上述的源程序,应根据以下的线索:

1)把握源程序的编写惯例;

2)选择RC口和对它清零;

3)给A/D控制寄存器ADCON0的各位置数,达到A/D转换时选择A/D位的采样时间,即注释中的A/D时钟选择;

4)选择专用寄存器Option并给它各位置数,达到选择预分频器TMR0和确定其分频率(1∶256);

5)设定RC口为输出,以保证LED显示;

6)给A/D控制器ADCON1的各位置数,以确定PIC16F877单片机的RA1口为模拟量的输入通道。并选中芯片电源作基准电压。

想要了解更多单片机的知识,可以登录奥柯网站或者电话奥柯技术人员,免费获得技术支持,期待您的来电!
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45334

    浏览量

    663295
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129034
  • PIC
    PIC
    +关注

    关注

    8

    文章

    511

    浏览量

    90424
  • 指令
    +关注

    关注

    1

    文章

    617

    浏览量

    37292
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从代码执行看单片机内存的分配

    。 由于本次进入指令寄存器中的内容是74H(操作码),以译码译码后单片机就会知道该指令是要将一个数送到A累加
    发表于 12-02 07:58

    【NCS随笔】nRF54L15使用UICR寄存器保存数据

    nRF54L15使用UICR寄存器保存数据 本文章主要是讲解如何使用nRF54L15的UICR寄存器保存一些基础数据 一、UICR寄存器的说
    的头像 发表于 11-27 17:09 1103次阅读

    嵌入式系统必懂的 20 个寄存器

    了嵌入式系统中开发者必懂的20个寄存器,让你快速掌握MCU的核心操作方法。01寄存器基础寄存器是CPU内部用于高速存取数据的小容量存储单元,
    的头像 发表于 11-14 10:28 643次阅读
    嵌入式系统必懂的 20 个<b class='flag-5'>寄存器</b>

    浮点指令(六:寄存器

    寄存器是32位的,如果支持D扩展指令子集,则每个通用寄存器是64位的,如果支持Q扩展指令集,则每个浮点通用寄存器是128位的。 如果处理
    发表于 10-24 06:58

    ‌TPIC6B595 8位功率移位寄存器技术文档总结

    或高压负载。 该器件包含一个 8 位串行输入、并行输出移位寄存器,该寄存器为 8 位 D 型存储寄存器供电。数据分别通过移位
    的头像 发表于 09-09 10:16 720次阅读
    ‌TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技术文档总结

    ‌TLC6C5912 12通道移位寄存器LED驱动技术文档总结

    D型存储寄存器。通过移位寄存器存储寄存器进行数据传输 移位
    的头像 发表于 08-26 14:16 747次阅读
    ‌TLC6C5912 12通道移位<b class='flag-5'>寄存器</b>LED驱动<b class='flag-5'>器</b>技术文档总结

    单片机原理及应用详解

    单片机(Microcontroller Unit, MCC)  是一种集成计算机核心功能(CPU、存储器、I/O接口等)的微型芯片,广泛应用于嵌入式系统中。以下是其原理及应用的详细介绍: 一、单片机
    的头像 发表于 08-11 13:57 1522次阅读

    PMS15A/PMS150C系列8位OTPIO型单片机

    静态,以OTP为程序存储基础的单片机。使用RISC的架构基础使大多数的指令启动时间都是一个指令周期,只有极少数指令是需要两个
    发表于 06-23 09:00

    单片机实例项目:AT24C02EEPROM存储器

    单片机实例项目:AT24C02EEPROM存储器,推荐下载!
    发表于 06-03 20:50

    第四章 什么是寄存器

    本篇文章我们讲解了寄存器的概念、地址映射和寄存器操作等内容,内容比较干,大家有个概念即可,不要求全部熟记掌握,有需要时可重复查阅观看。下一篇我们将开始进行实操内容,通过控制单片机的GPIO来点亮一颗LED,敬请期待!
    的头像 发表于 05-21 14:23 1128次阅读
    第四章 什么是<b class='flag-5'>寄存器</b>

    C51单片机及C语言知识点必备秘籍

    功能寄存器 系列二 8:单片机寻址方式与指令系统 9:单片机数据传递类
    发表于 05-15 14:00

    扒一扒单片机存储器的那些事

    单片机存储器的关系像什么?单片机里的存储都是一样的吗?为什么有的单片机既有EEPROM又有Flash?
    的头像 发表于 04-10 10:06 1328次阅读
    扒一扒<b class='flag-5'>单片机</b>与<b class='flag-5'>存储器</b>的那些事

    STC15系列常用寄存器汇总免费下载

      寄存器的功能是存储二进制代码,它是由具有存储功能的触发组合起来构成的。一个触发可以存储
    发表于 01-22 17:24 10次下载

    RISC-V基础指令详解

    RISC-V中定义了六种指令类型,其中包括 R型指令 : 用于寄存器寄存器之间算数运算的指令 I型指令
    发表于 12-29 18:47

    LDC1314与单片机通信正常,无法读出寄存器0X02的数据,为什么?

    LDC1314与单片机通信正常,可以读出id 但是无法读出寄存器0X02的数据 读出的结果一直是0x00
    发表于 12-27 07:34