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

发布者:SereneDreamer最新更新时间:2022-01-06 来源: eefocus关键字:PIC16F1823  开发笔记 手机看文章 扫描二维码
随时随地手机看文章

1、综述:

总体来看,这款芯片功能齐全:

ADC

cps

EEPROM

DAC

DSM

USART

SR latch

timer(3)

在这里插入图片描述

2、存储

在这里插入图片描述

2048的RAM

在这里插入图片描述

3、寄存器详解

寄存器种类

image.png

3.1、核心寄存器

image.png

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


__CONFIG(0xFF32); //配置字


void main()

{

TRISA = 0; //设置a为输出模式

PORTA =0x00000001; //输出

while(1); //循环

}


5、汇编程序分析

下图 program memory 查看汇编代码

在这里插入图片描述

 Address           Disassembly          


   000    GOTO 0x1                      跳转到INDF

   001    CLRF 0x8                      清零BSR 

   002    GOTO 0x7f6                    跳转到0x7f6

   736    MOVWI [-1]FSR1               

   737    MOVWI [-1]FSR1                

   7F5    MOVWI [-1]FSR1               

   7F6    MOVLB 0                        BSR =0

   7F7    GOTO 0x7f8                    跳转到0x7f8

   7F8    MOVLB 0x1                      BSR = 1

   7F9    CLRF 0xc                      清零 PORTA

   7FA    MOVLW 0x1                      w= 1

   7FB    MOVLB 0                        BSR = 0 

   7FC    MOVWF 0xc                          w=0xc

   7FD    GOTO 0x7fe                    跳转到0x7fe

   7FE    GOTO 0x7fe                    跳转到0x7fe

   7FF    GOTO 0x1                      跳转到0x1


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

关键字:PIC16F1823  开发笔记 引用地址:PIC16F1823开发笔记(二)芯片研究以及第一个程序和汇编研究

上一篇:PIC反汇编(二)汇编程序和c对照
下一篇:PIC16F1823开发笔记(一)准备和开发环境,资料推荐

推荐阅读最新更新时间:2024-11-08 18:02

