项目2 流水灯的设计与制作_第1页
项目2 流水灯的设计与制作_第2页
项目2 流水灯的设计与制作_第3页
项目2 流水灯的设计与制作_第4页
项目2 流水灯的设计与制作_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机系统设计与制作项目2流水灯的设计与制作目录

知识链接一、单片机汇编语言概述二、单片机的C语言简介三、单片机的程序设计流程任务实施一、任务分析二、安装与调试目录

知识链接二、单片机的C语言简介三、单片机的程序设计流程任务实施一、任务分析二、安装与调试一、单片机汇编语言概述1.指令格式1、概念指令:指示计算机执行某种操作的命令。指令系统:一台计算机所能执行的全部指令的集合,很大程度上决定了这台计算机性能的高低。1.指令格式2、计算机语言计算机能识别并执行的二进制编码。难记忆、难查错、难阅读、难调试、易出错。机器语言用助记符、符号和数字来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言1.指令格式编程计算10+20。例(1)机器码编程:

01110100;将某一数送到累加器A中

00001010;被送的数是10(0AH)

00100100;将累加器A中的内容与某数相加,结果送到A中

00010100;被加数是20(14H)用十六进制代码表示指令,即:

74H0AH24H14H1.指令格式(2)汇编语言编程:MOVA,#0AH;将数10(0AH)送到累加器A中ADDA,#14H;将累加器A中的内容与20(14H)相加,结果送到A中(3)机器码与汇编指令的对应关系:

01110100 MOVA,#0AH 00001010 00100100 ADDA,#14H 000101001.指令格式3、汇编语言指令格式33种功能指令系统42种助记符111条指令1.指令格式汇编语言指令格式:

[标号:]操作码[操作数1][,操作数2][,操作数3]

[;注释]不可省略可省略1.指令格式符号地址,可省略;标号由1~8个字符组成,第一个字符必须是字母或下划线,不能是数字或其他,标号后必须用冒号。注意标号不能与汇编语言保留字重名。(1)标号表示指令的操作类型,即执行什么样的操作,不能省略,一定要有。(2)操作码

[标号:]操作码操作数1[,操作数2][,操作数3]

[;注释][标号:]操作码

1.指令格式

[标号:]操作码操作数1[,操作数2][,操作数3]

[;注释]操作数1[,操作数2][,操作数3][;注释]表示参加运算的数据或数据的有效地址。视指令的不同可以没有操作数,可以只有一个,也可以有2个或3个。(3)操作数对指令的解释说明,提高程序的可读性,之前必须加“;”号,是非执行语句。(4)注释1.指令格式书写指令时出现的所有标点符号均是英文半角状态下的符号,不能用中文标点符号。注意2.寻址方式如何寻找存放操作数的地址,把操作数提取出来的方法。寻址方式寄存器寻址立即寻址直接寻址变址寻址相对寻址寄存器间接寻址位寻址2.寻址方式寻址方式类似于“找信”方式我的信在小A那里,我去找她拿!2.寻址方式寻址方式类似于“找信”方式我的信在小A那里,我去找她拿!直接寻找地址的方式2.寻址方式寻址方式类似于“找信”方式小A知道我的信在哪里,我去问问她!你的信在箱子里,自己去拿!2.寻址方式小A知道我的信在哪里,我去问问她!你的信在箱子里,自己去拿!间接寻找地址的方式操作数2.寻址方式操作数直接包含在指令中,即数据以指令字节的形式存放于程序存储器中。立即寻址MOVA,#20H目的地址操作数目的地址XXH20H累加器A20H操作数地址2.寻址方式存放数据的地址直接写在指令中。直接寻址是访问特殊功能寄存器的唯一方法。直接寻址MOVP0,30H目的地址操作数地址目的地址XXHP0口30H内部RAM或SFR区XXH操作数地址2.寻址方式数据存放在给定的寄存器中。寄存器包括工作寄存器R0~R7,累加器A,通用寄存器B,地址寄存器DPTR等。寄存器寻址MOVA,R1目的地址操作数地址目的地址XXH累加器AR1(寄存器)XXH寄存器2.寻址方式存放数据的地址在寄存器中,指令中给出存放地址的寄存器。注意:该寻址方式的寄存器只能是R0、R1和DPTR。寄存器间接寻址MOVA,@R0目的地址操作数地址目的地址30H累加器AR0、R1、DPTR内部RAM或SFRXXHR030HXXH2.寻址方式将基址寄存器与变址寄存器的内容相加,其结果作为数据的地址。主要用于查表操作。变址寻址16位的程序计数器PC或16位的数据指针DPTR。基址寄存器8位的累加器A。变址寄存器基址寄存器2.寻址方式将基址寄存器与变址寄存器的内容相加,其结果作为数据的地址。主要用于查表操作。变址寻址MOVCA,@A+DPTR目的地址操作数地址目的地址2000H累加器AROMXXH变址寄存器05H2000H05H+=2005H2005HXXHPC或DPTR,16bitA,8bit2.寻址方式将程序计数器PC的当前作为基准,与指令中给出的相对偏移量REL相加,其结果作为跳转指令的转移地址。主要用于跳转指令。相对寻址一般在指令中给出转移标号(地址),机器码中的偏移量在汇编时给出。写程序时不需要自己计算,只需写出转移标号就可以了。偏移量2.寻址方式将程序计数器PC的当前作为基准,与指令中给出的相对偏移量REL相加,其结果作为跳转指令的转移地址。主要用于跳转指令。相对寻址SJMPLOOPPCSJMP52HPC+REL→PC

