导航:首页 > 操作系统 > 单片机原理与编程

单片机原理与编程

发布时间:2023-08-05 02:13:10

A. 什么是单片机,单片机学习方法,单片机原理及应用

什么是单片机?

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机学习方法:

第一阶段:先浏览教科书里的硬件部分,大至了解单片机的硬件结构。如ROM、RAM、地址、I/O口等,以及看一些厂家的MCU资料(Data Sheet),来加强MCU所提供各项资源的印象。简单点的说单片机就是一块集成芯片,但是不同的地方就是可以通过编程来改变其引脚的电平高低。可以用计算机的原理来理解单片机。比如说 ROM 其实就像计算机的硬盘一样,是用来装东西的,装运行的程序。

第二阶段:就是了解二进位数字、十六进位数和软件方面的内容。尽管有很多高级语言可用于单片机的编程,但初学还是以汇编语言为好,更有利于和硬件结合,掌握硬件结构。知道汇编语言、机器语言、指令、 程序等概念后,从MOV指令开始,学习汇编语言和编程,在MCU汇编语言系统有11条指令,简单又好理解它们怎样和硬件联系,更有助于一般学习单片机的指令整合与运用.因此其方法可先了 解几条基本的MOV指令和它的机器语言,大致建立起单片机的硬件和软件概念,来知道单片机的硬件是由指令控制指挥的。

第三阶段按照编程环境的使用手册,熟悉使用编程环境。现在的编程环境一般都和电脑相连,只要具备基本电脑知识的人都可很快掌握步骤。

第四阶段是依靠实验板,学习掌握单片机的汇编语言指令系统和简单编程。同时和前面所学硬件知识结合组装,起到主学软件,巩固硬件的双重作用。

单片机原理:通用计算机是分模块的,比如内存条,CPU,显卡,这些设备是通过系统总线连接成一个计算机系统。所以可以看出,单片机是微计算机系统,因为小巧,价格也便宜,很适合应用于嵌入式系统。当然单片机的功能没有通用型计算机的功能那么强大。

单片机的应用:导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

B. C51单片机对位寻址的原理和编程方法

原理:

位寻址是一种使用单片机实现程序控制位逻辑操作的方法,通过一系列指令在单字节的内存空间中的一个特定的位 (bit 位) 上进行操作。它用于控制乱拿只有两状态的I/O端口。

编程方法:

1. 用 ORL A, #data 命令将某个指定的位置位,即把单字节内部某个指定的位置1。

2. 用 ANL A, #data 命令清除某个指定衡槐的位置位,即咐陪友把单字节内部某个指定的位置0。

3. 用 CLR C 命令将某个指定的位置位清零,即把单字节内指定的位置置零。

4. 用 MOV C, bit 命令将某个指定的位置位置1,即把单字节内部某个指定的位置1。

C. 单片机原理及应用求数组中最大元素时常采用“打擂台”算法,其编程原理是什么

电机原理及其他的应用,它的除数的它的最大颜色,我们市场还是可以用打擂台的算法了,并且他的编程原理我觉得能够给大家带来一种更好的是。

D. 跪求同济大学魏鸿磊单片机原理及应用(C语言编程)课后习题答案

#include<stdio.h>
#include<stdlib.h>

void swap(int*a,int*b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void select_sort(int A[],int n)
{
register int i,j,min,m;
for(i=0;i<n-1;i++)
{
min=i;//激备顷查找最小值
for(j=i+1;j<n;j++)
{
if(A[min]>A[j])
{
min=j;
}
}
if(min!=i)
{
swap(&A[min],&A[i]);
printf("第%d趟排序结果明陆为:\n",i+1);
for(m=0;m<n;m++)
{
if(m>0)
{
printf("");
}
printf("%d",A[m]);
}
printf("\n");
}
}
}
int main(void)
{
int n;
while(scanf("%d",&n)!=EOF) /* VS2013等版本中需使用scanf_s(),VC6.0中使用scanf() */
{
int i;
int*A=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&A[i]);
}
select_sort(A,n);
printf("最终排序结果为:\n");
for(i=0;i<n;i++)
{
if(i>0){
printf("");
}
printf("%d",A[i]);
}
printf("\滚洞n");
}
return 0;
}

E. 什么是单片机它的原理是什么

单片机诞生于20世纪70年代。所谓单片机是利用大规模集成电路技术把中央处理单元(Center Processing Unit,也即常称的CPU)和数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成一个最小的计算机系统,再加上了中断单元,定时单元及A/D转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛。

现在更多单片机的发展已经进入了嵌入式系统时代, 由于制造工艺的进步,有如 VHDL、RTOS、CPLD、FPGA、DSP、ARM等这一系列可编程器件的体积越来越小、成本越来越低,而功能是越来越能满足人们的需要。自上世纪80年代以来,单片机技术在我国各个控制领域得到了广泛应用,各个世界半导体公司都非常看好中国这个庞大的市场而纷纷到中国来投资建厂,如在苏州就有日本的瑞萨、松下、美国的快捷等半导体公司在中的生产厂地。同时面对这一技术的不断发展,我国大部分高校都已经把单片机方面的课程作为学生的必修课,这为我国近些年来的科技、工业控制等方面的发展培养了大量人才,而且社会对此方面的人才需求还在不断的增加。面对如此情况,作为在校学生,又该从何学起?如何学好这门课程呢?又怎样才能不让自己学了等于没学呢?本文在多年实践的基础上,介绍自已的一些感受和经验。

