当前位置:文档之家› 单片机技术总结

单片机技术总结

单片机技术总结
单片机技术总结

第一章单片机的内部结构

一.单片机的时序

1.时序的由来

单片机执行指令的过程就是顺序地从ROM(程序存储器)中取出指令一条一条的顺序执行,然后进行一系列的微操作控制,来完成各种指定的动作。它在协调内部的各种动作时必须要有一定的顺序,换句话说就是这一系列微操作控制信号在时间上要有一个严格的先后次序,这种次序就是单片机的时序。

2.时序的周期

计算机每访问一次存储器的时间,我们把它称为一个机器周期。它是一个时间基准。就象我们日常生活中使用的秒一样。计算机中一个机器周期包括12个振荡周期。振荡周期就是振荡源的周期,也就是我们使用的晶振的时间周期。一个12M的晶振它的时间周期是T=1/f,也就是1/12微秒。那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/12微秒,也就是1uS 。

在89C51单片机中有些指令只要一个机器周期,而有些指令则需要两个或三个机器周期,另外还有两条指令需要4个机器周期。如何衡量指令执行时间的长短我们就要用到一个新的概念:指令周期—即执行一条指令所需的机器周期.INTEL公司规定了每一条指令执行的机器周期。

振荡周期:指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。

时钟周期:(称S周期)为振荡周期的两倍,时钟周期=振荡周期P1十振荡周期P2。

机器周期:一个机器周期含6个时钟周期(S周期)。

指令周期:完成一条指令占用的全部时间。805l的指令周期含1—4个机器周期,其中多数为单周期指令,还有2周期和4周期指令。

若fosc=6MHz,则805l的:

振荡周期=1/6us;时钟周期=1/3us;

机器周期=2us;指令周期=2—8us。

二.单片机的时钟电路

单片机是在一定的时序控制下工作的,时钟是时序的基础。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路就要在唯一的时钟信号控制下按时序进行工作。

1 内部时钟电路

在MCS-51单片机的内部有一个高增益的反相放大器,其输入端为引脚XTAL1(19脚),输出端为XTAL2(18脚),我们只要在外部接上两个电容和一个晶振,就能构成一个稳定的自激振荡器,看上面的图,晶振的大小与单片机的振荡频率有关,我们到串行接口时再详细讲解。电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择10-30P的瓷片电容或校正电容;另外在设计电路时晶振和电容应尽可能的靠近芯片,以减少PCB板的分布电容保证振荡器工作的稳定性,提高系统的抗干扰能力。

2 外部时钟电路

除了内部时钟方式外,单片机还可以采用引入外部时钟的振荡方式,当我们的系统由多片单片机组成时,为了保证各单片机之间时钟信号的同步,就应当引入唯一的公用的外部脉冲信号作为各单片机的振荡脉冲,此时应将XTAL2悬空不用,外部脉冲信号由XTAL1引入。如下图所示。

三 .单片机并行口的结构分析

先来看看输入结构

1.输入结构

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线,上面图中的两个三角形表示的就是输入缓冲器。CPU将根据不同的指令,分别发出“读端口”或“读引脚”信号,以完成不同的操作,这是由硬件自动完成的,不需要我们操心。

读引脚时,也就是把端口作为外部输入线时,首先要通过外部指令把端口锁存器置1,然后再实行读引脚操作,否则就可能读入出错。看上面的图,如果不对端口置1,端口锁存器原来的状态有可能为“0”(Q端为0,Q^为1)加到场效应管栅极的信号为“1”,该场效应管就导通,对地呈现低阻抗,此时即使引脚上输入的信号为“1”,也会因端口的低阻抗而使信号变低,使得外加的1信号读入后不一定是“1”。若先执行置“1”,操作则可以使场效应管截止,引脚信号直接加到三态缓冲器中,实现正确的读入。由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为“准双向”口。89C51的P0、P1、P2、P3口作为输入时都是“准双向”口。从图中可以看出除了P1口外P0、P2、P3口都还有其他的功能。

2.端口的工作原理

1)P0口

从图中可以看到P0口的内部有一个2选1的选择器,它受内部信号的控制。如果在图中的位置则处在I/O口工作方式,此时相当于一个“准双向口”(输入时须先将口置“1”)。每根口线可以独立定义为输入或输出,但是须在口线上加上拉电阻。如果将开关往另一个方向,则就是另一个功能—作为地址/数据复用总线用。此时不能逐位定义为输入/输出,它有两种用法:当作数据总线用时,输入8位数据;而当作地址总线用时,则输出低8位地址。当P0口作为地址/数据复用总线用之后就再也不能作I/O口使用了。地址/数据复用其实是当单片机的并行口不够用时,需要扩展输入输出口时的一种用法。

2)P1口

同P0不同,P1口只能作为I/O口使用,但它的内部有一个上拉电阻,所以连接外围负载时不需要外接上拉电阻。这一点P1、P2、P3都一样务必请记住。

3)P2口

P2口作为I/O口线用时与P0口一样,当内部开关向另一个方向时,即作地址输出时,可以输出程序存储器或外部数据存储器的高8位地址,并与P0口输出的低地址一起构成16位的地址线(注意和数据总线的区别,数据总线是8位的,很多书上都会提到51单片机是8位数据总线16位地址总线,但都不会解释有什么不同)。16位的地址可以寻址64K的程序存储器或外部数据存储器。这里要注意的是当P2口作为地址总线时这高8位地址线是8位一起输出的,不能象I/O 口线那样逐位定义,这和P0口是一样的

4)P3口

P3口作为I/O口线用时同其他的端口相同,也是“准双向口”。不同的是P3口的每一位都有另一种功能,也叫第二功能。各位的功能如下,它们的具体作用我们用到时再详细解释。

实单片机的第二功能是不需要人工干预的,也就是说只要CPU执行到相应的指令就自动转成了第二功能。

四.单片机I/O口的连接方法

当单片机的I/O口作输出时可以直接与外部设备连接,不过由于在实际的应用中由于其驱动电流是有限的(DATA SHEET上说是20mA),所以我们常常需要通过接口电路来扩展它的驱动能力。在单片机的后向通道控制系统中常用的功率控制器件有:机械继电器、晶闸管、固态继电器等等。下面我们将以机械继电器和固态继电器的应用为例介绍其具体的使用方法。1.单片机与机械继电器的接口

单片机的一个I/O口只能灌入20mA的电流,所以往往不足以驱动一些功率开关。比如稍大一点的机械继电器等,此时就应该采用必要的扩展电路。我们通常采用下面的接法。如图,为了防止前向通道信号的干扰,常采用一些光电隔离器件,比如光电耦合器4N25,PC814等,

当单片机的P1.0脚输出为低电平时,光藕受电导通,Q1饱和开通,继电器吸合负载电路接通。

另外,为了防止电压间的互相干扰,继电器的工作电压VDD与单片机的工作电压VCC不要使用同一个电源,接地端也不要连在一起即所谓的模拟地与数字地分开。驱动管的电流要大于继电器的工作电流。

2.单片机与固态继电器的接口

普通继电器由于开关速度慢、易跳火、易机械磨损,通常用于要求不高的场合。在某些特殊应用场合比如防火防爆等系统中,则应采用固态继电器。固态继电器是一种无触点的电子继电器,它的输入端只要很小的控制电流,可以与单片机的I/O口直接连接;输出则采用双向晶闸管控制,其输入输出间均通过内部光电耦合器隔离,可以防止信号间的干扰,是单片机接口的理想器件。随着其技术的成熟,应用的广泛,价格也已经非常的便宜,1A/250V 的目前在10元左右。它与单片机的连接方法如图所示,当-端所接的P1.0为低电平时,SSR 导通负载工作。