2002H+52H=

2054H

2054H2002H···ROM区2FH20H···内部RAM区2EH2.寻址方式按位进行的寻址方式。存放位的地址可以是片内位寻址区域的位地址或特殊功能寄存器中的部分位地址。位寻址1111111CLR74H102.寻址方式(1)直接地址表示法用地址位地址来表示。例如:

MOVC,7FH;7FH表示位地址。位地址的表示方式(2)位名称表示法适用于有名称的特殊功能寄存器中的位。例如;SETBRS1;RS1为特殊功能寄存器PSW(程序状态寄存器)中的一位。2.寻址方式位地址的表示方式(3)点操作符表示法用地址单元或特殊功能寄存器的某位表示。例如:MOVC,20H.4;20H.4表示20H单元的第4位。

SETBPSW.5;PSW.5表示特殊功能寄存器PSW的第5位。2.寻址方式寻址方式寻址空间寄存器寻址R0~R7A,B,DPTR直接寻址内部RAM的低128字节SFR立即寻址ROM寄存器间接寻址内部RAM(Ri,SP)外部RAM(Ri,DPTR)变址寻址ROM(A+PC,A+DPTR)相对寻址ROM位寻址位地址00~7FHSFR中位寻址区2.寻址方式MOVP1,R0MOVP1,@R0MOVP1,20HMOVP1,#20H直接将20H这个数送P1口地址在寄存器R0里地址是寄存器R0地址是内存20H练一练2.寻址方式MOVP1,R0MOVP1,@R0MOVP1,20HMOVP1,#20H直接将20H这个数送P1口地址在寄存器R0里地址是寄存器R0地址是内存20H练一练3.单片机执行指令的过程

单片机的工作过程就是执行程序的过程,也就是执行指令的过程。指令的执行分为取指令和执行指令两个阶段,所以单片机的工作过程就是周而复始地取指令和执行指令的过程。3.单片机执行指令的过程(1)取指令单片机开机后,程序计数器PC=0000H,第一条指令的取指令阶段如下:①PC中的0000H送到片内的地址寄存器。②PC的内容自动加1,变为0001H,指向下一个指令字节。③地址寄存器中的内容0000H通过内部地址总线送到存储器,经存储器中的地址译码选中0000H单元。④CPU通过控制内部总路线发出读命令。⑤被选中单元的内容74H送内部数据总线,该内容通过内部数据总线到单片机内部的指令寄存器。⑥读出的操作码送指令寄存器IR。⑦经指令译码器译码,发出执行本指令所需的控制信号。

3.单片机执行指令的过程(2)执行指令第一条指令执行阶段:1)指令寄存器中的内容经指令译码后,表示把一个立即数送入A中。2)PC的内容为0001H,送内地址寄存器,译码选中0001H单元,同时PC的内容自动加1变为0002H。3)CPU同样通过控制总线发出读命令。4)0001H的单元的内容0AH读出经内部数据总线送至A。4.单片机指令系统(一)数据传送类指令

