历史上的今天
今天是:2024年10月12日(星期六)
2019年10月12日 | PIC16F84单片机内部硬件资源一
2019-10-12 来源:eefocus
上期笔者介绍的PIC16F84单片机点亮一只发光二极管的源程序实例是为了说明PIC单片机16F84具体应用时的基本格式。
现在我们已经知道要单片机工作,就需用汇编语言编制程序。而对某个PIC单片机编程时,还需对选用的PIC单片机内部硬件资源有所了解。这里介绍PIC16F84单片机的内部结构,如图1所示的框图。由图1看出,其基本组成可分为四个主要部分,即运算器ALU和工作寄存器W;程序存储器;数据存储器和输入/输出(I/O)口;堆栈存储器和定时器等。现分别介绍如下。
1运算器ALU及工作寄存器W
运算器ALU是一个通用算术、逻辑运算单元,用它可以对工作寄存器W和任何通用寄存器中的两个数进行算术(如加、减、乘、除等)和逻辑运算(如与、或、异或等)。16F84是八位单片机,ALU的字长是八位。在有两个操作数的指令中,典型的情况是一个操作数在工作寄存器W中,而另一个操作数是在通用寄存器中,或者是一个立即数。在只有一个操作数的情况下,该数要么是在工作寄存器W中,要么是在通用寄存器中。W寄存器是一个专用于ALU操作的寄存器,它是不可寻址的。
根据所执行的指令,ALU还可能会影响框图中状态寄存器STATUS的进位标志C、全零标志Z等。
2程序存储器
单片机内存放程序指令的存储器称为程序存储器。PIC16F84的所有指令字长为14位。所以程序存储器的各存储单元是14位宽。一个存储单元存放一条指令。16F84的程序存贮器有1024(28)个存储单元(存储容量为1k)。这些程序存储器都是由FPEROM构成的。
程序存储器是由程序计数器PC寻址的。16F84的程序计数器为13位宽,可寻址8K(8×1024)的程序存储器空间,但16F84实际上只使用了1k的空间(单元地址为0~3FFH)。当访问超过这些地址空间的存储单元时,将导致循环回到有效的存储空间。
对于用过其它单片机的用户,可能会感到16F84的片内存储器容量太少了。实际上并非如此,因为16F84的指令系统都是由单字指令构成的,相应于其它由二字节、三字节甚至四字节指令的单片机而言,PIC单片机的程序存储器有效容量要比标称值扩大25倍到3倍。
知识竞赛试题:
15简述PIC系列单片机助记符指令中操作数f、d、b、k取值的可能范围,并简要说明其依据。
16指出PIC16F84单片机框图(上文图1)中寄存器的类型和不能访问的寄存器名称?

上一篇:PIC8位单片机引脚符号的功能
下一篇:PIC8位单片机源程序的组成
史海拾趣
|
大家好!我想设计一个电路,可以产生两路同步的波形,还在波形产生到某个点的时候触发一个采集卡采集数据,请问我是用cpld,单片机,arm,fpga,dss,plc中的哪种?因为我要学会了才弄,希望大家给点意见。… 查看全部问答> |
|
终于点亮了我的LCD显示器,1024*768@60Hz,verilog语言,EP2C8,全部源码 昨天几乎一晚没睡,参考了很多代码,现在只是点亮了,没进行美化,我是新手,大家别拍砖,呵呵。 module vga( clock, switch, disp_RGB, hsync, vsync ); input clock; //系统输入时钟 input [1:0]switch; output [ ...… 查看全部问答> |
|
我想从FIlter发送一个OID到miniport.可是总是出现蓝屏事件。烦请帮我看看:NDIS_STATUS filterCreateNewMACRequest( IN NDIS_HANDLE FilterModuleCon ...… 查看全部问答> |
|
我想知道怎么能做到一套硬件系统唯一对应一套软件,关键硬件没有唯一性,要是cpu或存储器能有个序列号就好办,一般的flash是不都没有串号或者叫序列号?三星的K9F1208U0M好像没有啊!… 查看全部问答> |
|
上位机(VB6.0)与下位机STM32 USB接口通讯 多谢 请问下,我是用VB6.0做上位机,STM32做下位机。通过上位机VB发送一个指令,下位机(STM32)收到后,执行对应的命令,这是怎么实现的,例如STM32的PB0~PB7分别点亮8个LED发光二极管!从VB中发送出来 地址 &H00,&H01,&H02,&H03,&H04,&H05,&H06, ...… 查看全部问答> |
|
最新重点之:keepout和Mechanical:用protel 99或是dxp系列软件设计的工程师,一定要注意在画线的时候不论画在那一层,在线的属性选项中一定不要随便把keepout选项勾,一旦选中了keepout选项,则这根线无法 做出(只要选上了这个选项,则表明禁掉这 ...… 查看全部问答> |
|
是不是只要是芯片就属于数字电路?对模拟的概念,有点蒙了,求大神指教一二 以前吧,感觉自己很清楚模拟和数字的概念,最近越来越感觉模糊了^ 以前感觉——只要是芯片就属于数字电路,电阻电容搭建起来的电路属于模拟电路。 比如单片机就 ...… 查看全部问答> |