除了以上两种连接方法外,单片机与TTL,CMOS管等都可以连接。

五.存储器的地址

1 内部R0M的寻址范围

89C51的内部有4K的FLASH ROM空间,其寻址范围为000H-FFFH

(15*162+15*161+15*160=0-4095),这4K的ROM空间就是用来存放我们为单片机编写的程序用的。单片机执行指令时就是一条一条顺序地从ROM中寻找指令进行执行。

2 内部RAM的寻址范围

89C51内部共有128个字节的RAM空间,其寻址范围为00H-7FH。它被分成三个区域:第一个区域00H-1FH,安排了4组工作寄存器,每组用8个字节共32个字节,分别为R0-R7。当然在同一时刻,只能用其中的一组工作寄存器,怎么来控制它,就要用到程序状态字PWS中的RS0、RS1两位。第二个区域20H-2FH,共16个字节。除了可以作为一般的RAM单元读写外还可以对每个字节的每一位(即每一个抽屉中的每一个小盒子)进行操作,并且对这些位都规定了固定的位地址:从20H单元的第0位开始到2FH单元的第7位结束共128位。第三个区域就是一般的RAM 单元地址,为30H-7FH共80个字节。

实际上在89C51单片机的内部还有一个部分,从80H-FFH是专门用于特殊功能寄存器SFR

的。89C51共用21个特殊功能寄存器。它们每个也都有8位的,这些特殊功能寄存器的使用和前面的128个字节RAM不同,所以很多书上的解释都是89C51有128个字节的内部RAM,实际上它们也属于内部RAM一部分。

为了加深印象大家可以打开DUG8051软件看一下它们的内部组成。

六.单片机的特殊功能寄存器

在单片机中除了前面介绍的RAM、ROM、P0-P3和CPU外,还有许多特殊功能寄存器,英文简写SFR。下表例出的就是MCS-51单片机中几个常用的特殊功能寄存器。

1.累加器ACC

通常用A表示。我们知道单片机在做运算时它的中间结果需要放在某个地方,这个地方就是累加器。它的名字很特殊,功能也很特殊,几乎所有的运算类指令都离不开它。

2.寄存器B

B寄存器在做乘法时用来存放一个乘数,在做除法时用来存放一个除数,不做乘除法时随你怎么用。

3.程序状态字PSW

它是一个很重要的东西,里面放了CPU工作时的很多状态。知道它就可以了解CPU当前的工作状态。它有点象平时看书用的目录,我们浏览它就可以了解一本书的内容。它是一个8

1)CY进位标志位

MCS-51是一种8位的单片机,它的运算结果只能表示到28(即0-255),但我们有时候的运

算结果要超过255,这时就要用CY位。例如79H+87H(+)=1 这里的“1”就进到了CY中去了。

2)AC半进位标志位

当D3位向D4位进位/借位时,AC=1,通常用于十进制调整运算中。

3)F0用户自定义标志位

由编程人员自行决定什么时候用,什么时候不用。

4)

位就在这里共有四种组合状态。看上面的表格:每个工作寄存器组有8个字节,分别记为R0-R7,当然在某一时刻,CPU只使用其中的一组。

假设PSW为“11H”(即)那么RS1=1,RS0=0,则用到了第2组寄存器组(地址10H-17H),RO-R7即为10H-17H,用DBG8051软件输入数值,看看内部RAM中地址为10H-17H中的值是不是为输入值。

5)0V溢出标志位

什么时候溢出我们讲到定时器时再研究。

6)P:奇偶检验位

每次运算结束后若A中二进制数“1”的个数为奇数,则P=1,否则P=0。例:某运算结果是58H(),显然“1”的个数为奇数,所以P=1。

4.DPTRDPHDPL数据指针

数据指针是一个16位的寄存器,我们可以用它来访问外部RAM,也可以访问外部ROM中的表格。

5.SP堆栈指针

先进去的后出来,而后进去的先出来这种符合“先进后出,后进先出”存放规则的现象我们就把它叫做堆栈。(其实栈在中文中的意思就是码头)

在单片机中,我们可以在内部RAM中构造出(注意:是可以构造)这样一个区域,这个区域存放数据的规则就符合堆栈中“先进后出,后进先出”的原则。存储器地址可以读出它里面的内容,但如果我们要读出的是一批数据,每一个数据都要给出一个地址就会很麻烦,为了简化操作就可以利用堆栈的存放方法来读取数据。单片机是一种通用的产品,每个人的实际需要各不相同。有人需要多一些堆栈而有人则不需要那么多堆栈,所以INTEL公司就干脆不分了,把分的权利让给用户(编程者),也就是说我们可以根据自已的需要来决定。所以单片机中堆栈的位置是可以变化的,而这种变化就体现在SP中值的变化。看下面的图SP中的值

单片机中,指针开始所指的位置并非就是数据存放的实际位置而是数据存放的前一个位置。例如一开始堆栈指针是指向27H单元的,那么第一个数据的存放位置就在28H 单元中而不是27H单元中这一点请大家注意。

6.电源控制寄存器PCON

单片机在以电池供电的系统,中有时为了节电我们需要让它尽量降低电源的消耗,所以单片机就有多种的工作方式,其中一种就是低功耗方式,PCON寄存器就是用来控制单片机进入低功耗方式的。

第二章单片机的工作方式

一.单片机的工作方式

单片机共有复位、程序执行、低功耗和编程与加密四种工作方式:

1.复位方式

1)为什么要复位

大家知道单片机执行程序时总是从地址0000H开始的,所以在进入系统时必须对CPU进行复位,也叫初始化。另外,由于程序运行中的错误或操作失误使系统处于死锁状态时,为了摆脱这种状态也需要进行复位,就象电脑死机了要重新启动一样。

2)复位的原理

单片机复位的方法其实很简单,只要在RST引脚(9脚)上加一个持续时间为24个振荡周期(即两个机器周期)的高电平就可以了。

3)如何进行复位

复位操作有上电自动复位、按键复位和外部脉冲复位3种方法,它们的电路分别如下:上电自动复位是通过外部复位电路的电容充电来实现的,看图1,当电源刚接通时电容C 对下拉电阻开始充电,由于电容两边的电压不能突变,所以RTS端维持高电平,只要这个充电时间不超过1ms,一般都就可以实现对单片机的自动上电复位,即接通电源就完成了系统的初始化。在实际的工程应用中,如果没有特殊要求,一般都采用这种复位方式;按键复位的电路如图2所示,它其实就是在上电复位的基础上加了R1和SA,这种电路一般用在需要经常复位的系统中;外部脉冲复位的电路如图3所示,外部复位通常用于要求比较高的系统,比如希望系统死锁后能自动复位。外部复位是由专门的集成电路来实现的,也就是我们通常俗称的“看门狗”电路。这种电路有很多,它们不但能完成对单片机的自动复位功能,而且还有管理电源、用作外部存储器等功能。比如X25045,MAX813L等等就是比较常用的此类芯片。

4)复位后的状态

2

程序执行是单片机的基本工作方式,由于复位后PC=0000,所以程序就从地址0000H开始执行。此时单片机就根据指令的要求完成一系列的操作,控制比如前面讲的让LED灯闪烁起来。不过在实际使用中程序并不会从0000H开始执行,而总是安排一条跳转指令,比如LJMP START。

3.低功耗操作方式