1、8位数据传送指令

2、16位数据传送指令

3、堆栈操作指令4.单片机指令系统

1、8位数据传送指令内部RAM数据传送指令共有15条,用于8051单片机片内数据存储器和寄存器之间的数据传送。direct@RiARn#data立即数寻址直接寻址寄存器寻址寄存器间接寻址4.单片机指令系统

1、8位数据传送指令

汇编指令格式 操作 MOVA,Rn (A)←(Rn) MOVA,direct (A)←(direct) MOVA,@Ri (A)←((Ri)) MOVA,#data (A)←#data(1)以累加器A为目的操作数的指令上述操作不影响源字节和任何别的寄存器内容,只影响PSW的P标志位。注意4.单片机指令系统

汇编指令格式 操作 MOVRn,A (Rn)←(A) MOVRn,direct (Rn)←(direct) MOVRn,#data (Rn)←#data(2)以寄存器Rn为目的操作数的指令8051指令系统中没有“MOVRn,@Ri”和“MOVRn,Rn”传送指令,也没有“MOV@Ri,@Ri”指令。注意

1、8位数据传送指令4.单片机指令系统

1、8位数据传送指令

汇编指令格式 操作 MOVdirect,A (direct)←(A) MOVdirect,Rn (direct)←(Rn) MOVdirect2,direct1 (direct2)←(direct1) MOVdirect,@Ri (direct)←((Ri)) MOVdirect,#data (direct)←#data(3)以直接地址为目的操作数的指令“MOVdirect2,direct1”指令在译成机器码时,源地址在前,目的地址在后。如“MOV50H,90H”的机器码为“859050”。注意4.单片机指令系统

1、8位数据传送指令

汇编指令格式 操作 MOV@Ri,A (Ri)←(A) MOV@Ri,direct (Ri)←(direct) MOV@Ri,#data (Ri)←data(4)以寄存器间接地址为目的操作数的指令(Ri)表示以Ri中的内容为地址所指定的RAM单元。注意4.单片机指令系统

2、16位数据传送指令汇编指令格式 操作MOVDPTR,#data16 ;(DPTR)←data16MOVDPTR,#1234H;DPTR←1234H,即DPH←12H

DPL←34H

4.单片机指令系统

3、堆栈操作指令

汇编指令格式 操作PUSHdirect (SP)←(SP)+1,(SP)←(direct)(1)入栈指令

汇编指令格式 操作POPdirect (direct)←((SP)),(SP)←(SP)-1(2)出栈指令4.单片机指令系统入栈指令堆栈指针SP先加1,并指向栈顶的上一个空单元,然后再将直接地址(direct)寻址的单元内容压入当前SP所指示的堆栈单元中。出栈指令先将堆栈指针(SP)所指示的内部RAM(栈顶)单元中内容送入由直接地址寻址的单元中,然后再将栈指针(SP)减1并回送SP。

这两条指令操作都不影响标志位P。注意

3、堆栈操作指令4.单片机指令系统(二)算术运算指令

1、加法、减法指令

2、乘法、除法指令

3、加1、减1指令

4、十进制调整指令4.单片机指令系统

1、加法、减法指令

汇编指令格式 操作

ADDA,Rn (A)←(A)+(Rn) ADDA,direct (A)←(A)+(direct) ADDA,@Ri (A)←(A)+((Ri)) ADDA,#data (A)←(A)+#data(1)加法类指令4.单片机指令系统当和的第3位或第7位有进位时,分别将AC、CY标志位置1;否则为0。如果第6位向第7位有进位而第7位没有向前进位,或者如果第7位向前有进位而第6位没有向第7位进位,OV=1,否则OV=0。该操作也影响标志位P。注意4.单片机指令系统

汇编指令格式 操作 ADDCA,Rn (A)←(A)+(Rn)+CY ADDCA,direct (A)←(A)+(direct)+CY ADDCA,@Ri (A)←(A)+((Ri))+CY ADDCA,#data (A)←(A)+#data+CY(2)带进位加法指令

1、加法、减法指令4.单片机指令系统本指令的执行将影响标志位AC、CY、OV、P,与ADD指令相同。注意4.单片机指令系统

