PIC16F1823开发笔记(二)芯片研究以及第一个程序和汇编研究
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开发笔记(二)芯片研究以及第一个程序和汇编研究相关推荐
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- [安卓开发笔记二]android Studio通过jni调用C++代码
[安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7707628 作者:毛星云 邮箱: happ ...
- iOS工程开发笔记二
iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...
- 微信小程序开发笔记二(WXSS和CSS样式美化)
微信小程序开发笔记二(WXSS和CSS样式美化) 一.CSS基本知识 1.Class选择器的定义 2.ID选择器的定义 3.ID选择器和class选择器的区别 4.CSS中设置颜色 5.CSS中的文本 ...
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
- 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云 邮箱: h ...
- NRF51822开发笔记-2.Keil-MDK编译的第一个程序
NRF51822开发笔记-2.Keil-MDK编译的第一个程序 1.进入安装路径,找到第一个实验Blinky_example,双击打开 2.编译 3.编译成功,无错误 4.生成了Hex文件 编译成功了
- UNP学习第一步:unp.h的安装及第一个程序的运行
UNP学习第一步:unp.h的安装及第一个程序的运行 unp.h的安装 源代码编译 静态库安装 运行第一个程序 启动daytime服务 unp.h的安装 源代码编译 在书籍网站(http://www. ...
最新文章
- NVisionXR_iOS教程二 —— 创建控制器和Vuforia对象
- JavaScript Binding
- 【论文笔记】LINE:大规模信息网络嵌入
- vue引入bootstrap、jquery
- 还在搞三层架构?DDD 分层架构了解下!
- 01. View C++ as a federation of languages
- 服务器远程桌面一直正在配置,关于远程桌面一直显示正在配置远程会话
- 随手记-----cookie
- gsp 页面 html.dat,Gsp
- Unity使用FGUI的基本操作(一)
- 基本磁盘转换动态磁盘,再转换为基本磁盘,分区数据丢失
- iPhone屏幕尺寸、逻辑分辨率、物理分辨率、像素密度 (2018)
- cocos 场景制作流程
- 拳皇 - 人物动作素材图 61种
- 嵌入式学习笔记7——串口通信
- POS单上的商户编号解释
- AudioEffect源码解析
- 当我跑步时,我在想什么
- 校招面试真题 | 实习生和应届生有什么区别?
- Python中 * 的用途
热门文章
- 2020 PostgreSQL亚洲大会-PostgreSQL授权培训机构公益专场精彩回顾
- 幼儿园关于计算机的应用教案,幼儿园中班教案《聪明的电脑》含反思(通用)...
- 平台商业模式成就了阿里巴巴
- RTC 2017实时互联网大会会议总结、数据收集
- 802.11a matlab,802.11a-OFDM 基于matlab的 仿真程序;
我再论坛找了很多 的代码和文章,但总有遗患,为什么呢 270万源代码下载- www.pudn.com...
- 一文搞清楚单相ab0到dq0的变换
- 电脑连接电视的方法——HDMI篇(图文详解)
- Git命令行上传项目至GitHub
- Java8特性 stream流常用方法
- 多卡聚合路由器在无人机电力巡检领域图传的作用