在以电池供电的系统中有时为了降低电池的功耗,在程序不运行时就要采用低功耗方式,低功耗方式有两种—待机方式和掉电方式

低功耗方式是由电源控制寄存器PCON来控制的。电源控制寄存器是一个逐位定义的8位

PD为掉电方式位,PD=1进入掉电方式;IDL为待机方式位,IDL=1进入待机方式。也就是说只要执行一条指令让PD位或IDL位为1就可以了,我们来看单片机是如何进入或退出掉电工作方式和待机工作方式的:

1)待机方式

①进入待机方式

当使用指令使PCON寄存器的IDL=1,则进入待机工作方式。此时CPU停止工作,但时钟信号仍提供给RAM定时器,中断系统和串行口;同时堆栈指针SP,程序计数器PC,程序状态字PSW,累加器ACC以及全部的通用寄存器都被冻结起来,单片机的消耗电流从24mA降为3.7mA,这样就可以节省电源的消耗。

②退出待机方式

退出待机方式可以采用引入中断的方法,在中断程序中安排一条RETI的指令就可以了。其实待机方式和我们使用电脑时的睡眠方式有异曲同工之妙。

2)掉电方式

①进入掉电方式

当使用指令使PCON寄存器的PD=1,则进入掉电工作方式。此时单片机的一切工作都停止,只有内部RAM的数据被保持下来。掉电方式下电源可以降到2V,耗电仅50uA。此时就相当于把显示器和硬盘也关闭了。

②退出掉电方式

退出掉电工作方式的唯一方法是复位,不过应在电源电压恢复到正常值后再进行复位。复位时间要大于1mS,在进入掉电方式前,电源电压是不能降下来的,因此可靠的单片机电路最好要有电源检测电路。显然掉电方式和待机方式是两种不同的低功耗工作方式,前者可以在无外部事件触发时降低电源的消耗,而后者则在程序停止运行时才使用。

4.编程和加密方式

单片机的编程与加密是由专门的设备来完成的,这种设备称为编程器或烧录器。

加密是为了保护编程者的劳动成果而设计的一种工作方式,不过有矛必然有盾,现在的高手实在是很多,听说即使用OTP特种加密方式也能解密,不过能加密总比不加密的好,所以大家在编程时应尽量采用加密功能。

第三章单片机的指令

一、数据传递类指令

数据传递类指令是单片机中用的最多的指令,在51系列单片机的111条指令中共有28条是数据传递类指令。

1 以累加器为目的操作数的指令

(1) MOV A, Rn

(2) MOV Rn, A

(3) MOV A, direct

(4) MOV A, @Ri

(5) MOV A, #data

指令(1)把Rn中的数送入累加器A,Rn代表工作寄存器R0-R7(以后我们只要写到Rn都代表R0-R7,这一点请大家记住了);指令(2)则相反,把累加器A中的数送入工作寄存器中;指令(3)是把直接地址中的数送入累加器A中,driect就代表直接地址(以后也相同);而指令(4)就是寄存器间接寻址。这里再重复一遍就是看一下工作寄存器中是什么值,把这个值作为地址,把这个地址中的数送入累加器A中,Ri代表工作寄存器R0或者R1(以后如果写Ri都代表R0或R1);第(5)条指令就是把立即数直接送入累加器A中,很显然data就代表立即数,加#的数就代表送入的是这个数的本身。

2、以寄存器Rn为目的操作数的指令

(1)MOV Rn, A

(2)MOV Rn,direct

(3)MOV Rn,#data

这组指令功能是把源地址单元中的内容送入工作寄存器源操作数不变

3、以直接地址为目的操作数的指令

(1) MOV direct, A

例如 MOV 30H,A(将累加器A中的数送入内存单元30H)

(2) MOV direct,Rn

例如 MOV 30H,R7(将寄存器R7中的数送入内存单元30H)

(3) MOV direct,direct

例如 MOV 30H,20H(将内存单元20H中的数送入内存单元30H)

(4) MOV direct,@Ri

例如 MOV 30H,@R0(看一下R0中是什么值,把这个值作为地址并将这个地址单元中的值送入30H中。如执行指令前R0中的值为20H,则是将20H单元中的值送入30H中。)(5) MOV direct,#data

例如MOV 30H,#20H (将立即数20H送入内存单元30H,注意和第三条指令的区别MOV 30H,20H这里的20H是一个16进制数。)

4、以间接地址为目的操作数的指令

(1) MOV @Ri, A

(2) MOV @Ri, direct

(3) MOV @Ri, #data16

Ri只能用工作寄存器R0或者R1。

5、十六位数的传递指令

MOV DPTR,#data16

指令说明:这是51单片机中唯一的一条16位立即数传递指令。51系列单片机是一种8

位单片机,8位单片机所能表示的最大数只能是28=0-255,立即数不能大于255。如果现在有个数是1234H,我们要把它送入DPTR,INTEL公司已经把DPTR分成了两个寄存器DPH和DPL (看一下前面的特殊功能寄存器介绍),我们只要把12H(高8位)送入DPH,把34H(低8位)送入DPL中去就可以了,所以执行指令MOV DPTR,#1234H和执行指令MOV DPH,#12H(1);MOV DPL,#34H(2);是一样的。

6、累加器A与片外RAM之间的数据传递类指令

片外RAM(即片外数据存储器)——单片机的内部RAM不够时,我们就要扩充RAM空间,89C51单片机的片外RAM可以扩展到64K(即从0000H-FFFFH),外部RAM进行数据传递必须通过累加器A,它们之间的传递指令共有以下四条。

(1) MOVX A,@Ri

(2) MOVX @Ri, A

(3) MOVX A,@DPTR

(4) MOVX @DPTR, A

指令说明:

A.在51系列单片机中所有要送入或读出外部RAM的数据必须先送到A中去,由此我们可以看出内外部RAM的区别:内部RAM间可以直接进行数据的传递,而外部RAM则不行。比如要将外部RAM中某一单元(假设为100H单元的数据)送入另一个单元(假设为200H单元),就必须先将100H单元中的内容读入A中,然后再送到200H单元中去。在这里有一个问题:CPU是如何区分内外部RAM的?大家看这里的四条指令,其操作码都是MOVX,而内部RAM的操作码则是MOV,CPU就是根据不同的指令来自动区分读写内外部RAM的。

B.要读出或写入外部的RAM,当然还必须知道外部RAM的地址,在后两条指令中,地址是被直接放在DPTR中的;而前两条指令由于Ri(即R0或R1)只是一个8位的工作寄存器,所以只能提供低8位的地址。所以不同的应用场合就要使用不同的读写指令。

C.使用时应当首先将要读出或写入的地址送入DPTR或Ri中,然后再用读写指令

举例说明将外部RAM中100H单元中的内容送入外部RAM中200H单元中

MOV DPTR#100H

MOVX A@DPTR

MOV DPTR,#200H

MOVX @DPTR,A

7、累加器A与片外ROM之间的数据传递类指令

MOVC A,A+@DPTR

89C51的内部有4K的FLASH ROM空间,其地址为000H-FFFH。片外可以扩展到64K (OOOOH-FFFFH)。在这64K的ROM空间中有4K字节的地址是片内和片外公用的(即000H-FFFH),而1000H-FFFFH的空间是片外ROM专用的。既然有4K的地址是公用的那么CPU是如何区分的呢?在单片机的硬件电路中,有一个引脚EA(即31脚),当EA=1,CPU从片内ROM的4K字节中取指令;如果地址超过了4K(FFFH),单片机就自动转向片外ROM取指令,这个过程是自动完成的不需要人工干预,而当EA=0时,CPU只从片外ROM取指令,所以在实际的应用中,如果只使用内部ROM,一般总是把EA脚接电源,我们的实验板就是这么做的。