1、加法、减法指令

汇编指令格式 操作 SUBBA,Rn (A)←(A)-CY-(Rn) SUBBA,direct (A)←(A)-CY-(direct) SUBBA,@Ri (A)←(A)-CY-((Ri)) SUBBA,#data (A)←(A)-CY-#data(3)带借位减法指令4.单片机指令系统在执行不带借位的运算时,可在“SUBB”指令前用“CLRC”指令将CY清0。如果第7位有借位,则CY置1,否则清0。若第3位有借位,则AC置1;否则清0。两个带符号数相减,还要考查OV标志,若OV为1,表示差数溢出,即破坏了正确结果的符号位。该操作也影响标志位P。注意4.单片机指令系统

2、乘法、除法指令

汇编指令格式 操作 MULAB BA←(A)×(B)(1)乘法指令若乘积大于0FFH,则OV置1,否则清0(此时B的内容为0)。CY总是被清0。该操作也影响标志位P。注意4.单片机指令系统

2、乘法、除法指令

汇编指令格式 操作 DIVAB A←(A)÷(B)的商,B←(A)÷(B)的余数(2)除法指令若除数(B)=00H,则结果无法确定,则OV置1。CY总是被清0。该操作也影响标志位P。注意4.单片机指令系统

3、加1、减1指令

汇编指令格式 操作 INCA (A)←(A)+1 INCRn (Rn)←(Rn)+1 INCdirect (direct)←(direct)+1 INC@Ri (Ri)←((Ri))+l INCDPTR (DPTR)←(DPTR)+1(1)加1指令加1操作不影响PSW的任何标志位。注意4.单片机指令系统

3、加1、减1指令

汇编指令格式 操作 DECA (A)←(A)-1 DECRn (Rn)←(Rn)-l DECdirect (direct)←(direct)-1 DEC@Ri (Ri)←((Ri))-1(2)减1指令加1操作不影响PSW的任何标志位。注意4.单片机指令系统

4、十进制调整指令

汇编指令格式 操作 DA 调整累加器A内容为BCD码十进制调整指令这条指令一般跟在ADD或ADDC指令后,将相加后存放在累加器中的结果进行十进制调整,完成十进制加法运算功能(不能用于十进制减法的调整)。调整方法如下:若(A0-3)>9或AC=1,则(A0-3)+6→A0-3若(A4-7)>9或CY=1,则(A4-7)+6→A4-7该操作影响标志位P。注意4.单片机指令系统(三)逻辑操作指令

1、逻辑“与”、“或”、“异或”指令

2、清零、取反指令

3、循环移位指令4.单片机指令系统

1、逻辑“与”、“或”、“异或”指令

汇编指令格式 操作 ANLA,Rn (A)←(A)∧(Rn) ANLA,direct (A)←(A)∧(direct) ANLA,@Ri (A)←(A)∧((Ri)) ANLA,#data (A)←(A)∧#data ANLdirect,A (direct)←(direct)∧(A) ANLdirect,#data (direct)←(direct)∧#data(1)逻辑“与”指令4.单片机指令系统后2条指令若直接地址正好是I/O端口P0~P3,则为端口的“读—改—写”操作。前4条指令的操作影响标志位P。注意4.单片机指令系统

1、逻辑“与”、“或”、“异或”指令

汇编指令格式 操作 ORLA,Rn A←(A)∨(Rn) ORLA,direct A←(A)∨(direct) ORLA,@Ri A←(A)∨((Ri)) ORLA,#data A←(A)∨#data ORLdirect,A direct←(direct)∨(A) ORLdirect,#data direct←(direct)∨#data(2)逻辑“或”指令4.单片机指令系统后2条指令若直接地址正好是I/O端口P0~P3,则为端口的“读—改—写”操作。前4条指令的操作影响标志位P。注意4.单片机指令系统

2、清零、取反指令

汇编指令格式 操作 CLRA A←0(1)累加器A清零指令该操作影响标志位P。注意4.单片机指令系统

2、清零、取反指令

汇编指令格式 操作 CPLA A←(~A)(2)累加器A取反指令对累加器A的内容逐位取反,不影响标志位。注意4.单片机指令系统

