版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1第1页/共87页4.1.1 汇编语言的特点及语句格式汇编语言的特点及语句格式第2页/共87页4.1.1 汇编语言的特点及语句格式汇编语言的特点及语句格式第3页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第4页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第5页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第6页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第7页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第8页/共87页4.1.2 汇编语言伪指令汇编语言伪指令 第9页/共87页4. 2 基本程序结构基本程序结构1、顺序结构程序2、分支结构程序3、循环结
2、构程序4、子程序5、中断程序基本程序结构第10页/共87页 4.2.1 顺序结构顺序结构第11页/共87页 4.2.1 顺序结构顺序结构第12页/共87页 4.2.2 分支结构分支结构第13页/共87页 4.2.2 分支结构分支结构第14页/共87页 4.2.2 分支结构分支结构第15页/共87页第16页/共87页 4.2.3 循环结构循环结构第17页/共87页 4.2.3 循环结构循环结构第18页/共87页 4.2.3 循环结构循环结构第19页/共87页 4.2.3 循环结构循环结构第20页/共87页 4.2.4 子程序结构子程序结构 在编写程序过程中,如果遇到在编写程序过程中,如果遇到在几
3、个程序段中都需要执行某段在几个程序段中都需要执行某段相同程序的情况(功能独立),相同程序的情况(功能独立),为减少编程工作量和节省程序存为减少编程工作量和节省程序存储空间,就应该采用子程序结构储空间,就应该采用子程序结构,将重复执行的相同程序段编写将重复执行的相同程序段编写成为一个子程序成为一个子程序(功能子程序)(功能子程序)。返回返回调用调用断点断点子程序子程序主程序主程序第21页/共87页 4.2.3 子程序结构子程序结构第22页/共87页 4.2.5 中断程序结构中断程序结构第23页/共87页 4.2.5 中断程序结构中断程序结构第24页/共87页 4.2.5 中断程序结构中断程序结构
4、第25页/共87页第26页/共87页4.3.1 查表程序查表程序4.3 汇编语言程序设计实践汇编语言程序设计实践第27页/共87页4.3.1 查表程序查表程序 例例4-8,将,将16进制数转换成进制数转换成ASCII码的子程序。假设码的子程序。假设16进制数存放在进制数存放在R0中低中低4位,要求将转换后的位,要求将转换后的ASCII码送回到码送回到R0中。中。 设计思路:己知设计思路:己知0-9的的ASCII码为码为30H一一39H,AF的的ASCII码为码为41H一一46H。对十六进制数而言,。对十六进制数而言,0-F是连续的,是连续的,而对应的而对应的ASCII码不连续,查表方法对解决此
5、类问题十分码不连续,查表方法对解决此类问题十分有效。根据题意,子程序的入口参数和出口参数均通过有效。根据题意,子程序的入口参数和出口参数均通过R0传递,表中所有的值都是单字节,表格长度为传递,表中所有的值都是单字节,表格长度为16字节。字节。4.3 汇编语言程序设计实践汇编语言程序设计实践第28页/共87页查表子程序:查表子程序:MOV A,R0 ;读取主程序通过;读取主程序通过R0传送的十六进制数传送的十六进制数ANL A,0FH ;屏蔽高;屏蔽高4位,取出低位,取出低4位位ADD A,#02H ;设置变址值(依据表首地址与查表指;设置变址值(依据表首地址与查表指 令所处位置)令所处位置)M
6、OVC A,A+PC ;查表指令(获得对应的;查表指令(获得对应的ASCII码)码)MOV R0,A :通过:通过R0将查表结果传递给主程序将查表结果传递给主程序RETTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H 程序中因为程序中因为“MOVC A,A+PC”指令与表格首址相隔两个指令与表格首址相隔两个字节,故变址调整值为字节,故变址调整值为2,程序中对应变量,程序中对应变量x的函数值的函数值y为单字节。为单字节。4.3.1 查表程序4.3 汇编语言程序设计实践汇编语言程序设计实践第29页/共
7、87页4.3.2 算术运算程序4.3 汇编语言程序设计实践汇编语言程序设计实践第30页/共87页4.3.2 算术运算程序4.3 汇编语言程序设计实践汇编语言程序设计实践第31页/共87页 BCDADD: MOV 20H,R0 MOV 23H,R2 CLR C LP0: MOV A,R0 ;取被加数;取被加数 ADDC A,R1 ;两数相加;两数相加 DA A ;十进制调整;十进制调整 MOV RO,A INC R0 ;指针加;指针加1 DJN2 R2,LP0 ;做完加法否;做完加法否4.3.2 算术运算程序 MOV R2,23H JNC RETURN ;有无进位;有无进位 MOV R0,#01
8、H INC R3 RETURN: MOV R0,#20H RET 4.3 汇编语言程序设计实践汇编语言程序设计实践第32页/共87页例例4-11,如图,如图4-2所示,所示,MCS-51单片机的单片机的P1作为作为输出端口,连接输出端口,连接8只发光只发光二极管。按该电路工作原二极管。按该电路工作原理,理,P1口各位输出口各位输出“0”时,时,将发光二极管点亮;将发光二极管点亮;P1口口各位输出各位输出“1”使发光二极使发光二极管灭。分析下述汇编程序管灭。分析下述汇编程序运行后,运行后,8个发光二极管个发光二极管点亮的规律。点亮的规律。4.3.3 I/O接口控制程序图图4-2 P14-2 P1
9、口驱动口驱动LEDLED示意图示意图4.3 汇编语言程序设计实践汇编语言程序设计实践第33页/共87页主程序:主程序: LP:MOV P1,7EH LCALL DELAY MOV P1,0BDH LCALL DELAY MOV P1,#0DBH LCALL DELAY MOV P1,0E7H LCALL DELAY MOV P1,0DBH LCALL DELAY MOV P1,0BDH LCALL DELAY SJMP LP子程序:子程序: DELAY:MOV R2,0FAH L1:MOV R3,# 0FAH L2:DJNZ R3,L2 DJNZ R2,L1 RET4.3.3 I/O接口控制程
10、序接口控制程序第34页/共87页 例例4-12: 按照图按照图4-2所示的电路,试编写控制发光二极管所示的电路,试编写控制发光二极管指示灯移位的程序,要求指示灯移位的程序,要求8个发光二极管依次亮一个,循个发光二极管依次亮一个,循环左移,一个一个地亮,直至循环。相关源程序如下环左移,一个一个地亮,直至循环。相关源程序如下: MOV A,7FH L1:MOV P1,A RL A LCALL DELAY;与例;与例4-11的延时程序相同的延时程序相同 SJMP Ll 4.3.3 I/O接口控制程序4.3 汇编语言程序设计实践汇编语言程序设计实践第35页/共87页一个函数的定义由类型、函数名、参数表
11、和函数体四部分一个函数的定义由类型、函数名、参数表和函数体四部分组合而成。一个函数在程序中可以三种形态出现:函数定组合而成。一个函数在程序中可以三种形态出现:函数定义、函数调用、函数说明。义、函数调用、函数说明。 C51函数的一般格式为:函数的一般格式为:类型类型 函数名(参数表)函数名(参数表)参数说明;参数说明; 数据说明部分;数据说明部分;/注释注释 执行语句部分;执行语句部分; 4.4.1 C51程序结构程序结构4.4 面向面向51单片机的单片机的C语言程序语言程序第36页/共87页4.4.2 C51数据类型数据类型数据类型数据类型位型(位型(bit)字符型(字符型(char)整型(整
12、型(int)长整型(长整型(long)浮点型(浮点型(float)双精度浮点型(双精度浮点型(double)数组类型(数组类型(array)结构体类型(结构体类型(struct)共用体(共用体(union)枚举(枚举(enum)基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型1. 数据类型数据类型第37页/共87页数据类型数据类型长度长度/Byte值域值域BitUnsigned charSigned charUnsigned intSigned intUnsigned longSigned longFloatDouble11224440,10255-128127065 535-32
13、 76832 76704 294 967 295-2 147 483 6482 147 483 6471.176E-383.40E+38(6位数字)1.176E-383.40E+38(10位数字)表表4-1 KEIL C51 数据类型数据类型4.4.2 C51数据类型数据类型1. 数据类型数据类型第38页/共87页4.4.2 C51数据类型数据类型1. 数据类型数据类型-常量和变量常量和变量第39页/共87页4.4.2 C51数据类型数据类型第40页/共87页存储类型存储类型存储空间存储空间databdataidatapdataxdatacode内部内部RAM低低128单元,可直接寻址单元,可
14、直接寻址片内片内RAM位寻址区位寻址区内部内部RAM,间接寻址,间接寻址片外片外RAM,256字节字节片外片外RAM,64KB代码存储区,代码存储区,64KB表表4-2 C51存储类型与单片机存储空间对应关存储类型与单片机存储空间对应关系系4.4.2 C51数据类型数据类型2C51数据存储类型数据存储类型第41页/共87页4.4.2 C51数据类型数据类型第42页/共87页4.4.2 C51数据类型数据类型4片外扩展片外扩展I/O口口第43页/共87页4.4.3 C51运算符和表达式运算符和表达式4.4.2 C51数据类型数据类型第44页/共87页4.4.3 C51运算符和表达式运算符分类运算
15、符表达式示例优先关系(高低)算术运算符* 乘法/ 除法% 求余+ 加法或正值- 减法或负值a+b;(a+b)*c;!算术运算符关系运算符逻辑运算符赋值运算符关系运算符 大于= 大于或等于= 测试等于!= 测试不等于c(a+b)a=bc逻辑运算符& 逻辑与| 逻辑或! 逻辑非c=a&bb=!a位操作运算符& 按位与| 按位或 按位异或 按位取反 位右移c=a&ba=b1自增减运算符+ 自加1- 自减1+ii+复合运算符算术运算符及位操作运算符复合使用i+=3第45页/共87页4.4.4 C51流程控制语句流程控制语句4.4 面向面向51单片机的单片机的C语言程序语
16、言程序第46页/共87页条件1处理1条件2条件n处理2处理3处理4YYYNNN图图4-3 串行多分支结构流程图串行多分支结构流程图串行多分支结构串行多分支结构第47页/共87页1选择结构语句及流程图选择结构语句及流程图第48页/共87页 并行多分支结构图图4-4并行多分支结构流程图并行多分支结构流程图第49页/共87页1选择结构语句及流程图选择结构语句及流程图4.4.4 C51流程控制语句流程控制语句第50页/共87页2 2循环结构语句及流程图循环结构语句及流程图 循环结构中常见的控制语句主要有循环结构中常见的控制语句主要有while, do while, for等。等。 While语句的一般
17、形式为:语句的一般形式为:while(条件条件)语句;语句;,图图4-5 while结构流程图结构流程图4.4.4 C51流程控制语句流程控制语句第51页/共87页图图4-6 do while结构流程图结构流程图 4.4.4 C51流程控制语句流程控制语句2循环结构语句及流程图循环结构语句及流程图第52页/共87页for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句;语句;,for语句语句在执行时共有在执行时共有5个过程,具体执行过程如下:个过程,具体执行过程如下: 对表达式进行赋值初始化对表达式进行赋值初始化 判断表达式判断表达式2是否为真,若为真则进行循环,若为假是否为真,若为
18、真则进行循环,若为假则退出循环则退出循环 若表达式若表达式2为真,则执行循环体内的语句,并求解表为真,则执行循环体内的语句,并求解表达式达式3 回到第二步,再判断表达式回到第二步,再判断表达式2 退出退出for 循环循环4.4.4 C51流程控制语句流程控制语句2循环结构语句及流程图循环结构语句及流程图第53页/共87页 51单片机内部资源主要是特殊功能寄存器或单片机内部资源主要是特殊功能寄存器或SFR寻址,寻址,在在KEIL C51中提供了定义这些寄存器的头文件中提供了定义这些寄存器的头文件,在进行在进行C语言编程,应在源程序的开始处包含头文件,语言编程,应在源程序的开始处包含头文件,#in
19、clude 。内部资源的。内部资源的C语言编程主要介绍外中语言编程主要介绍外中断、定时器和串行口编程。断、定时器和串行口编程。 C51编译器支持在编译器支持在C源程序中直接开发中断程序,采用源程序中直接开发中断程序,采用特殊语法定义中断函数,定义方法如下:特殊语法定义中断函数,定义方法如下: 返回值返回值 函数名函数名 interrupt n using m n代表单片机的中断编号,代表单片机的中断编号, n的范围(的范围(04)依次为外部)依次为外部中断中断0、定时、定时/计数器计数器0、外部中断、外部中断1、定时、定时/计数器计数器1、串行、串行口中断。口中断。m表示通用寄存器组的的选择,
20、范围(表示通用寄存器组的的选择,范围(0-3)。)。4.4.5 单片机资源与C语言编程第54页/共87页第55页/共87页IN31IN42IN53IN64IN75START6EOCD3OE9CLK10VCCREF+GND13D1D2REF-D0D4D5D6D7ALE22ADD C23ADD B24ADD A25IN026IN127IN228IN31IN42IN53IN64IN75START6EOCD3OE9CLK10VCCREF+GND13D1D2REF-D0D4D5D6D7ALE22ADD C23ADD B24ADD A25IN026IN127IN228IN31IN42IN53IN64IN7
21、5START6EOC7D38OE9CLK10VCC11REF+12GND13D114D215REF-16D017D418D519D620D721ALE22ADD C23ADD B24ADD A25IN026IN127IN228U2ADC0809VCCVCCCLKSTARTOESTARTEOC8910U3C231231231U3A564564564U3BP3.6P3.7STARTOEIN0IN1IN2IN3IN4IN5IN6IN7A0A1A2P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7CS1123456781234567812345678JP6ADINCLK10CLK11D1
22、213Q9Q8CLRPR10CLK11D1213Q9Q810CLK11D1213Q9Q8U5B74LS74VCCVCCALEP3.2P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29A
23、LE30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A
24、1326P2.6/A1427P2.7/A1528PSEN29ALE30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/
25、A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29ALE30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40U689S51OE1LE11D13Q12D24Q25D37Q36D48Q49D513Q512D614Q615D717Q716D818Q819VCC20GND10OE1LE11D13Q12D24Q25D37Q36D48Q49D513Q512D614Q615D717Q716D818Q8
26、19VCC20GND10OE1LE11D13Q12D24Q25D37Q36D48Q49D513Q512D614Q615D717Q716D818Q819VCC20GND10U474LS373NC930pFC830pFS1RST121212Y1 6MR22KR3200C422UVCCVCCVCCALEP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RSTVCCALEA0A1A2A3A4A5A6
27、A7A1B2C3OE2A4OE2B5OE1Y77GNDY69Y510Y411Y312Y213Y114Y015VCC16A1B2C3OE2A4OE2BOE1Y77GNDY69Y510Y411Y312Y213Y114Y015VCC16A1B2C3OE2A4OE2BOE16Y77GND8Y69Y510Y411Y312Y213Y114Y015VCC16U874LS138VCCP2.5P2.6P2.7VCCCS0CS1CS2CS3CS4CS5CS6CS7图4-7 单片机数据采集原理图第56页/共87页第57页/共87页C51源程序如下:#include /包含头文件#include#define uch
28、ar unsigned char#define IN0 XBYTE0 x2000 /设置ADC0809通道0的地址sbit ad_over=P32;/转换结束标志定义void ad0809(uchar idata *x) /采集函数uchar i;uchar xdata *ad_adr;ad_adr=&IN0;for(i=0;i8;i+)/循环采集8个通道*ad_adr=0;/启动ADwhile(ad_over=0);/查询转换结束标志xi=*ad_adr;/存储结果ad_adr+;/下一通道 void main(void)/主函数static uchar ad10;ad0809(ad
29、);第58页/共87页第59页/共87页#include#define uchar unsigned char#define uint unsigned intsbit D0=P10;uint a;void main()D0=0;a=59000;while(a-);D0=1;a=50000;while(a-);第60页/共87页#includedelay_10ms(unsigned t) unsigned int i,j; for(i=0;it;i+)for(j=0;j1880;j+);void main() while(1) delay_10ms(100);P0=0 xfe;delay_10
30、ms(100);P0=0 xfd;delay_10ms(100);P0=0 xfb;Delay_10ms(100);P0=0 xf7;delay_10ms(100);P0=0 xef;delay_10ms(100);P0=0 xdf;delay_10ms(100);P0=0 xbf;delay_10ms(100);P0=0 x7f; 第61页/共87页#include /52系列单片机头文件系列单片机头文件#define uint unsigned int /宏定义宏定义#define uchar unsigned charvoid delayms(uint); /声明子函数声明子函数ucha
31、r x; /声明无符号数原变量声明无符号数原变量x(占(占1B)void main() /主函数主函数P1=0 xfe;/赋初值赋初值11111110 while(1) /大循环大循环for(x=0;x8;x+)/左移左移8次次 delayms(500); /延时延时500毫秒毫秒 P1=P11; /左移左移1位位 /左移结束,灯全部亮左移结束,灯全部亮for(x=0;x1|0 x80 ; /右移右移1位,并设定最高位为位,并设定最高位为1 /右移结束,灯全部右移结束,灯全部灭灭第62页/共87页 无论是单片机汇编语言还是C语言编程,都需要借助一个软件工具,一般也称为开发环境,目前有很多专业的
32、单片机软件开发工具,下面为读者介绍一种单片机的集成开发环境,Keil uVision2集成开发环境。 Keil Vision2集成开发环境是德国Keil公司针对51系列单片机应用系统开发而推出的基于32位 windows环境下,以51单片机为开发目标,以高效率C语言为基础的集成开发平台。本节主要介绍Keil C51 V7.20版,它主要包括C51交叉编译器和A51宏汇编等工具,还内嵌了单片机仿真调试软件,可以让用户采用模拟仿真和实时在线仿真两种方式对目标系统进行开发。软件仿真时,它可以查看程序变量,内部存储单元。以及模拟和查看单片机I/O口,定时器及中断的工作方式和设置,甚至可以仿真单片机的串
33、行通信。4.5 Keil Vsion2 集成开发环境集成开发环境第63页/共87页4.5.1 Keil uVsion2安装第64页/共87页 在Keil uVsion2支持下开发单片机应用系统软件,一般需要经过以下的几个过程:创建工程工程选项卡设置新建源文件添加源文件到工程编译仿真调试下载。4.5.2 Keil Vsion2的使用第65页/共87页(1) Keil C51 Vision2界面与工程创建(如图4-8)图图4-8 Keil C51 Vision2 的工作界面的工作界面第66页/共87页 创建一个新工程,首先须在菜单栏“Project”菜单中选择“New Project”选项(补充图1),此时会弹出“创建新工程”对话框(补充图2),可填入工程名,随后单击保存。 创建新工程创建新工程 补充图补充图1第67页/共87页 保存工程项目(保存工程项目(Test) 补充图补充图2第68页/共87页 接着出现选择单片机芯片型号对话框(补充图3)。本例选择单片机,随后点击“确定”,新工程创建即告完成。 选择芯片型号选择芯片型号 补充图补充图3 第69页/共87页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苗木基地项目节能评估报告
- 绿色建筑屋顶花园施工方案
- 硫铁矿制酸渣处理方案
- 机械清除危岩体工程资金申请报告
- 机械喷涂砂浆工程初步设计
- 完善碳排放统计核算体系实施方案
- 汽配机加工车间管理制度
- 建筑工程安全作业统筹方案
- 蒸压加气混凝土砌块建筑工程施工方案
- 供热管网运维巡检数字化管理落地指南
- 2026年摩托驾照测试题及答案
- 2026年广西中考语文试卷(含答案)
- 2024年高考政治试卷(贵州)(解析卷)
- 职业教育政策题目及答案
- 二年级数学计算题专项练习1000题汇编
- 2026年新编党支部书记应知应会测试试卷(带答案)
- 2026年输血技师副高考试试题及答案解析
- 2026 第六届“四川工匠杯”职业技能大赛 餐厅服务赛项 理论考试参考题库 含答案
- 供热管网管道焊接施工方案
- 医疗设备操作SOP(标准操作程序)模板
- 公寓电气施工方案(3篇)
评论
0/150
提交评论