当使用外部ROM和外部RAM时它们的寻址范围都0000H-FFFFH,也就是说它们在地址上是重叠的,那么CPU在读取指令时又是如何来区分,当前是从ROM取指令还是从RAM取指令呢?请大家来看89C51单片机硬件电路图,29脚是PSEN,当我们置位PSEN时(即PSEN=1),CPU就读取外部ROM指令,而要从外部RAM读取指令时,就要置位WR(即16脚)或RD(即17脚),这样即使ROM地址和RAM地址是重叠的也不会出现混乱。

MOVC A,A+@DPTR

指令说明:

A.本条指令是将ROM中的数送入A中,通常称其为查表指令,我们常用此指令来查一个已做好在ROM中的表格。

B.此条指令引出一个新的寻址方法:变址寻址。本指令是要在ROM的一个地址单元中找出数据,显然必须知道这个单元的地址,在执行本指令前DPTR中有一个数,A中也有一个数,执行指令时将A和DPTR中的数加起来,就成为要查找的数的单元地址。把查找到的结果放在A中,因此,本条指令执行前后A中的值不一定相同。

举个例子有一个数在R0中要求用查表的方法确定它的平方值此数取值范围是0-5

MOV DPTR,#TAB

MOV A,R0

MOVC A,@A+DPTR

.

.

TAB: DB 0,1,4,9,16,25

假设R0中的值为“2”,送入A中,而DPTR中的值则为“TAB”,则最终确定的ROM单元的地址就是“TAB+2”,也就是到TAB+2这个单元中去取数,取到的是“4” (DB后面的第三个数)。其它数据也可以次类推。从这里可以看出,我们使用了标号(象TAB等)来代替具体的ROM单元地址,事实上标号的真实含义就是地址的数值,在这里它就代表了TAB+0,TAB+1,…TAB+25这几个数据在ROM中的存放位置;而我们以前学过的如LCALL DELAY指令,DELAY代表的是以DELAY为标号的那段程序在ROM中存放的起始地址,CPU就是根据这个起始地址才找到指令的。

二、单片机的伪指令

伪指令是单片机中用来给寄存器定义或者赋值的特殊指令。

1.DB—定义字节伪指令

它的功能是从程序存储器ROM单元的某个地址开始,存入一组规定好的8位二进制常数。

例如 ORG 2000H

TAB:DB 45,48H,10,34H

解释一下ORG—程序开始地址伪指令,本条指令的下一条从该地址开始存放数据。比如上面的指令经汇编后将从地址2000H开始给若干个ROM单元赋值即(2000H)=45H,(2001H)=48H,(2002H)=0AH,(2003H)=34H。

2.DW—定义字伪指令

51系列单片机要存放一个16位(1个字)的常数就必须把这个数分成两个8位数据来存放,通常我们把一个16位数的高8位放入低地址,而把低8位放入高地址。注意:这两个地址必须是紧挨着的。

例如 ORG 3000H

ABC:DW 2345H,0A859H

程序经汇编后(3000H)=23H,(3001H)=45H,(3002H)=A8H,(3003H)=59H。

3.DS—保留空间伪指令

它的功能是从指定的地址开始保留若干个字节的ROM空间留作它用

例如:ORG 2000H

ABC:DS,08H

LOOP:MOV A,30H

汇编以后从2000H开始将保留8个ROM单元留作它用,那么以LOOP为标号的指令就存放在2008H单元中。这里有一点请大家注意:这几条伪指令都只能对程序存储器ROM起作用,而不能用它们来对数据存储器RAM进行赋值,或做其他的工作。

例如:MOV DPTR,#100H

MOV A,R0

MOVC A,@A+DPTR

.

.

ORG 0100H

DB 0,1,4,9,16,25

如果R0中的值为2则最终地址为“100H+2”即“102H”,到102H单元中找到的是4

单片机实验总结

单片机实验总结

程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有 1.试编写程序。统计片内RAM 30H~50H单元中FFH的个数,并将统计结果存51H。 mov r0,#30h //把30h赋给R0 mov r1,#00h //把00h赋给R1 loop: cjne @r0,#0ffh,next //把R0所指的地址里的数(地址30h中的数)与0ffh比较 inc r1 //若为0ffh则R1加1(计算0ffh的个数) next: inc r0 //若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址) cjne r0,#51h,loop //比较R0所存的地址与51h,若不等则跳回loop 继续执行 mov 51h,r1 //若相等(R0里的数就为51h,完成30h到50h的计数)将R1里的值赋到地址51h里,即地址51h 中存储着0ffh的个数 sjmp $ //等待 end 2、从片内RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。 mov r0,#30h //把30h赋给R0 mov a,@r0 //把R0所指30H中的数赋给a(a中就是地址30h中的无符号数) mov r1,21h //把21h中的数赋给R1 loop: inc r0 //R0加1(即R0将指向下一个地址) mov 30h,@r0 //把R0所指地址的数给到地址30h中 cjne a,30h,chk //比较a中的数与地址30h中的数的大小,若a中的数>30H中的数,则Cy=0;否则相反 chk: jc lop //判断Cy是否为1,若是,则执行下面程序,否则跳至lop 继续执行 mov a,@r0 //把R0所指地址中的数给a,即把最小数赋给了a lop: djnz r1,loop //R1减一,程序跳至loop继续执行,循环直至R1减到0 mov 20h,a //把a中的数赋到地址20h中 end 3、设片外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。 mov dptr,#2000h //将片外地址2000h给dptr movx a,@dptr //将片外地址2000h中的数赋给a anl a,#0f0h //将a中的数与0f0h与下,屏蔽低四位的数 movx @dptr,a //将屏蔽好的数送回到片外地址2000h中 end

最新-单片机原理及应用期末考试必考知识点重点总结 精品