3、循环位移指令

汇编指令格式

操作 RL A (1)累加器A循环左移指令该操作不影响PSW标志位。注意A7A04.单片机指令系统

3、循环位移指令

汇编指令格式

操作 RR A (2)累加器A循环右移指令该操作不影响PSW标志位。注意A7A04.单片机指令系统

3、循环位移指令

汇编指令格式

操作 RLCA (3)累加器A带进位的循环左移指令该操作影响标志位P和CY。注意A7A0Cy4.单片机指令系统

3、循环位移指令

汇编指令格式

操作 RRCA (4)累加器A带进位的循环右移指令该操作影响标志位P和CY。注意A7A0Cy4.单片机指令系统(四)控制转移类指令

1、无条件转移指令

2、条件转移指令

3、调用、返回指令

4、空操作指令4.单片机指令系统

1、无条件转移指令当程序执行到该指令时,程序无条件转移到指令所提供的地址处执行。无条件转移指令无条件转移指令绝对转移长转移相对转移(短转移)间接转移(散转指令)AJMPLJMPSJMPJMP4.单片机指令系统

1、无条件转移指令

汇编指令格式

操作 AJMPaddr11 PC←(PC)+2,PC10~0←addrll, (PC15~11)不变 LJMPaddr16 PC←addrl6 SJMPrel PC←(PC)+2, PC←(PC)+rel JMP@A+DPTR PC←(A)+(DPTR)无条件转移指令4.单片机指令系统1、AJMP指令提供11位地址,可在该指令后面一个存储单元所在的2KB区域内无条件转移。2、LJMP本条指令提供16位目的地址,所以程序可转向64KB程序存储器地址空间的任何单元。3、SJMP的操作数是相对地址,rel是一个带符号的偏移量(补码),其范围为-128~+127共256字节。负数表示反向转移,正数表示正向转移。4、JMP指令采用的是变址寻址方式,指令执行过程对DPTR、A和标志位均无影响。这条指令可以根据累加器A的不同值实现多个方向的转移,可代替众多的判断跳转指令,具有散转功能,所以又称散转指令。用于实现多分支结构。注意4.单片机指令系统

2、条件转移指令条件转移指令是指根据给出的条件进行判断:

若条件满足,则程序转向由偏移量确定的目的地址处去执行。若条件不满足,程序将不会转移,而是按原顺序执行。8051有丰富的条件转移指令。4.单片机指令系统

2、条件转移指令

汇编指令格式

操作 JZrel PC←(PC)+2

若A=0,则程序转移PC←(PC)+rel

若A≠0,则程序往下顺序执行

JNZrel PC←(PC)+2

若A≠0,则程序转移PC←(PC)+rel

若A=0,则程序往下顺序执行(1)累加器A判零转移指令4.单片机指令系统相对偏移量为一个带符号的8位数,偏移范围为-128~+127,共256个字节。本指令不改变累加器A的内容,也不影响任何标志位。注意4.单片机指令系统

2、条件转移指令

汇编指令格式

操作CJNEA,direct,rel 累加器内容和直接寻址单元比较CJNEA,#data,rel 累加器和立即数比较CJNERn,#data,rel 寄存器内容和立即数比较CJNE@Ri,#data,rel 间接寻址单元内容和立即数比较(2)比较转移指令4.单片机指令系统

若目的操作数=源操作数,程序顺序执行,CY=0;若目的操作数>源操作数,程序转移,PC←(PC)+rel,并且CY=0;若目的操作数<源操作数,程序转移,PC←(PC)+rel,并且CY=1。本指令执行后不影响任何操作数。注意4.单片机指令系统

2、条件转移指令汇编指令格式

操作DJNZRn,rel PC←(PC)+2,Rn←(Rn)-1;

若(Rn)≠0,则程序转移PC←(PC)+rel;

若(Rn)=0,则程序往下顺序执行DJNZdirect,rel PC←(PC)+3,direct←(direct)-1

若(direct)≠0,则程序转移PC←(PC)+rel;

若(direct)=0,则程序往下顺序执行(3)减1非0转移指令(循环转移指令)4.单片机指令系统在一般的应用中,经常把rel设为负值,使得程序负向跳转。通过改变指令中Rn或者direct单元的内容,就可以控制程序负向跳转的次数,也就控制了程序循环的次数,所以该指令又称为循环转移指令。注意4.单片机指令系统

