把学单片机过程中遇到的问题与大家分享
来源:互联网 发布:企业数据防泄密 编辑:程序博客网 时间:2024/05/07 11:07
单片机
常见问题
指令
cpu结构
伪指令
分类: 单片机一.单片机有4位、8位、16位、32位以及64位现在,请问的是在8位,16位,32位等等是什么意思?
答:
CPU内部总线的位数就是单片机的位数。这里的位也就是指单片机中CPU处理的数据的位数(一次处理信息的长度)。比如:51单机
二.CPU经常挂在嘴边,但是cpu到底是什么?有什么部件组成?
答:
CPU是单片机的核心部件,由运算器、控制器和布尔处理器等组成。其功能是产生控制信号,把数据从存储器或输入口传送CPU或反向传送,还可以对输入数据进行算术、逻辑运算以及位操作处理。其中,运算器由算术逻辑单元ALU(Arithmetic
三.单片机的指令把我搞的稀里糊涂,能不能用一个例子告诉我单片机执行指令的过程?
答:
指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操
作数,则寻找操作数地址。
计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。
一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,
然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因
而一开机即可执行指令。
下面我们将举个实例来说明指令的执行过程:
开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际
上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。
例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,
0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是
:
1 程序计数器的内容(这时是0000H)送到地址寄存器;
2 程序计数器的内容自动加1(变为0001H);
3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H
的单元被选中;
4 CPU使读控制线有效;
5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所
以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。
个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存
储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H
。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要
求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此
,一条指令的执行完毕。单片机中PC="0002H",PC在CPU每次向存储器取指或取数时自动加1,单片机又进
入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一
条地执行指令,完成所有规定的功能。
希望对你有启发。
四.什么是伪指令?
答:伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序(机器码),它只是用来对汇编过程进行某种控制。标准的MCS—5l汇编程序(如Intel的ASM51)定义的伪指令常用的有以下几条:(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
五.什么是寻址?又什么是寻址方式?
答:寻址就是寻找指令中操作数或操作数所在地址。
寻址方式就是如何找到存放操作数的地址
六.通过TCON可以选择中断触发方式,那么低电平触发和跳变触发有什么不同呢?
解释一:电平触发即51单片机每执行完一个指令都将INT0/INT1的信号读入IE0/IE1。因此IE0/IE1的中断请求信号随着INT0/INT1变化。如果送入INT0/INT1的中断请求信号时,51单片机未能及时检查到,而INT0/INT1的信号也随着变化,IE0/IE1的信号也发生变化,这样就会漏掉INT0/INT1的中断要求。
解释二:下降沿触发只要检测到送至INT0/INT1上的信号由高电平变为低电平时,中断请求标志位IE0/IE1就被设定为1,并且一直维持着1,直到此中断请求被接收为止,且必须用软件来清除IE0/IE1。
所以一般设置为跳变触发,除非有特殊需要。
- 把学单片机过程中遇到的问题与大家分享
- 我在开发AJAX过程中遇到的问题及解决方案,分享给大家~
- 今天在写程序中遇到的问题与大家分享一下
- 学python过程中遇到的一些问题及解决方法
- imgbox使用过程中遇到的问题分享
- ios开发中遇到的两个问题及其解决方法,写出了,跟大家一起分享
- 把遇到过的对.Net线程的一些问题和误解集中起来和大家分享,也希望大家能一起补充,热烈欢迎讨论
- 我是怎么学黑客的。与大家分享(转)
- 遇到的一个问题和大家分享一下
- 单片机成功点亮第一个二极管过程中遇到的问题
- 在制作静态生成的过程中遇到问题了,大家帮忙解决一下吧!!
- 把技术记录下来,与大家分享
- 纠结了好久才弄得明白一点点的汉诺塔问题,现在把一些方程与大家分享一下!
- 个人写程序的准备工作 并且过程中所遇到问题以及解决过程(HT合泰单片机)
- 与大家分享uclinux上的ucd-snmp开发过程
- Fragment的使用与学习过程中遇到的问题
- opengl 学习过程中遇到的问题与解决
- Android WebView 使用过程中遇到的问题与总结
- Quartz.NET——作业调度组件
- Detection of Half-Open (Dropped) TCP/IP Socket Connections
- jsessionid用途
- 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!
- 快捷方式
- 把学单片机过程中遇到的问题与大家分享
- C/C++启动函数
- NoSQL数据库技术特性解析之文档数据库
- 计算机网络体系结构
- HDOJ 1015 Safecracker 简单搜索
- 浏览器兼容性问题-JS&DOM
- android如何使用menu键
- HDOJ 1016 Prime Ring Problem 简单搜索
- 网页引用外部的js和css文件