单片机概述 单片机是微单片微型计算机的简称,微型计算机的一种。 它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器\计数器以及I\O 接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。 字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长”,字长标志着精度,MCS-51是8位的微型计算机。 89c51 是8位(字长)单片机(51系列为8位) 单片机硬件系统仍然依照体系结构:包括CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。 由于一块尺寸有限的电路芯片实现多种功能,所以制作上要求单片机的高性能,结构简单,工作可靠稳定。 单片机软件系统包括监控程序,中断、控制、初始化等用户程序。 一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。 1.1单片机的半导体工艺 一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点; 另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点。例如:8181的功耗是630mW,80C51的功耗只有110mW左右。1.2开发步5骤: 1.设计单片机系统的电路 2.利用软件开发工具(如:Keil c51)编辑程序,通过编译得到.hex的机器语言。 3.利用单片机仿真系统(例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。 4.借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面。 5.根据设计实物搭建单片机系统。 2.1MCS-51单片机的组成:(有两个定时器) CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。 工作过程框图如下:

单片机课程项目设计总结

单片机课程项目设计总结 组员:赵宇,江秋怡,黄迪一、在整个过程中出现的问题及解决方案 在整个课程项目的设计过程中,我们遇到了许多困难和问题,但是凭着良好的心态和不放弃的精神,我们最终顺利完成了作品的设计和制作。 1、编程基础不扎实。 由于大一时没有打下扎实的编程基础,在编写这次的项目程序时,我们总是干道无处下手。最后我们通过查资料,并师兄的指导下,找准了方向。 2、硬件连接原理在某些方面存在误解。 由于是第一次在没有老师的情况下做作品,有些时候就会想当然,缺少实战经验的我们缺少理论到实践的经验,不过实验室的两位学长在这方面帮了我们很多。 二、团队管理的心得体会: 单片机的课程项目设计给了我们一次团队合作的机会,对于我们这一代来说,团队合作精神是我们身上所缺少但却必须要具备的。 在这次的团队合作中我们有以下几点感悟: 1、心要齐 作为同一个团队的成员,大家都是为了同一个目标奋斗,所以要以积极的态度朝着好的方向努力。 就比如做这个课程设计,首先大家在做什么作品上面要达成认同,目标统一了之后才能团结起来去为之奋斗。在奋斗的时候,每个人的态度都要端正,不能有的人很积极的在准备,而有的人却在消极的应付差事,这样不仅不利于团队的发展,更会影响到队员之间的感情,最后很可能导致团队的解散,不仅作品完成不了,同学之间的友谊也多了裂痕。 2、心要宽 虽然大家在一个团队,为了同一个目标在奋斗,但是每个人依旧是个独立的个体,不可能在每一个方面大家都是想的一样的,当某个队员自己有一些想法时,我们要个他一个宽松的环境让他坦诚的说出心里的话,作为听众的我们,要耐心的听取他的意见,认真思考,然后用合适的方式进行讨论,不能别人一说什么就否定人家,这样一来,以后队里就不会再有人说话了,好的创意和想法也不会有被挖掘的机会。 如果我们自己心里有什么想法,也要大胆的说出来,但是要注意语气和措辞,毕竟这是大家的团队,不是以自己为领导的工作班子。要听得进别人的意见。 三、课程设计的心得体会: 这次单片机课程设计,在我们看来不仅仅是单纯的一个单片机的应用,而是多学科多领域的综合设计。做完这次设计,我们有以下几点心得体会: 1、做这个设计不是光靠学好单片机这一门课就可以的。 在这个课程项目的设计过程中,我们充分体会到了要全面发展,各个学科都要学好,知识的全面性很重要。比如在编写程序时,我们就明显感觉到了C语言的基础不够扎实,当初学C 语言的时候并没有意识到它的重要性,而当我们真正开始做设计的时候才发现一个课程的项目设计是需要其他许多项目来给它做基础的。 2、做这个设计不是光靠学好书本上的知识就够的。 设计的灵魂便在于它的理念,要做出一个好的设计作品来,需要你平时对生活有足够的观察和了解,古话说,学以致用,及时你设计出来的东西原理再高深,但在实际生活中却无处可用,那也是没有任何价值的。所以在刻苦学习的同时,也要关注社会动态,了解人民生活所需,有一个正确的设计理念才能使自己走对第一步棋。

单片机课程设计总结

《单片机技术实践》课程设计总结 本课程实践的目的是,掌握单片机测量模拟量和数字量的测量方法,掌握单片机的外部控制方法,掌握单片机的显示器、键盘的扩展方法。通过学习和设计为毕业设计和科研开发打下良好的基础。本课程以MCS-51系列单片机为机型,介绍了单片机的基础知识、基本原理结构、51指令系统、中断、定时器/计数器、串行通信、C51程序设计、单片机的扩展、应用实例及抗干扰设计等知识。学生通过学习可较全面的掌握单片机的应用技术。单片机实验室仪器共40台组,每人一题,本次课程设计共5个题目,每个学生抽签选择题目,时间为一周。5个题目为: 1.数字电压表的设计 2.数字频率计的设计 3.外部输入正脉宽度测量 4.正弦信号发生器的设计 5.密码锁控制器的设计 收获有: 1.将理论教学与实践相结合,使学生对于单片机的实际应用有了较深刻的认识; 2.使学生对单片机应用系统设计的各种方法有所了解; 3.通过分工合作,培养学生之间的合作精神; 4.让学生熟悉电子系统设计的全过程;提高学生对设计课题的分析能力、编程能力及解决实际问题的综合能力。

5.通过实践,增强了下阶段的学习信心。为毕业设计奠定了基础。 存在的问题: 1.对于基础知识掌握的不牢固,特别是对于单片机的前项通道设计的理解的不够,反映出模拟电路掌握的不好。 2.缺乏对于电子系统设计测试的概念。 3.在所教授的3个班中,B05211班和B05212班的课程实践效果较好,每个班都有6-7人学习态度认真,积极向上,能吃苦,在班级里起到了较好的带头作用。而B05215的学生却缺少这样的人,存在着普遍实践动手能力较差的问题。 2008.6

单片机原理及应用总结

单片机原理及应用 第一章绪论 1.什么叫单片机?其主要特点有哪些? 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性价比。 第二章80C51的结构和原理 1.80C51的基本结构 a.CPU系统 ●8位CPU,含布尔处理器; ●时钟电路; ●总线控制逻辑。 b.存储器系统 ●4K字节的程序存储器 (ROM/EPROM/FLASH,可外扩 至64KB); ●128字节的数据存储器(RAM,可 外扩至64KB); ●特殊功能寄存器SFR。 c.I/O口和其他功能单元 ●4个并行I/O口; ●2个16位定时/计数器; ●1个全双工异步串行口; ●中断系统(5个中断源,2个优先 级) 2.80C51的应用模式 a.总线型单片机应用模式 ◆总线型应用的“三总线”模式; ◆非总线型应用的“多I/O”模式 3.80C51单片机的封装和引脚 a.总线型DIP40引脚封装 ●RST/V PO:复位信号输入引脚/备用 电源输入引脚; ●ALE/PROG:地址锁存允许信号 输出引脚/编程脉冲输入引脚;●EA/V PP:内外存储器选择引脚/片 内EPROM编程电压输入引脚;●PSEN:外部程序存储器选通信号 输出引脚 b.非总线型DIP20封装的引脚 ●RST:复位信号输入引脚 4.80C51的片内存储器 增强型单片机片内数据存储器为256 字节,地址范围是00H~FFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄存器间接寻址方式询问。注意:与该地址范围重叠的特殊功能寄存器SFR 空间采用直接寻址方式询问。 5.80C51的时钟信号 晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12分频后形成机器周期。即一个机器周期包含12个晶振周期或6个时钟周期。 6.80C51单片机的复位 定义:复位是使单片机或系统中的其他部件处于某种确定的初始状态。 a.复位电路 两种形式:一种是上电复位;另一种是上电与按键均有效的复位。 b.单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器 PC=0000H,所以程序从0000H地址单元开始执行。 特殊功能寄存器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF 不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为00H.相应的意义为: ●P0~P3=FFH,相当于各口锁存器已 写入1,此时不但可用于输出,也 可以用于输入; ●SP=07H,堆栈指针指向片内RAM

(完整版)单片机知识点总结

单片机考点总结 1.单片机由CPU、存储器及各种I/O接口三部分组成。 2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。 3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051 和8751. (1)I/O引脚 (2)8031、8051和8751的区别: 8031片内无程序存储器、8051片内有4KB程序存储器ROM、8751片内有4KB程序存储器EPROM。 (3)

4.MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用 为低8位地址输出口和数据口。MCS-51单片机片外可扩展存储最大容量为216=64KB,地址范围为0000H—FFFFH。(1.以P0口作为低8位地址/数据总线;2. 以P2口作为高8位地址线) 5.MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H—7FH; 00H—1FH: 工作寄存器区; 00H—1FH: 可位寻址区; 00H—1FH: 用户RAM区。 (2)21个特殊功能寄存器(SFR)(21页—23页);

(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。 PC=0000H, DPTR=0000H, Acc=00H, PSW=00H, B=00H, SP=07H, TMOD=00H, TCON=00H, TH0=00H, TL0=00H, TH1=00H, TL1=00H, SCON=00H, P0~P3=FFH 6. 程序计数器PC:存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。程序计数器PC是16位寄存器,没有地址,不是SFR. 7. PC与DPTR的区别:PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。 8. MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVE DPTR, #data16 是唯一的16位数据传送指令,用来设置地址指针DPTR。(46页) 定时/计数器T0和T1各由2个独立的8位寄存器组成,共有4个独立寄存器:TH1、TL1、TH0、TL0,可以分别对对这4个寄存器进行字节寻址,但不能吧T0或T1当作1个16位寄存器来寻址。即:MOV T0,#data16 ;MOV T1,#data16 都是错的,MOV TH0,#data;MOV TL0,,#data是正确的。 9.程序状态字寄存器PSW(16页) (1)PSW的格式: D7 D6 D5 D4 D3 D2 D1 D0 PSW D0H (2)PSW寄存器中各位的含义; Cy:进位标志位,也可以写为C。 Ac:辅助进位标志位。

单片机课程学习总结报告

单片机课程学习总结 班级09微电子学号姓名 这学期我们选择了单片机这门课,从第一节课开始,我们就感觉到了这门课与其他的课有一些不同。单片机课程不仅是学习书本的内容,也需要从实验中掌握知识。这门课程确实让我们受到了很多的启发,并学到了很多的知识。 学习单片机,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使我们从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。 熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,不可能一蹴而就。万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。想把厚厚的一本书看完在做实验,估计是不太可能的。看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看。我们在焊接具体电路之前,最好做个仿真,这样实验的成功率会大大提高。我们都学习过C语言,相信的大家的基础都不错,在编写程序千万不要光看不写,一定要自己写一次。刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。 在学习这门课程时,我遇到过许多困难,这并不可怕,因为只要我们敢于面对,团结合作,就没有解决不了的问题。在焊接电路过程中,我们需要互相学习焊接技巧,互相帮助、互相鼓励。在编写程序的时候,要善于把自己好的算法给大家分享,不会的时候要虚心向同学和老师请教。当然更要利用当今社

单片机原理及应用知识点汇总复习

单片机原理及应用知识点汇总 一、填空题 1、单片机是将微处理器、一定容量的RAM和ROM以及I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机80C51片内集成了 4 KB的FLASH ROM,共有 5 个中断源。 3、两位十六进制数最多可以表示256 个存储单元。 4、在80C51中,只有当EA引脚接高电平时,CPU才访问片内的Flash ROM。 5、当CPU访问片外的存储器时,其低八位地址由P0 口提供,高八位地址由P2 口提供,8位数据由P0 口提供。 6、在I/O口中,P0 口在接LED时,必须提供上拉电阻,P3 口具有第二功能。 7、80C51具有64 KB的字节寻址能力。 特 第 持 ,其 。 IP。 边沿 计数 / 22 、串行通信有同步通信和异步通信两种通信方式。 23、在异步通信中,数据的帧格式定义一个字符由4部分组成,即:起始位、数据位、奇偶校验位和停止位。 24、串行通信中,为使设备同步工作,需要通信双方有两个共同的要求,一是通信双方必须采用统一的编码方式,二是通信双方必须能产生相同的传送速率。 25、单片机80C51中的串行通信共有 4 种方式,其中方式0 是用作同步移位寄存器来扩展I/O口的。 26、设80C51的晶振频率为11.0592MHz,选用定时器T工作模式2作波特率发生器,波特率为2400b/s,且SMOD置0,则定时器的初值为F4H 27、键盘可分为独立连接式和矩阵式两类。键盘可分为编码式和非编 码式两类。 28、LED数码管有静态显示和动态显示两种方式。 29、在执行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。

单片机实训报告心得

广东轻工职业技术学院 实训报告 实训项目单片机实训 系别:电子通信工程系 专业:应用电子技术 班级:嵌入式091班 姓名:11222 学号:2009080202316 指导老师:丁向荣、赵慧 实训地点:第三实训楼C309 实训时间:2011年1月10日至1月14日

前言 单片机应用技术是现代电子设计的核心技术,学习单片机只是就是要将单片机应用到电子产品中,以单片机为控制核心实现电子系统所需实现的功能。单片机的应用能力很多程度上决定了电子类专业学生电子设计与电子应用的水平与能力,尤其是高职学生更是如此。 本项目要求设计一个简单的电子时钟,用六位LED数码管实现电子时钟的功能,显示方式为时、分、秒,采用24h(小时)计时方式,使用按键开关可实现时分调整。 通过电子闹钟项目的课题设计,让同学

们体验项目设计的要点,了解项目设计的流程,加深对单片机应用知识的学习,体会团队协作的力量所在。为日后的嵌入式专业学习巩固基础。 目录 1.概述………………………………………………………… 1.1 系统的作用……………………………………………………………… 1.2 系统的功能要求……………………………………………………………2.系统硬件设计……………………………………………….. 2.1系统的电路原理…………………………………………………………… 2.2 电路原理图……………………………………………………………… 2.3 各控制按钮控制功能说明………………………………………………. 3.系统软件设计………………………………………………. 4.系统调试……………………………………………………. 5. 总结…………………………………………………………

单片机课程设计总结报告

单片机课程设计 频率计 总结报告 姓名:陈艺端 学号:08292003 班级:电气0809 所在组:陈艺端 白英杰

【实验准备】 在实验前,我通过上网、上图书馆查找了一些关于频率计的资料,结合单片机所学的中断和定时器的知识,并对电路板各个元器件、接线等的清楚认识,完成了对电路板仿真图的绘制,以及初步的程序,并实现了初步的仿真效果。 【设计内容】 设计一个频率计。 【设计要求】 分频段(高频、低频),在10k~20kHz范围做切换。 CPU为AT89S51,利用内部T0、T1的定时计数器或外部INT0中断功能来完成对输入的信号进行频率计数或脉宽计时,计数(计时)的频率结果通过6位七段LED数码管显示出来。 数字式频率计原理框图: 【设计方案】 一、实验原理: 1、测频方式 利用单片机计数器T0和定时器T1中断。定时器T1中断产生闸门时间,在闸门时间Ts内,用计数器记录输入脉冲的个数N,从而计算出被测频率Fx =N/Ts。

2、测周方式 利用单片机外部中断INT0和定时器T1中断。定时器T1中断产生时标信号Ts,用外部中断INT0控制定时器T1的计数,计算出在被测信号的一个周期内定时器T1计得的数N,从而计算出被测频率Fx =NTs。 二、电路结构: ① NE555构成多谐振荡器,产生频率可调的方波信号; ②74HC74里的一个D触发器连成计数器,用来对555产生的方波分频; ③74HC14非门做驱动,防止产生的信号不能驱动单片机的I/O口;

④方波信号连接在单片机的INT0和T0口上。 ⑤单片机的P1口做字位,连接74HC245驱动数码管的共阴端; ⑥P0口做字形,连接74HC573锁存器和74HC245驱动数码管的a~dp端。 三、测频测周转换的讨论以及试验参数: 1、测频方式和测周方式的转换频率 依要求来说在10kHz~20kHz之间做切换。 2、转换频率过程中产生的问题 当被测信号频率与转换频率非常接近,并且抖动时,容易产生两种方式一直跳变的现象,进入死循环,可以利用迟滞比较器的原理进行解决。通常将测频方式和测周方式的转换频率设为程序判断测频还是测周的比较点,但为避免在转换频率附近产生死循环,设置两个比较点,分别为f1和f2,从高频测频方式向低频测周方式变化时,比较点为f1,从低频测周方式向高频测频方式变化时,比较点为f2,使f1

单片机总结

一、中断 (2) 1、中断优先级控制IP (2) 2、中断请求控制标志TCON (2) 3、中断允许控制IE (3) 4、写中断函数(不用在main函数前声明): (3) 二、定时器 (4) 1、工作方式寄存器TMOD:写程序时选择定时器和工作方式(设置M0、M1)。 (4) 2、对定时器装初值: (4) 3、设置中断: (4) 4、启动定时器控制寄存器: (4) 5、写中断函数(不用再main函数前声明): (5) 6、注意:中断函数中的功能程序代码的执行时间不要超过定时时间。 (5) 三、串行接口 (6) 1、将TMOD设置成定时器1,工作方式为2 (6) 2、计算T1的初值:TH1和TL1的值相同: (6) 3、启动定时器T1(对TCON设置):TR1=1; (6) 4、确定串行口控制SCON: (6) 5、串行口工作在中断方式时,进行中断设置: (6) 6、写中断函数。 (6) 串口补充:波特率的计算: (6)

一、中断 中断涉及到的寄存器和写程序时的操作顺序: 1、中断优先级控制IP IP的每一位需用程序置一,某个控制位置一,相应得中断源就设定为高级中断。 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示: 2、中断请求控制标志TCON IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式,P3.2引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.2引脚下降沿有效。 IE0(TCON.1),外部中断0中断请求标志位。单片机硬件自动置位和自动清零,不用编写在程序中。 IT1(TCON.2),外部中断1触发方式控制位。 当IT0=0时,为电平触发方式,P3.3引脚低电平有效。 当IT0=1时,为边沿触发方式,P3.3引脚下降沿有效。

最新单片机重点知识点整理

1单片机内部RAM 256个单元功能划分 通用工作寄存器区:用于存放操作数及中间结果 位寻址区:作为一般RAM单元使用,进行字节操作,也可对单元中每一位进行操作 用户区:供用户一般使用 特殊功能寄存器区:共专用寄存器使用 同步通信,依靠起始位和停止位实现同步 异步通信,依靠同步字符实现同步 1.方式0 串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。 2.方式1 在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和1位停止位。 3.方式2 串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。 4.方式3 方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式 3产品设计的步骤 1明确设计任务和性能指标2总体设计3硬件测试4软件设计5产品调试 4指令的寻址方式、分类,会举例 (1)立即数寻址指令本身直接含有所需要的8位或16位的操作数。 将此数称为“立即数”(使用#标明)。 MOV A,#5FH ;将(8位)立即数送累加器A (2)直接寻址指令直接给出了操作数的地址。 MOV A,3AH ;将RAM3AH单元内容送累加器 (3)寄存器寻址当所需要的操作数在内部某一个寄存器Rn中时,将此寄存器名Rn直接写在指令的操作数的位置上。 MOV A,R0 注意:寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7寄存器,所以rrr=111,既指令的机器码为:0EFH (4)寄存器间接寻址指令中含有保存操作数地址的寄存器Ri。 MOV A,@Ri ( i=0、1) 如:MOV R0,#3AH ;立即数送R0寄存器 (5)变址寻址;指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 MOVX A,@A+PC ;PC内容与A的内容相加得操作数地址并将此操作数送A

单片机课程设计心得体会范文

单片机课程设计心得体会范文 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能 力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 学生只有对自己、对英语及其文化、对英语学习有积极的情感,才能保持英语学习的 动力并取得成绩。消极的情感不仅会影响英语学习的效果,而且会影响学生的长远发展。 因此,在英语教学中我应该自始至终关注学生的情感,努力营造宽松、民主、和谐的教学 氛围。为此英语教师要做到: 其次,精心选择自然环境,引导学生抽象食物链、生产者、消费者概念。草原环境只 是个引子,要想抽象概念,必须要从个体到一般。于是,我选择了菜园里、森林里两个环境,让学生巩固用图例表达食物联系的方法,并学习如何在图片中表达食物联系,为后续 活动打下基础。 回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同 时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通 过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困 难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了 自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通 过这次课程设计之后,一定把以前所学过的知识重新温故。 这次单片机课程设计我们历时两个星期,在我们班里算是倒数几组完成的吧,但经过 这两个星期的实践和体验下来,我们又怎么会去在乎那个先后问题呢,因为对我来说学到 的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更 深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了 一个团队凝聚在一起时所能发挥出的巨大潜能! 为了让我们能更好的理解什么是高效课堂,教研部还多次带领着我们听一些高效课堂 的讲座,听后真是受益匪浅。要想培养好学生的学习习惯并非一朝一夕的事,要循序渐进。这些话语说起来容易做起来难,所以作为新一代的人民教师一定要认真对待这项艰巨的任务,让学生在我们的课堂上不断的养成良好的学习习惯,培养出一个个优秀的人才。

单片机课程设计心得体会

单片机课程设计心得体会 单片机课程设计心得体会: 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没 有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 关于这次课程设计,我们花费了比较多的心思,既是对课程理论 内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。 此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。 本 科课程设计(论文) 单片机控制流水灯的正常工作及 外部中断控制灯的亮灭

单片机实验心得体会3篇

单片机实验心得体会一:单片机实验心得体会 时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。 在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。 这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。将所学知识运用到实践中,在实践中发现问题,强化理论知识。 现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。 第一次是借点亮led灯来熟悉keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。所以第一次试验相对失败。鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。 在做实验中,第二个问题应该是准备不充分吧。一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。于是我便在上机之前把程序编好,拷到u盘,这样上机时只需调试,解决出现的问题。这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。 三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。这也能激发了学习的兴趣。 还有一次实验是调出电脑里的程序,让它在试验箱上实现其功,让我们去体会别人编程的技巧和程序逻辑美感。看了之后,不得不说我目前的水平简直太小儿科了。还有连线也是个问题,

(完整word版)单片机知识点总结

第一部分硬件基础 1、单片机的组成; 2、单片机的并行I/O口在使用时,有哪些注意的地方? 3、单片机的存储器;程序存储器和数据存储器的寻址范围,地址总线和数据总线的位数;数据存储器内存空间的分配;特殊功能寄存器区; 4、时钟及机器周期; 5、单片机的控制总线、地址总线及数据总线等。 例: 一、填空 1.MCS-51单片机有4个存储空间,它们分别是:、、、。 2、MCS-51单片机的一个机器周期包括个状态周期,个振荡周期。设外接12MHz晶振,则一个机器周期为μs。 3.程序状态字PSW由位组成。 4.在MCS-51单片机内部,其RAM高端128个字节的地址空间称 为区,但其中仅有个字节有实际意义。 5. MCS-51 系列单片机为位单片机,其数据总线为位,地址总线为位,可扩展的地址范围为。 6. MCS-51 单片机的4 个并行I/O 口若作为普通I/O 口使用时,输入操作分为读引脚和读锁存器,需要先向端口写“1”的操作是。 7. MCS-51 单片机的特殊功能寄存器分为可位寻址和不可位寻址两种,那么IE 为,TMOD 为。 8.通常MCS-51单片机上电复位时PC= H、SP= H、通用寄存器采用第组,这一组寄存器的地址范围 是 H。 9.MCS-51单片机堆栈遵循的数据存储原则。 10.在MCS-51单片机中,使用P2、P0口传送信号,且使用P0口来传送信号,这里采用的 是技术。 11.MCS-51单片机位地址区的起始字节地址为。

12.对于并行口在读取端口引脚信号时,必须先对端口写。13.PC的内容是。 14、MCS-51 单片机运行出错后需要复位,复位的方法是在复位引脚上加一个持续时间超过个时钟周期的高电平。 15、具有4KBytes 储存容量之存储器,其至少需具有根地址线。 二、问答 1.简述MCS-51 单片机的P0、P1、P2 和P3 口的功能。 2.MCS-51单片机的三总线是由哪些口线构成的。 3.MCS-51单片机的位寻址区的字节地址范围是多少?位地址范围是多少? 4. MCS-51单片机存储器在结构上有什么特点?在物理上和逻辑上各有那几个地址空间? 5.简述MCS-51单片机00H-7FH片内RAM的功能划分,写出它们的名称以及所占用的地址空间,并说明它们的控制方法和应用特性。 6.请写出MCS-51单片机的五个中断源的入口地址。 第二部分 C51程序设计 1、C51的指令规则;C51编程语句及规则; 2、C51表达式和运算符; 3、顺序程序、分支程序及循环程序设计; 4、C51的函数; 5、中断函数。 例: 1.程序的基本结构有。 2.C51的存储器模式有、、。 3.C51中int型变量的长度为,其值域为;unsigned char型变量的长度为位,其值域为。 4.C51中关键字sfr的作用,sbit的作 用。 5.函数定义由和两部分组成。 6.C51的表达式由组成。C51表达式语句由表达式和组成。

单片机学习心得10篇

《单片机学习心得》 单片机学习心得(一): 单片机学习心得体会 我从大二起,就去实验室去学习。在那里与老师和一些电子设计爱好者的交流中,我学到了更多的专业知识。我从此走上了学习嵌入式的道路。这丰富了我的大学生活,是我在大学的最大收获。 我是从学习单片机开始我的嵌入式学习的。 我接触单片机的方式是在图书馆看书,我看了很多本书,但是大多数书写的大同小异。书里面讲解的单片机的寄存器我看了很多遍也没有看懂。我都不明白改怎样学习它了。慢慢的我悟出了一个道理:电子的学习实践是最重要的,这样,我在大二的时候就买了一块学习板,我一边看视频一边仿照视频的程序,自己编写程序,在很短的时间里,我的单片机有了很大的提高。那些难懂的寄存器透过编写程序,我慢慢的弄懂了它们,此刻回头看去,原先它还是很简单的。 用哪种编程语言最适合我们。 我看过的单片机的书籍,大部分的程序都是汇编写的。它是一种基于机器硬件的低级语言,对于我们这些只学习过C语言的人来说,十分难懂。我认为刚开始学习单片机没有必要必须要从学习汇编编程开始。我学习单片机就是用C语言编程的,我并不会汇编语言,也没有妨碍我把单片机学好。 我的单片机学习心得。 很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。 单片机的学习实践。 单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是十分重要的。如何学习好硬件,动手实践是必不可少的。我们能够透过自己动手做一个自己的电子制作,透过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就能够多一些了解芯片的结构。我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。 这就是我学习单片机的心得体会,期望给单片机的爱好者学好单片机有所帮忙。

单片机课程学习总结报告

单片机课程学习总结报告 单片机课程学习总结报告 单片机课程学习总结 班级09微电子学号姓名 这学期我们选择了单片机这门课,从第一节课开始,我们就感觉到了这门课与其他的课有一些不同。单片机课程不仅是学习书本的内容,也需要从实验中掌握知识。这门课程确实让我们受到了很多的启发,并学到了很多的知识。 学习单片机,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使我们从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。 熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,不可能一蹴而就。万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。想把厚厚的一本书看完在做实验,估计是不太可能的。看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看。我们在焊接具体电路之前,最好做个仿真,这样实验的成功率会大大提高。我们都学习过C语言,相信的大家的基础都不错,在编写程序千万不要光看不写,一定要自己写一次。刚开始我

们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。 在学习这门课程时,我遇到过许多困难,这并不可怕,因为只要我们敢于面对,团结合作,就没有解决不了的问题。在焊接电路过程中,我们需要互相学习焊接技巧,互相帮助、互相鼓励。在编写程序的时候,要善于把自己好的算法给大家分享,不会的时候要虚心向同学和老师请教。当然更要利用当今社会为我们提供的网络资源,学会在网络上搜索资料,自主学习。切忌拿别人做好的实验和编写好的程序去蒙混过关,这样对自己百害无一利。 在学习单片机的时候,让我学会了思考生活中的点点滴滴。比如说,当我看到交通灯的时候会想到它的程序是怎样实现的?为什么它的led灯会有如此的高亮度?而我的led灯亮度很低,如果电流稍过大,就会烧毁。在家乡的公家车上看到远程led信息远程发布测试的时候,我便会想到它应有通信模块和显示模块两部分组成,也许我想的过于简单,但是让我学会了思考。 总之,学习单片机这门课程,不仅学会了这门专业课的知识,还提高了我的自主学习能力,更让我的世界观、方法论有了深层的提高,谢谢老师对我的教诲,让我受益匪浅。 扩展阅读:单片机课程总结报告 单片机与通用接口技术综合实践 课程总结报告 加减计数器 姓名:学号:

单片机期末总结材料 最完整版

单片机期末复习总结 1.MCS-51单片机芯片包含哪些主要功能? 8051单片机是个完整的单片微型计算机。芯片部包括下列主要功能部件: 1)8位CPU; 2)4KB的片程序存储器ROM。可寻址64KB程序存储器和64KB外部数据存储器; 3)128B部RAM; 4)21个SFR; 5)4个8位并行I/O口(共32位I/O线); 6)一个全双工的异步串行口; 7)两个16位定时器/计数器;0 8)5个中断源,两个中断优先级; 9)部时钟发生器。 2.MCS-51单片机的4个I/O口在使用上各有什么功能? 1)P0口:8位双向三态端口,外接上拉电阻时可作为通用I/O口线,也可在总线外扩时用作数据总线及低8位地址总线。 2)P1口:8位准双向I/O端口,作为通用I/O口。 3)P2口:8位准双向I/O端口,可作为通用I/O口,也可在总线外扩时用作高8位地址总线。 4)P3口:8位准双向I/O端口,可作为通用I/O口,除此之外,每个端口还有第二功能。实际应用中常使用P3口的第二功能。 P3的第二功能:

【注】:P0口必须接上拉电阻; I/O口准双向:MCS-51单片机I/O口做输入之前要先输出1.这种输入之前要先输出1的I/O口线叫做准双向I/O口,以区别真正的输入,输出的双向I/O口。 3. MCS-51单片机的存储器分为哪几个空间?是描述各空间作用? 8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间: 1)64KB片片外统一编址的程序存储器地址空间,地址围:0000H~FFFFH,对于8051单片机,其中地址0000H~0FFFH围为4KB的片ROM地址空间,1000H ~ FFFFH为片外ROM 地址空间; 2)256B的部数据存储器地址空间,地址围为00H~FFH,对于8051单片机,部RAM分为两部分,其中地址围00H ~ 7FH(共128B单元)为部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;对于8052系列单片机还有地址围为80H~FFH的高128B的静态RAM。 3)64KB的外部数据存储器地址空间:地址围为0000H~FFFFH,包括扩展I/O端口地址空间。

相关主题
文本预览
相关文档 最新文档