3、调用返回指令调用指令绝对调用长调用4.单片机指令系统

3、调用返回指令汇编指令格式 操作ACALLaddr11 PC←(PC)+2 SP←(SP)+1,(SP)←(PC0~PC7) SP←(SP)+1,(SP)←(PC8~PC15) PC0~PC10←addr0~10,PC11~PC15不变(1)绝对调用指令本指令提供11位子程序目的地址,调用地址的形成方法和绝对转移指令类似;被调用的子程序首地址必须在ACALL指令后一字节所在的2KB范围内的程序存储器中。注意4.单片机指令系统

3、调用返回指令汇编指令格式 操作LCALLaddr16 PC←(PC)+3 SP←(SP)+1,(SP)←(PC0~PC7) SP←(SP)+1,(SP)←(PC8~PC15) PC←addr16(2)长调用指令本指令提供16位子程序目的地址,被调用的子程序首地址可设置在64KB程序存储器地址空间的任何位置。注意4.单片机指令系统

3、调用返回指令

汇编指令格式

操作 RET PC8~15←((SP)),弹出断点高8位

SP←((SP)-1 PC0~7←((SP)),弹出断点低8位

SP←(SP)-1(3)返回指令本指令的作用是从子程序返回。当程序执行到本指令时,表示结束子程序的执行,返回调用指令(ACALL或LCALL)的下一条指令处(断点)继续往下执行。因此,它的主要操作是将栈顶的断点地址送PC,于是,子程序返回主程序继续执行。注意4.单片机指令系统

3、调用返回指令

汇编指令格式

操作 RETI PC8~15←((SP)),弹出断点高8位

SP←((SP)-1) PC0~7←((SP)),弹出断点低8位

SP←(SP)-1(4)中断返回指令本指令是中断返回指令,除具有RET指令的功能外,还具有开放低优先级中断、恢复中断逻辑等功能。在编程时不能将两种返回指令混用,中断返回一定要安排在中断服务程序的最后。注意4.单片机指令系统

4、空操作指令

汇编指令格式

操作

NOP PC←(PC)+1空操作指令这是一条单字节指令,除PC加1指向下一条指令以外,它不执行其他任何操作,不影响其他寄存器和标志位。NOP指令常用来产生一个机器周期的延迟,用来编写软件延时程序。注意4.单片机指令系统(五)位操作指令

1、位数据传送指令

2、位逻辑运算指令

3、位清0、置1指令

4、位条件转移指令4.单片机指令系统8051硬件结构中有个位处理机又称布尔处理机,它具有一套完整的处理位变量的指令集,包括位变量传送、逻辑运算、控制程序转移指令等。在进行位寻址时,PSW中的进位标志CY作为位处理机的累加器,称为位累加器。4.单片机指令系统

汇编指令格式

操作 MOVC,bit C←(bit) MOVbit,C bit←(C) ANLC,bit C←(C)∧(bit) ANLC,/bit C←(C)∧(bit) ORLC,bit C←(C)∨(bit) ORLC,/bit C←(C)∨(bit)(1)位操作指令4.单片机指令系统

汇编指令格式

操作 CLRC C←0 CLRbit bit←0 SETBC C←1 SETBbit bit←1 CPLC C←(~C) CPLbit bit←(~C)(2)位操作指令4.单片机指令系统汇编指令格式

操作JCrel PC←(PC)+2

若(C)=1,则程序转移PC←(PC)+rel

若(C)=0,则程序往下顺序执行JNCrel PC←(PC)+2

若(C)=0,则程序转移PC←(PC)+rel 若(C)=1,则程序往下顺序执行(3)判位累加器C转移指令4.单片机指令系统汇编指令格式

操作JBbit,rel PC←(PC)+3

若(bit)=1,则程序转移←(PC)+rel

若(bit)=0,则程序往下顺序执行JNBbit,rel PC←(PC)+3;

若(bit)=0,则程序转移PC←(PC)+rel

若(bit)=1,则程序往下顺序执行(4)判位变量转移指令4.单片机指令系统汇编指令格式操作JBCbit,relPC←(PC)+3

若(bit)=1,则程序转移PC←(PC)+rel,且bit←0

若(bit)=0,则程序往下顺序执行(5)判位变量清零转移指令4.单片机指令系统1、伪指令伪指令不是真正的汇编指令,无对应的机器码,在汇编时不产生目标代码(机器码),只是用来对汇编过程进行某种控制,比如控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。伪指令4.单片机指令系统ORG汇编起始地址指令DB定义字节数据指令ORG0010HDW定义字数据指令EQU符号定义指令DATA数据赋值指令END汇编结束指令LEDEQU#20H目录

知识链接一、单片机汇编语言概述三、单片机的程序设计流程任务实施一、任务分析二、安装与调试二、单片机的C语言简介二、单片机的C语言简介1、C语言开发单片机的优点可读性强可移植性好开发周期短可嵌入汇编函数库丰富无需考虑寄存器和存储器分配二、单片机的C语言简介2、C51的数据类型标准C基本数据类型char、int、short、long、float、doubleC51数据类型int和short相同,float和double相同。二、单片机的C语言简介

(1)char字符型数据类型名称长度值域unsignedchar无符号字符型1字节0~255signedchar有符号字符型1字节-128~+127char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。默认值为signedchar类型。二、单片机的C语言简介

(2)int整型数据类型名称长度值域unsignedint无符号整型2字节0~65535signedint有符号整型2字节-32768~+32767int整型长度为两个字节,用于存放一个双字节数据。默认值为signedint类型。二、单片机的C语言简介

(3)long长整型数据类型名称长度值域unsignedlong无符号长整型4字节0~4294967295signedlong有符号长整型4字节-2147483648~+2147483647long长整型长度为四个字节,用于存放一个四字节数据。默认值为signedlong类型。二、单片机的C语言简介

(4)float浮点型 数据类型名称长度值域float浮点型4字节±1.175494E-38~±3.402823E+38float浮点型在十进制中具有7位有效数字,是符合IEEE-754标准的单精度浮点型数据,占用四个字节。二、单片机的C语言简介

(5)*指针型数据类型长度data/idata/pdata1字节code/xdata2字节通用指针3字节指针型本身就是一个变量,在这个变量中存放的指向另一个数据的地址。这个指针变量要占据一定的内存单元,对不同的处理器长度也不尽相同,在C51中它的长度一般为1~3个字节。二、单片机的C语言简介

(6)bit位标量数据类型名称长度值域Bit位标量1位0、1bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。二、单片机的C语言简介

(7)sfr特殊功能寄存器 数据类型名称长度值域sfr特殊功能寄存器1字节0~255sfr也是一种扩充数据类型,占用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。例:sfrP1=0x90二、单片机的C语言简介

(8)sfr16特殊功能寄存器 数据类型名称长度值域sfr16特殊功能寄存器2字节0~65535sfr16和sfr一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器,如定时器T0和T1。例:sfrT0=0x90;二、单片机的C语言简介

(9)sbit可寻址位数据类型名称长度值域sbit可寻址位1位0、1sbit是C51中的一种扩充数据类型,利用它可以访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。例:sbitLED=P1^1;二、单片机的C语言简介4、变量的存储器类型变量的定义格式

[存储种类]数据类型[存储器类型]变量名表二、单片机的C语言简介存储器类型描述data直接寻址内部数据存储器,访问变量速度最快(128byte)bdata可位寻址内部数据存储器,允许位与字节混合访问(16byte)idata间接寻址内部数据存储器,可访问全部内部地址空间(256byte)pdata分页(256byte)外部数据存储器,由操作码MOVX@Ri访问xdata外部数据存储区(64KB),由操作码MOVX@DPTR访问code程序存储区(64KB),由操作码MOVC@A+DPTR访问C51支持的存储器类型如果用户不对变量存储类型定义,则编译器承认默认存储类型,默认的存储类型有编译控制命令的存储器模式部分决定。二、单片机的C语言简介变量举例说明:datacharvar; /*字符变量var定义在片内数据存储器*/bitlock;unsignedcharpdatatimer;charbdataflags;sbitflag0=flags^0;目录

知识链接一、单片机汇编语言概述二、单片机的C语言简介任务实施一、任务分析二、安装与调试三、单片机的程序设计流程1、单片机应用系统设计基本原则可靠性高性价比高开发周期短操作维护方便1、基本原则1、单片机应用系统设计基本原则21435使用可靠性高的元器件,防止因器件的损坏影响系统的运行选择典型电路,电路板布线和接地要合理,严格安装硬件设备,排除电路的不稳定因素增加系统自诊断功能,使系统运行遇到某些错误时检测并处理,继续执行正常程序充分利用片内硬件资源,简化系统扩展对供电电源的输入输出通道采取必要的抗干扰措施,防止环境干扰

(1)提高系统的可靠性1、单片机应用系统设计基本原则

(2)选择性价比高的方案A、在保证系统功能和性能的前提下,降低对单片机和其他器件技术指标的要求,使用成本较低的元器件。B、尽量简化外围电路,尽可能用软件程序替代硬件电路实现功能,降低制造成本。性价比2、单片机应用系统的设计过程自上向下的设计方法:先采用顶层设计,再对各部分内容细化实现。2、单片机应用系统的设计过程

(1)总体设计总体设计关键在于对系统功能和性能的认识和合理分析,系统单片机及关键芯片的选型,系统基本结构的确立和软、硬件功能的划分。总体设计2、单片机应用系统的设计过程01输入通道:根据被测信号可分为数字量输入和模拟量输入;根据硬件类型分为按键输入、键盘输入、传感器数据传输输入等等。03输出通道:根据控制对象的不同,有多种子控制功能,如继电器控制、显示控制、D/A转换控制等。02数据处理:分为数据预处理、功能处理、抗干扰处理等。

系统功能2、单片机应用系统的设计过程

系统性能:主要指系统的精度、速度、功耗、体积、质量、价格、工作环境、可靠性等一系列技术指标。01单片机选型考虑原则:市场货源、单片机性能、研发周期03划分系统软、硬件功能一般来说,系统功能通过硬件实现,可提高运行速度,但是系统体积、成本、功耗都会增大,可靠性会降低;通过软件实现,运行速度不及硬件,但是可以简化硬件结构,降低成本。02确定系统结构组成选择相应的外围电路器件,如扩展存储器、驱动电路、传感器、显示电路、键盘等。应满足系统的精度、速度和可靠性要求,同时兼顾市场供货和成本。2、单片机应用系统的设计过程

(2)硬件设计在系统基本结构确定,软、硬件功能划分以后,即可根据系统组成的要求,在所选单片机信号的基础上,确定系统外围电路及其所使用的元器件,画出硬件电路原理图及PCB图,制作PCB板,并焊接元器件。数据存储器扩展电路程序存储器扩展电路I/O扩展电路地址译码电路总线驱动电路抗干扰电路其他外围电路2、单片机应用系统的设计过程

(3)软件设计2程序编写系统总体设计1软件结构设计,要从系统总体考虑程序结构、数据格式和程序功能的实现方法,包括软件结构设计、建立数学模型、确定算法、绘制程序流程图。程序设计:模块化程序设计、自顶向下式程序设计、自底向上程序设计选择语言,注意注释。3、单片机应用系统的调试利用基本的测试仪器和开发系统,通过执行开发系统的基本命令,运行特定测试程序,来排除系统的硬件电路故障,如设计性错误或工艺性故障。硬件调试通过对目标程序的汇编、连接、执行来发现程序中存在的语法错误和逻辑错误,并加以排除。系统联调是在目标系统的软件在硬件电路上实际运行,将软件和硬件结合起来,以发现软、硬件故障或是软、硬件之间设计不匹配等问题。软件调试3、单片机应用系统的调试

(1)硬件调试静态调试指系统在上电之前对硬件电路检测,一般步骤:目测、万用表测试、上电检测动态调试在硬件电路正常工作的状态下,发现和排除硬件中存在的器件内部故障、器件间连接的逻辑错误等。动态调试又称为联机仿真调试。常用的测试方法是对外围电路进行循环读或写,再利用万用表或者示波器检测测试点状态,以判断被调试电路是否按预期状态运行。3、单片机应用系统的调试

(2)软件调试软件调试过程与软件结构和程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论