‘壹’ 什么是单片机的程序框架,怎么样画程序框图。求大神们结合具体实例讲解
比如如下:
ORG 0000H ;程序入口
LJMP MAIN
ORG 0003H ;中断向量
LJMP EXT0
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA ;以上初始化
LOOP:
JB P1.0,LOOP1
CLR P0.0
SJMP LOOP
LOOP1:
SETB P0.0
SJMP LOOP ;以上主循环
EXT0:
RETI
END
;以上就是一个比较简单的单片机程序框架:包括:程序入口,中断,主循环
‘贰’ 51单片机系列:单片机最小系统
单片机是一种集成电路芯片。在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。下面给大家介绍51单片机最小系统,一起学习。
下图是最小系统原理图,就是靠这四个部分,单片机就可以运行起来了。第一部分电源组,习惯说负极为”地”,上面GND就是英文ground的缩写。第二部分晶振组,过滤掉晶振部分的高频信号,让晶振工作的时候更加稳定。
第三部分复位组,单片机自动复位,从零开始执行程序,这个就是复位的概念。第四部分其它功能组,使用单片机的内部存储器,如果内部存储器不够容量,最多选择更高级容量的单片机型号,就可以解决问题。
51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。 此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。电源电路中接入了电源指示LED,图中R11为LED的限流电阻,S1 为电源开关。
复位电路由按键复位和上电复位两部分组成。 上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。 按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
P0口外接上拉电阻。 51单片机的P0端口为开漏输出,内部无上拉电阻,如下图。所以在当做普通I/O输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
单片机的应用分类通用型。 这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型。 这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型。 这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
‘叁’ 单片机里的程序能读出来吗能复制到其它空片里吗具体怎么做
关于单片机程序读取的问题,可以这样理解:首先,使用烧录软件将已经烧录好的程序读取出来,接着进行反汇编,你就可以看到源程序代码。不过,这里需要注意的是,如果源程序是汇编语言,那么就要考虑到兼容性的问题,因为不同厂商或型号的单片机之间是不能直接互换使用的。汇编语言的一个缺点就是其兼容性和移植性较差。
但如果源程序是高级语言,如C语言,那么就可以相互移植,当然,其中的小部分参数可能需要根据单片机的数据手册进行适当调整。上述情况适用于程序未加密的情况。如果单片机已经加密,那么首先需要破解密码。破解密码的方法不在我们的讨论范围内,但一旦破解成功,接下来的操作步骤与上述情况类似。
值得注意的是,即使程序是高级语言,如果使用了特定的库函数或硬件寄存器操作,也可能会遇到移植性问题,特别是在不同架构的单片机之间。因此,在进行移植时,需要仔细审查代码,确保其能够在目标单片机上正确运行。
此外,一些单片机制造商为了保护知识产权,会对程序进行加密,这大大增加了程序移植的难度。在这种情况下,即便破解了加密算法,也需要对程序进行大量的调试和优化,才能确保其在新的单片机上正常工作。
最后,无论是汇编还是高级语言编写的程序,进行移植时都需要详细了解目标单片机的特性,包括其内部结构、外设接口以及操作系统支持情况等。只有充分了解这些信息,才能确保移植工作的顺利进行。
‘肆’ 单片机程序状态寄存器
首先我先贴图出来吧,这种东西,用keil可以仿真出来的,下图是用51单片机来模拟的,软件为keil4.
第二条指令为ADD A,#0F8H。这条指令为加法指令,ADD就是加法指令的意思,意思是把后面的数和累加器ACC里的数相加,最终把结果放在ACC内。我们看到第二条指令执行完成后,ACC的内容为0x07,这就是计算结果,一开始ACC内的数为0x0f,加上0XF8后,结果就是07,然后最高位有进位。至于说指令后面的#0F8H,这是汇编语言的规定,直接数以A~F开头的,前面要加个0,这时候编译器才会正确编译,这是一个汇编编译器的规则,我们只要知道就可以了,如果你写成这样#F8H,编译器一般会提示错误,这个需要注意。
最后来看PSW内的内容,首先要了解PSW内每个位都代表什么,最高位CY代表进位,只要最高位有进位,CY就会置为1,AC位半进位,我们用的是8位单片机,我们的ACC是两个四位的加法器构成的,所以AC就是低四位的最高位向高四位的最低位进位的标志,我们知道0x0f+0xf8,F+8显然超过最大数了,要向高四位进位,所以AC就被置1,因为一位16进制数代表四位2进制数嘛,最高0+F=F,但是低四位有进位,所以变成了0+F+AC>F,所以高四位也进位了,CY也置为1.F0是没有定义的,你可以自己用来干什么都行,在这里没有意义,RS1,RS0位工作寄存器的选择位,它的组合是用来选择用哪组R0~R7的,在这里没用,原来是什么就是什么,因为51单片机内有32个工作寄存器嘛,它们被八个八个分为一组,所以有四个,RS1,RS0能表示的最大数就是4,所以用来选择的,不用管它。OV为溢出,这里没有溢出,主要用于有符号的数,我们这里没有,就没变化了。PSW.1也是没定义的,没实际意义,P位奇偶校验位,这里我们用51单片机,它是偶校验,即ACC里1的个数为奇数时,P=1,否则为偶数,P=0;因为我们最后的计算结果为07H,即 0000 0111,即奇数个1,故P=1。
‘伍’ 51单片机智能小车制作,求通俗易懂的讲解
系统的单片机程序:
#include"reg52.h"
#definedet_Dist2.55//
单个脉冲对应的小车行走距离,其值为车轮周长
/4#defineRD9//
小车对角轴长度。
#definePI3.1415926
#defineANG_9090
#defineANG_90_T102
#defineANG_180189/
全局变量定义区。
/sbitP10=P1^0;//
控制继电器的开闭sbitP11=P1^1;//
控制金属接近开关。
(5)单片机程序图片扩展阅读:
控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。
执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声音)的部分,并且可以根据控制器部分的信号调整自己的状态。
对机器人小车来说,最基本的就是轮子。这部分就好比人的四肢一样。 传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。好比人的眼睛、耳朵等感觉器官。
‘陆’ 如下程序:这几句单片机的C语言程序是什么意思
这是stc单片机的IO端口设置方式
1, P0M1 = 0;
P1M1 = 0;
是p1口的P1^0这个口为普通双向输入输出方式,
2, P2M0 = 0XFF;
P2M1 = 0;
设置整个p2口为高阻输入状态
3,
P0M0 = 0XFF;因为P0M1没给出是什么,不好确定P1口为什么状态
看下stc单片机手册就很清楚了
‘柒’ 单片机开发板是干什么的
1、可以作为烧写器(即编程器),将自己写好的程序写入单片机中,但烧写单片机的种类单一 ,型号也不会太多。
2、可以利用开发板上的一些硬件做一些单片机实验(不需要自己搭建实验电路)有利于初学者使用。
单片机的学习需要理论和动手,理论与实践并重。
(7)单片机程序图片扩展阅读:
单片机开发板介绍
单片机开发板是用于学习51、STC、AVR型号的单片机实验设备。
根据单片机使用的型号又有51单片机开发板、STC单片机开发板、AVR单片机开发板。
常见配套有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。
例如电子人单片机开发板,针对部分学者需要特别配套有VB上位机软件开发,游戏开发等教程学习资料,开发此类单片机开发板的公司一般提供完善的售后服务与技术支持。