理解单片机的结构

对于一个初学者,最迷糊的就是对单片机芯片里面的结构的理解,小小的一个芯片为何能完成如此神奇的功能。

第一次从事电子方面的工作,也总对那黑黑的芯片里面感到不可思意的神奇。直到有一天,在检修一台日本二手电子市场里买来的程控交换机时,发现里面有一块黑东西上的黑胶已经裂开,把它撬开一看,里面就是一块电路板,上面焊满了密密麻麻的电子零件。终于有点明白,原来芯片也可以这样做成。当然当时所见的那块电路板是不能被称之为芯片的,那只是日本的电子制造公司为了防止别人抄袭而把整个电路板密封起来或其它原因,只引出几个的引脚与其它电路连接。不过它可以让人联想到芯片的基本结构与此相类似,如果把那些内眼看得见的电子零件再缩小一千倍或更小以至于能把所有电子零件做在一个硅片上,那也就成了名副其实的芯片了。我们不防以图1所示的电路及电路板来做一个生动形象的介绍。该图是一个直流马达可以正反两个方向转动的电路,做成电路板并焊好电子元件后,经测试没有问题就可以用黑胶(通常采用酚醛树脂等材料)把所有电子元件封起来,只留六个引脚来与外部电路连接,这样看起来就好像是一个芯片。

知道了一般芯片的原理,同样可以更进一步想象单片机为什么会执行逻辑运算等功能,这就牵涉到数字电路和模拟电路的知识。其实不管一个单片机的功能是如何的强大,其只不过是把许多以微米,甚至是纳米为单位级的数字的和模拟电子器件组成。为了形象的来说明单片机内部的结构原理,这里不访举如图2所示的跑马灯电路来阐述。图中电路表明的最终目的是让LED依次轮流被点亮。首先是通过计数器对输入脉冲计数,从0到15共16个脉冲为一个轮回,也即计数器的输出依次为二进制的0000B到1111B,再由四-十六译码器把计数器的结果解码输出,即依次置Y0到Y15由高电平变为高电平。当某一输出为高电平时,经过反向器后,与此线路相连接的LED的阴极被拉为低电平从而点亮该发光二极管。这样一来,计数器和译码器就相当于单片机里的处理器与PC地址寄存器了,与译码器输出脚相连的线就相当于地址线,与LED负极相连的输出线就相当于数据线,每一条“地址线”都与8根“数据线”有一个交叉,每一个交叉就相当于存储单元的每一个位。在这些交叉处是否要连通就相当于把程式烧录到存储器(ROM)里。最后总体来看就相当于一个只有16个地址的8位单片机。如果把LED换成图中数码管,改变图中的二极管连接,在“单片机”通电和输入时钟脉冲后,就可以不停的来显示数字了。

另外,要做到对单片机内部结果真正的了解,还必须得先要有很扎实的电路基础、模拟电路、数字电路等方面的知识,否则可能就是空中楼阁。

F. C语言控制单片机的详细原理是怎样的

C语言源程序----->C编译器----->汇编代码----->汇编器----->机器代码
所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器代码。
需要补充一点的是,单片机也是一种计算机,不要以为只有在PC机上才可以用C语言编程,C语言可以用作为任何计算机的编程语言,当然包括单片机,但有一个条件就是,你必需要有针对某种架构的计算机的C编译器。目前来讲,C语言的编译器种类非常多,有用于各种单片机以及微处理器架构的编译器版本,所以可以用C来做为单片机的编程语言。不同的是,你用TC或者VC编译得到的是X86(如Intel,AMD)的目标代码,只能在PC机上运行,而如果用单片机C编译器(比如Keil C)编译的代码是单片机代码,只能在特定的单片机上运行。目前C/C++是最流行的单片机/微处理器编程语言。

G. 单片机微型计算机原理

DPTR是16位寄存器,由两个8位寄存器组成(DPH、DPL),用于存放16位外部存储器地址;
A为累加器,用于+-x/运算时存放其中一个操作数,B寄存器用于乘法、除法;
通常加法减法运算结果存放在累加器A中,乘法运算结果高8位存放在A,低8位存入B寄存器;除法整数结果存放在A寄存器,B寄存器存放余数;
除此之外A、B寄存器可当作通用寄存器使用。

H. 单片机原理及应用

单片机原理及应用需要学习低级汇编语言和C语言。学习具有一定难度。但只要有恒心是一定能学好的。
1)编程语言:
a)汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
b)C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2)单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
3)由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言(近几年,C语言也开始广泛被应用),它是除了二进制机器码以外最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC也是承受不了的。

阅读全文

与单片机原理与编程相关的资料

热点内容
java判断半角 浏览:878
java判断正负 浏览:318
刷头条程序员的日常 浏览:102
吉林程序员吐槽 浏览:243
单片机温度范围 浏览:419
程序员为什么素质低 浏览:897
可爱的程序员小姐姐 浏览:145
服务器上网站的地址 浏览:798
苹果平板如何找到app资源库 浏览:321
阿里云可以云服务器地址 浏览:249
熊猫绘画app如何导入图片 浏览:555
如何自己编辑手机app 浏览:924
程序员那么可爱带的项链 浏览:532
安卓系统导航mic什么意思 浏览:192
编译sdk如何输出bin文件 浏览:676
如何用html5开发app 浏览:141
怎么隐藏苹果的app 浏览:326
上海積架空气压缩机 浏览:457
51单片机换行 浏览:737
哪里可以快速学看建筑图纸app 浏览:502