首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» PIC单片机人机接口模块元器件选择分析
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
PIC单片机人机接口模块元器件选择分析
发短消息
加为好友
forsuccess
当前离线
UID
871057
帖子
6281
精华
0
积分
3141
阅读权限
90
在线时间
282 小时
注册时间
2012-2-21
最后登录
2015-6-23
论坛元老
UID
871057
性别
男
1
#
打印
字体大小:
t
T
forsuccess
发表于 2012-9-16 23:28
|
只看该作者
PIC单片机人机接口模块元器件选择分析
单片机
,
模块
,
元器件
,
接口
PIC单片机人机接口模块元器件选择说明:
(1)芯片引脚。
12~20根为PIC16C5X的双向可独立编程I/O口,每根I/O口都可由程序来编程决定其输入/输出方向。PIC16C5X有5种型号,如表1所示
表一 PIC16C5X管脚
PIC16C5X管脚图如图1所示
图1 PIC16C5X管脚图
各引脚的功能描述如表2所示
表2 各引脚的功能
(2)内部结构。
PIC16CSX在一个芯片上生成了一个8位算术逻辑单元ALU和工作寄存器W;384bit~2KB的12位程序存储器ROM;32~80个8行数据寄存器RAM;12~20个I/O口端:8位计数器及预分频器;时钟、复位及看门狗计数器等,内部结构如图2所示。
图2 PIC16C5X的内部结构
如图2所示,PIC16C5X有个特点,就是把数据存储器RAM当作寄存器来寻址以方便编程。寄存器组按功能分为两部分,即特殊寄存器组和通用寄存器组。特殊寄存器组包括实时钟计数器RTCC、程序计数器PC、状态寄存器Status、I/O口寄存器以及存储体选择寄存器FSR。PIC总线结构采取数据线(8位)和指令线(2位)独立分离的哈佛(Harvard)结构,这样可使单片机的指令速度得到提高。当一条指令在ALU中执行时,下一条指令己经被取出放到指令寄存器等待执行了。算术逻辑单元ALU和工作寄存器(W)承担算术逻辑操作任务。
PIC16C5X提供二级堆栈(Stack),所以子程序调用只有两层,使用时一定要注意这点,否则程序运行时将失去控制。PICIGC5X内部有384bit~2KB的只读程序存储器,下面介绍其结构和堆栈,PICIGC5X程序存储器结构如图3所示。
图3 PIC16C5X程序存储器结构
从图3可以看出,PIC程序存储器采用分页结构,每页长0.5KB,因此PIC16C52程序存储器在1页之内,而PIC16C54和PICISC55程序存储器容量为1页,PICI6C56和PICI6C57的容量则分别为2页和4页。页面地址由状态寄存器B的第5位和第6位(PA0、PA1)确定。
程序转移时,在本页内可直接进行,在需跨页跳转时(GOTO、CALL指令),则必须根据将要跳转去的页面,把f3中的PA0、PA1位置成相应的值。
(3)相关指令。
堆栈PICIGC5X设有两层堆栈,堆栈1和堆栈2,供子程序调用。涉及堆栈操作的指令有两条。
①CALL。
在主程序中第一次执行CALL指令时,将PC值加1后推入堆栈1,堆栈1原有的内容则被推入堆栈2中。这时子程序中还可再做一次子程序嵌套,即再执行一次CALL指令。如果子程序调用多于二层时,堆栈中只存放最近的两个返回地址。
当执行一条CALL指令时,状态寄存器F3中将页面寻址位PA1、PA0置入PC的最高两位(第11位和第10位),而PC的第9位总是被置为0,如图4所示。
图4 PC值对应图
这意味着在PIC16C5X中,子程序起始地址只能放在每个程序存储页面的上半页,即低地址的那一半(000~0FF、200~2FF、400~4FF、600~6FF)。
调用子程序前必须先把F3中的PA0、PA1设置成该子程序所在的页面地址,返回后再将其恢复成当前的页面值,但如果这时子程序是在同一页面,则可省去这一过程。
②RETLW。
该指令把堆栈1的值写入PC,同时还把堆栈2的值拷贝到堆栈1去。子程序总是返回到调用它时所在的位置,不管它处在什么页面,也不管F3寄存器中的PA0、PA1此时指在什么页面。
但是执行RETLW(子程序返回)指令并不会改变F3中PA0、PA1的值,所以当从一次跨页面的子程序调用返回时,不要忘了恢复F3中原先PA0和PA1值。
由于堆栈和PC的宽度是相同的,所以可以在程序的任何位置执行一条CALL指令来调用子程序。但是对于跨页面的调用,要小心处理B中的页面地址位PA0和PA1。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议