1、综述:

总体来看,这款芯片功能齐全:
ADC
cps
EEPROM
DAC
DSM
USART
SR latch
timer(3)

2、存储

2048的RAM

3、寄存器详解

寄存器种类

寄存器 功能
CORE REGISTERS 直接影响基础操作
STATUS Register 指令目的地
SPECIAL FUNCTION REGISTER 控制外设
GENERAL PURPOSE RAM 每个数据单元的通用寄存块
Linear Access to GPR 通往大型存储结构
COMMON RAM 通用的存储单元

3.1、核心寄存器

核心寄存器 作用
INDF0 $1600
INDF1 $12
PCL $1
STATUS
FSR0 Low
FSR0 High
FSR1 Low
FSR1 High
BSR
WREG|
PCLATH|INTCON|

INDF0

INTCON寄存器

状态寄存器

3.2、特殊功能寄存器

The Special Function Registers are registers used bythe application to control the desired operation of peripheral functions in the device. The registers associated with the operation of the peripherals are described in the appropriate peripheral chapter of this
data sheet.
这种类型的寄存器主要用于控制外设

3.3、通用寄存单元

The general purpose registers are a group of RAM locations in the file register that are used for data storage and scratch pad. Each location is 8 bits wide and can be used to store any data we want as long as it is 8 bit. Again, the number of RAM locations in the file register that are set aside for general purpose registers can vary from chip to chip, even among members of the same family. In the PIC micro-controllers, the space that is not allocated to the special function registers is used for general purpose registers. That means in a PIC chip with a thousand-byte file register, no more than 100 bytes are used for special function registers are the rest are used for general purpose registers. A larger GPR size means more difficulties in managing these registers if you use assembly language programming. In today’s high performance micro-controllers, with a over of thousand bytes of GPR, the job of managing them is handled by the C compilers. Indeed, the C compilers are the very reason we need a large GPR since it makes it easier for C compilers to store parameters and perform their jobs much faster.

4、点灯


#include <pic.h>__CONFIG(0xFF32); //配置字void main()
{TRISA = 0;            //设置a为输出模式PORTA =0x00000001;   //输出while(1);           //循环
}

5、汇编程序分析

下图 program memory 查看汇编代码

Address           Disassembly          000    GOTO 0x1                                   跳转到INDF001    CLRF 0x8                                          清零BSR 002    GOTO 0x7f6                                 跳转到0x7f6736    MOVWI [-1]FSR1                           737    MOVWI [-1]FSR1                7F5    MOVWI [-1]FSR1                  7F6    MOVLB 0                                      BSR =07F7    GOTO 0x7f8                                    跳转到0x7f87F8    MOVLB 0x1                                    BSR = 17F9    CLRF 0xc                                         清零 PORTA7FA    MOVLW 0x1                                    w= 17FB    MOVLB 0                                     BSR = 0 7FC    MOVWF 0xc                                   w=0xc7FD    GOTO 0x7fe                                 跳转到0x7fe7FE    GOTO 0x7fe                                   跳转到0x7fe7FF    GOTO 0x1                                     跳转到0x1

总结,这里我们要十分主义的是,我们每次改变BSR数值的时候,其实就是改变bank数据块,那么当BSR =1 的时候,我们再执行 movwf 0xc实际的起始地址是,bank1 的起始地址,所以这里的0xc实际上是指 0x8c TRISA

PIC16F1823开发笔记(二)芯片研究以及第一个程序和汇编研究相关推荐

  1. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  2. [安卓开发笔记二]android Studio通过jni调用C++代码

    [安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...

  3. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7707628 作者:毛星云 邮箱: happ ...

  4. iOS工程开发笔记二

    iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...

  5. 微信小程序开发笔记二(WXSS和CSS样式美化)

    微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...

  6. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  7. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云    邮箱: h ...

  8. NRF51822开发笔记-2.Keil-MDK编译的第一个程序

    NRF51822开发笔记-2.Keil-MDK编译的第一个程序 1.进入安装路径,找到第一个实验Blinky_example,双击打开 2.编译 3.编译成功,无错误 4.生成了Hex文件 编译成功了

  9. UNP学习第一步:unp.h的安装及第一个程序的运行

    UNP学习第一步:unp.h的安装及第一个程序的运行 unp.h的安装 源代码编译 静态库安装 运行第一个程序 启动daytime服务 unp.h的安装 源代码编译 在书籍网站(http://www. ...

最新文章

  1. MongoDB删除数据
  2. c语言药房系统书写指导书,C语言药房管理系统[文书借鉴]
  3. 7-20上午上机题实现
  4. 廖雪峰python学习笔记——函数式编程
  5. java 验证码透明背景_Java中的证书透明度验证
  6. oracle日记账单据编号未生成_商管财务数据平台Oracle与共享未付池差异如何核对、解决?...
  7. 彩虹DS6.6免授权版源码+后台同步更新+独家防黑策略
  8. 比较json和fastjson的put()
  9. volley三种基本请求图片的方式与Lru的基本使用:正常的加载+含有Lru缓存的加载+Volley控件networkImageview的使用...
  10. java 子类调用父类内部类_java 如何在子类方法中实例化父类的内部类?
  11. Vue引入Froala-Editor富文本编辑器
  12. 简析also, too, as well,either用法
  13. 基于pytorch的segnet实现,使用camvid数据集训练
  14. 【题库】OBCA认证考试题库(单选部分)
  15. HTML5 学习总结(四)——canvas绘图、WebGL、SVG
  16. 单调队列(P3088 Crowded Cows S)
  17. 怎样清除bios密码
  18. SpringBoot使用LUA解决Redis库存遗留问题
  19. 功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】
  20. LabVIEW与Xplane飞行界面数据仿真交互

热门文章

  1. VirtualBox 四种网络连接
  2. java周边商户计算性能差_【美团外卖商家版电脑版和BLOG4J高性能的java/jsp版博客系统哪个好用】美团外卖商家版电脑版和BLOG4J高性能的java/jsp版博客系统对比-ZOL下载...
  3. 解决bootstrap轮播图因为图片尺寸造成的问题
  4. 近红外光谱基线校正---airPLS
  5. eac 反调试_一种可能被用于EAC保护的检测调试器方案
  6. Anderson《空气动力学基础》5th读书笔记 第2记——流体静力学初步
  7. 夜宴 VS 疯狂的石头
  8. PHP获取SSL客户端证书信息
  9. 机械硬盘的内部结构与读写访问特性
  10. android开发笔记之一个电子桌面相册的半成品