STM32开发笔记70: 传递参数对套接字地址进行强制类型转换
单片机型号:STM32F407VGT6 在进行IPV6的UDP设计时,偶然发现一个问题,就是大部分套接字函数都需对地址进行强制转换,先看一下程序: 这是bind函数: bind(sockIPV6, (struct sockaddr*)&sockAddr, sizeof(sockAddr)) 这是recvfrom函数: recvfrom(sockIPV6, UdpBuffer, 100, 0, (struct sockaddr*)&sockAddr, &slen) 这是sendto函数: sendto(sockIPV6, UdpBuffer, len, 0, (const struct sockaddr*)&so
[单片机]
研究人员创造了世界上最冷的电子芯片
巴塞尔大学教授DominikZumbühl和他的同事成功地将纳米电子芯片的温度冷却至2.8毫开尔文,也就是约零下273.15摄氏度。 研究人员说:“磁冷却是基于这样一个原理,即当外加磁场逐渐减小时,系统会渐渐冷却,同时避免任何外部热流。 “在减小磁场前,磁化产生的热量需要通过其他方式吸收掉,以获得有效的磁性冷却。这就是我们如何成功地将纳米电子芯片冷却到2.8毫开氏度,从而实现破纪录的低温的方法。” Zumbühl教授和他的同事将这两种冷却系统结合,这两种冷却系统都基于磁冷却。 他们将芯片的所有导电连接冷却到了150微开氏度(离绝对零度不到千分之一度)。 然后他们将第二个冷却系统直接应用于芯片本身,同时置入
[半导体设计/制造]
STM32F0开发笔记8: 在keil中使用不初始化变量
我们进行程序设计的时候,都会知道,系统上电或复位时,会执行变量初始化操作,但是有些情况下,我们并不希望变量初始化,例如,在系统异常复位发生后,我们希望系统能够迅速恢复复位前的现场状况,这样就希望变量能够保留原先的值,而不被初始化。实际上,大家都知道,变量是存储在RAM中的,只要不掉电,变量的数值是不会改变的,只要我们不让系统进行初始化操作就可以了。 不同的编译环境,有不同的设置方法,本文介绍在Keil中设置不初始化变量的方法。在这里需要说明的是,网上介绍了许多的设置方法,但并不是所有的方法都起作用,本文将介绍一种最为直接的方法。 1、打开Options for Target对话框Linker标签,勾选掉Use Mem
[单片机]
STM32开发笔记53:STM32F4+DP83848以太网通信指南系列(七)
本章为系列指南的第七章,讲述如何在之前的基础上,编写程序在STM32上发送一个网络包,并使用WireShark进行验证。 先回顾一下之前的章节我们做好的准备工作,在《STM32F4+DP83848以太网通信指南第五章:MAC+DMA配置》结束时我们封装了一个DP83848的初始化函数,该函数完成了PHY的配置,MAC层的配置,DMA的配置,并且启用了以太网中断,函数命名为DP83848Init(),那么今天,我们要做的主要任务就是编写一个类似的DP83848Send(u8* data, u16 length)函数。 可以在本章的一开始跟大家剧透一个好消息,有了《STM32F4+DP83848以太网通信指南第四章:PHY配置》 和
[单片机]
STM32<font color='red'>开发</font><font color='red'>笔记</font>53:STM32F4+DP83848以太网通信指南系列(七)
时钟芯片的低功耗设计研究
   时钟 芯片广泛地应用于各种需要记录特定时间的设备中。对于 便携式 设备,时钟芯片的功耗对维持整个系统的正常时间记录是非常重要的。芯片具有较低的功耗,可以满足更长的工作时间要求。在 嵌入式系统 中,时钟芯片是工作频率较高的电路,降低其功耗,对于整个系统的功耗降低有着显著的作用。   在低功耗AS IC设计 中,前端的逻辑设计和后端的物理设计结合得越来越密切。系统的低功耗设计必须从设计的各个层次上加以考虑,以实现整体优化设计。在前端逻辑设计中,从分析功耗物理特性入手,进行功耗估计,为低功耗的整体设计提供理论依据,然后在后端的电路实现上加以控制,这样就可以更好地达到降低芯片功耗的目的。而且还可以降低设计成本,缩短设计周期。
[电源管理]
时钟<font color='red'>芯片</font>的低功耗设计<font color='red'>研究</font>
电源管理芯片中高性能放大器的研究
基于 以 上 目的,本文设计了一种可应用于 电源管理芯片 的大电流、恒定增益、宽电源电压的CMOS运算放大器,输入级采用恒定跨导互补式差分输入结构,输出级采用带有米勒补偿的前馈AB类输出结构,使输入和输出摆幅都达到了轨对轨,最后,结合UMC 0.6um双多晶双金属BCD工艺进行了运放的版图设计。HSPICE的仿真结果表明,该放大器可以在4.5-8V的电源电压下稳定的工作,具有121dB的开环增益,18M的单位增益带宽,上升和下降的摆率分别为13.7V/us和14.2V/us,典型值为90dB的电源抑制比,以及600的相位裕度,满足了电源管理芯片对放大器的性能参数的要求,具有比较重要的应用价值。
[模拟电子]
电源管理<font color='red'>芯片</font>中高性能放大器的<font color='red'>研究</font>
以色列研究芯片中的硅或可被新材料取代
新华社耶路撒冷7月9日电,以色列理工学院近日发布公报说,该院人员领衔的一项新研究开发出了一种新材料,将来有可能取代芯片中的硅。 一个芯片可能包含数十亿个晶体管,芯片性能的提升基于晶体管的不断小型化。近年来硅晶体管的小型化速度已放缓,因为到达一定微小尺度后,晶体管功能会受到量子力学某些效应的干扰,从而影响正常运行。 这项研究发表在美国《先进功能材料》杂志上。在该研究中,以色列理工学院的研究人员在独特的实验室系统中合成一种氧化物材料,这一新材料原子间的距离能以皮米即千分之一纳米的精度准确控制,而硅材料两个原子间的距离约为四分之一纳米。 通过这些发生在千分之一纳米范围内的微小变化,研究人员正在开发新的方法来控制材料在导电和绝缘状态之间变
[半导体设计/制造]
STM32L0开发笔记6: STM32CubeMX中定时器的配置方法
本文介绍在STM32CubeMX进行定时器的配置,产生固定时间中断的方法,以TIM2为例,步骤如下: 1、使能TIM2,指定时钟源。 2、查看数据手册,确定该定时器的内部数据总线,本文所引用的定时器内部数据总线为APB1。 3、在时钟配置中确认所选定时器的内部数据总线的时钟频率,我这里是32MHz。 4、在配置页中,选中相应的时钟,在Prescaler中输入预分频系数,在Counter Period中输入溢出系数。例如,本例中时钟为32MHz/32=1MHz,也就是一个周期为1us,我选择溢出系数为1000,则产生中断的时间为1ms。在Prescaler中输入总线频率的整数部分,可以轻易得到1us的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved