① 单片机的机器周期和时钟周期分别怎么算的,还请举例说明下
你好!
以51为例(不同的MCU计算方法不同):
外部晶振为12Mhz
,
振荡周期
=
时钟周期
=
12Mhz
机器周期为12个时钟周期,即1Mhz。
周期是时间的倒数,即一个机器周期1/1Mhz=1us
指令周期:因为51是复杂指令集,执行一条指令需要1~3个机器周期(根据指令不同而不同)
如有疑问,请追问。
② 单片机可以做什么事
单片机,又称微处理器,他将一个系统所需要的RAM,Rom ,CPU等相关外设集成在一块集成电路上,我们通过汇编语言或者C语言写成我们需要的程序下载到单片机中运行,其实无论哪种单片机无非都是在控制自己的相关IO高低变化从而达到控制外设的目的。
在学习单片机的过程中,大部分人也是从点亮一个LED 灯泡开始的,完后时流水灯,控制继电器,在然后就是各种协议,IIC,,spi,usart等。
S7200-plc
例如有这么一个控制系统,要求光电检测物体,当光电检测到物体到来时,接近传感器随机检测物体是否为金属,当为金属时系统不做处理,当不为金属时系统输出报警型号,控制报警器工作3S后关闭报警器,提示人工挑拣。
方法如下:
1、利用几点器加延时继电器进行设计,完全可以达到要求,成本也不是很高。
2、采用PLC,更加简单,一个梯形图外加几个继电器就搞定,但是成本高了,而且对于PLC的IO口来说一种浪费。
3、采用单片机:我们将光电采集的信号进入单片机的外部中断,在中断程序中判断接近传感器的电平变化,没有信号就不是金属物体,我们输出一个电平信号用定时器延时3秒就可以,而且成本低廉。
接下来我们对此系统进行扩展,加入一个1602液晶显示屏成本10元以内,在液晶上我们对经过光电的物体进行技术,显示出非金属物体有过少个,我们还可以加入按键来随时调节报警输出时间。成本基本无变化。如果我们用PLC的话,就需要加HDMI,组态。
(2)单片机举例子扩展阅读:
单片机分类标准①:通用性
按通用性可分为:通用型/专用型
这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
单片机分类标准②:总线结构
按总线结构可分为:总线型/非总线型
这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
单片机分类标准③:应用领域
按应用领域可分为:家电类,工控类,通信类,个人信息终端类等等
一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。
单片机分类标准④:数据总线位数
按单片机数据总线位数可分为:4位、8位、16位和32位单片机
4位单片机结构简单,价格便宜,非常适合用于控制单一的小型电子类产品,如PC机用的输入装置(鼠标、游戏杆)、电池充电器、遥控器、电子玩具、小家电等。 2. 8位单片机。
8位单片机是目前品种最为丰富、应用最为广泛的单片机,目前,8位单片机主要分为51系列及和非51系列单片机。51系列单片机以其典型的结构,众多的逻辑位操作功能,以及丰富的指令系统,堪称一代“名机”。
16位单片机 16位单片机操作速度及数据吞吐能力在性能上比8位机有较大提高。目前,应用较多的有TI的MSP430系列、凌阳SPCE061A系列、Motorola的68HC16系列、Intel的MCS-96/196系列等。
32位单片机 与51单片机相比,32位单片机运行速度和功能大幅提高,随着技术的发展以及价格的下降,将会与8位单片机并驾齐驱。32位单片机主要由ARM公司研制,因此,提及32位单片机,一般均指ARM单片机。
严格来说,ARM不是单片机,而是一种32位处理器内核,实际中使用的ARM芯片有很多型号,常见的ARM芯片主要有飞利浦的LPC2000系列、三星的S3C/S3F/S3P系列等。
③ 请问,那位知道51单片机常用哪几种寻址方式分别在什么情况下使用最好能举一个例子。谢谢。
MCS-51 的寻址方式:
1 、立即寻址 如: MOV A , #40H
2 、直接寻址 如: MOV A , 3AH
3 、寄存器寻址 如: MOV A , Rn
4 、寄存器间接寻址 如: MOV A , @Rn
5 、基址加变址寻址 如: MOVC A , @A+DPTR
6 、相对寻址 如: SJMP 08H
7 、位寻址 MOV 20H , C
以下是详细介绍:
一、立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。
二、寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0就属于寄存器寻址,即将R0寄存器的内容送到累加器A中。
三、直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。
四、寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。
如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加@符号来表示这种间接寻址。如MOV A,@R0。其它还有变址寻址、相对寻址、位寻址等,待以后再详细介绍。可能有人会问,在指令中直接给出实际操作数,不是简单、明了吗?为什么还要用其它几种寻址方式呢?这是因为在编制程序时很难一下子就给出操作数。如用单片机控制温度时,时时需要将给定的控制温度(如20℃)减去环境温度,而环境温度时时有变化,显然无法在程序指令中给出,只有通过一定方式,将其送入某个输入/输出口,再存放在某个寄存器中,这就必须用到寄存器寻址。又如要进行算术运算,要计算每班学员各科成绩的平均值,如果把每个学员的各科都编一个程序,在程序中直接给出该学员各科成绩,再求平均值,显然太麻烦。这里可以编一个求平均成绩的通用程序,把每位学员的成绩送入存贮器的各个单元中,这时可采取直接寻址,一个程序可供每个学员用,不是更方便吗?所以,寻址方式越多,编制程序就越方便、灵活,适用范围就越广。寻址有如找人,如被找的人有手机、BP机、座机电话等多种联系方式则就容易找到他,单片机也是如此,寻址方式越多,找操作数越方便,单片机的功能就越强。前面介绍51系列单片机的寻址方式时,常遇到单片机内部的一些寄存器、累加器A、通用寄存器R0~R7、数据指针DPTR和存贮器等。在以后介绍指令时,数据就要在这些寄存器、存贮器之间传送,或者进行运算。因此,编制程序就需熟悉单片机的内部结构。
8051单片机的内部总体结构其基本特性如下:
8位CPU、片内振荡器
4k字节ROM、128字节RAM
21个特殊功能寄存器
32根I/O线
可寻址的64k字节外部数据、程序存贮空间
2个16位定时器、计数器
中断结构:具有二个优先级、五个中断源
一个全双口串行口
位寻址(即可寻找某位的内容)功能,适于按位进行逻辑运算的位处理器。除128字节RAM、4k字节ROM和中断、串行口及定时器模块外,还有4组I/O口P0~P3,余下的就是CPU的全部组成。把4kROM换为EPROM就是8751的结构,如去掉ROM/EPROM部分即为8031的框图,如果将ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即可得到51系列的派生品种,如89C51、AT89C2051等单片机的框图。
④ 简述51单片机中的读-修改–写操作,并举例说明。
按照我的理解来说,读操作:从需要的寄存器中读出需要的数据。修改操作:这里可以指处理读到的数据吗?写操作:把修改的数据或者其他的数据写进需要的寄存器中。举例:(1)控制两片DS18B20温度传感器,这时需要读出两片传感器的序列号,然后存入存储器中(某存储芯片),然后再从该存储器中读出来写入某指令去监测需要的那块单片机。(2)从时钟芯片DS1302中读出年月日数据,写入自己的函数中,来显示出来。
⑤ 生活中哪些用到了单片机请举例说明!
38./rd
39.6个
40.片外数据存储器
41.自然优先级最先访问
42.自然优先级最后访问
43.ea接地,只访问片内程序存储器,ea接高电平,先访问片内程序存储器,超过4kb范围访问片外程序存储器
44.mov访问片内数据存储器,movx访问片外数据存储器
45.p0
46.p0
47.读出数据操作
48./psen
49.外部中断0