MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。
汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。
汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序。
汇编的方法:汇编的方法有两种
1.手工汇编:
人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。
2.机器汇编:
用计算机中的汇编程序对用户源程序进行汇编。
用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。
1)确定程序中每条汇编语言指令的指令机器码
2)确定每条指令在存储器中的存放地址
3)提供错误信息
4)提供目标执行文件(.OBJ/.HEX)和列表文件(*.LST)
地址 机器码 源程序
ORG 2000H
2000H 78 30 MAIN: MOV R0,#30H
2002H E6 MOV A,@R0
…
伪指令
一、汇编语言指令类型
- 机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。
- 伪指令: 汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。
宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。
宏定义过程:
宏指令名 MACRO 形式参数
… ;被定义的程序段
ENDM
宏调用过程:
…
宏指令名 实际参数
…
宏指令名 实际参数
伪指令 常用伪指令及功能:
1.起始指令 ORG nn
功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序存储器中。
指令地址 机器码 源程序
ORG 2000H
2000H 78 30 MAIN: MOV R0,#30H
2002H E6 MOV A,@R0
…
ORG 3000H
3000H 23 TAB: DB 23H,100,‘A’
3001H 64
3002H 41
2.字节定义 标号: DB(字节常数,或字符或表达式)
功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。
例如 LN:DB 32,’C’,25H,-1;LN~LN+2 地址单元依次存放20H , 43H , 25H ,FFH - 字定义 标号:DW (字常数或表达式)
作用: 指示在程序存储器中以标号为起始地址
的单元里存放的数为字数据(即16位的二进制数),例如:
GH :DW 1234H,5678H,08
4.保留字节 标号:DS (数值表达式)
作用: 指示在程序存储器中保留以标号为起始地
址的若干字节单元,其单元个数由数值表达式指定。
例如 L1:DS 32 ; 从L1地址开始保留32个存储单元。 - 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH
- 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH
- 位定义 标号 BIT [位地址]
作用: 同EQU指令,不过定义的是位操作地址。
例如 AIC BIT P1.1。
7.汇编结束 END
作用: 指示源程序段结束。
END指令放在程序的最后。
A51汇编程序还有一些其它的伪指令,列在教材表3-1中,以备查阅。
QY-JXSY33多功能单片机实验开发系统是根据《MCS-51单片机原理与接口》《C8051嵌入式单片机控制技术》《自动化控制》《CPLD/FPGA技术》等课程教学开发生产。以小系统、多功能、易扩展为设计思想,系统的地址总线、数据总线、控制总线全部引出,对用户开放,并留有扩展单元(区)。
实验项目
(一)软件实验
(1)清零程序;
(2)拆字程序;
(3)拼字程序;
(4)数据区传送子程序;
(5)数据排序实验;
(6)查找相同数据个数;
(7)无符号双字节快速乘法子程序;
(8)多分支程序;
(9)脉冲计数实验;
(10)电脑时钟实验。
(二)硬件实验
(1)P1口亮灯实验;
(2)P1口转弯灯实验;
(3)P3.3口输入,P1口输出实验;
(4)工业顺序控制实验;
(5)8255 A、B、C口输出方波实验;
(6)8255 PA口控制PB口;
(7)8255控制交通灯;
(8)简单I/O扩展实验;
(9)A/D0809转换实验;
(10)D/A0832转换实验;
(11)8279键盘显示实验;
(12)通用打印机实验;(打印机选配)
(13)微型打印机打印字符、曲线、汉字实验;(打印机选配)
(14)I2C储存卡读写实验;
(15)继电器控制实验;
(16)步进电机控制;
(17)8253方波实验;
(18)小直流电机调速实验;
(19)1616 LED点阵显示实验;
(20)12864 LCD液晶显示实验;
(21)8250可编程异步通讯接口实验(自发自收);
(22)8251可编程通讯接口实验(与PC机);
(23)单片机RS232/485串行发送实验(双机通讯);
(24)单片机RS232/485串行接收实验(双机通讯);
(25)温度实验;
(26)压力实验;
(27)DS18B20单总线数字温度传感器实验;
(28)红外线遥控通信实验;
(29)PWM脉冲宽度调制实验;
(30)射极跟随器实验;
(31)电子音乐演奏实验。
(三)扩展卡实验(选配)☆
1、KZ-1扩展卡完成以下实验:
(32)MAX813看门狗实验
(33)74LS165并转串实验
(34)74LS164串转并实验
(35)查询式键盘实验
(36)74LS138译码实验
2、KZ-2扩展卡完成以下实验:
(37)LM331 V/F转换实验
(38)LM331 F/V转换实验
(39)光耦隔离模块实验
3、KZ -3扩展卡完成以下实验
(40)串行EEPROM 93C46读写实验
(41)I2C AT24C02读写实验
(42)TLC549串行A/D转换实验
(43)TLC5615 10位D/A串行转换实验
(44)PCF8563 I²C日历时钟实验
4、KZ -4扩展卡完成以下实验:
(45)ISD1730语音录放实验
5、CAN总线扩展卡:
(46)CAN总线通讯接口实验
6、TCP/IP以太网扩展卡
(47)以太网TCP/IP协议接口实验
7、USB2.0卡
(48)USB2.0通讯接口实验。
8、1032扩展卡:
Lattice公司:Lattice1032E芯片实验开发。
9、1K30扩展卡:
Atera公司:EP1K30TC144芯片实验开发。
10、C8051F020扩展卡 DPJ-EC5仿真器:
C8051F020是完全集成的混合信号系统级MCU芯片。下面列举了一些主要芯片资源:
(1)高速流水线结构的8051兼容的CIP-51内核(最大25MIPS);
(2)全速非侵入式的系统调试接口(片内);
(3)真正12位100ksps的8通道ADC,带PGA和模拟多路开关;8位500ksps的8通道ADC;
(4)两个12位DAC,可编程更新时序;
(5)64K字节可在系统编程的FLASH存储器;
(6)4352(4096+256)字节的片内RAM;
(7)可寻址64K字节地址空间的外部数据存储器接口;
(8)硬件实现的SPI,SMBus/IIC和两个UART串行接口;
(9)5个通用的16位定时器;
(10)具有5个捕捉/比较模块的可编程计数器/定时器阵列;
(11)片内看门狗定时器,2个比较器,VDD监视器和温度传感器;
(12)64个I/O端口;
(13)-40~85度工业级温度范围;
(14)2.7V~3.6V工作电压,100脚TQFP封装;
11、数控式创新实验平台扩展卡(实验对象通过软件仿真)
闭环控制
(1)机器人扫地雷实验;
(2)刀库捷径选择实验;
(3)四层电梯实验;
(4)四级传送带实验;
(5)邮件分拣实验;
(6)水塔水位控制实验;
(7)交流电机Y/△起动实验;
开环控制:
(8)交通信号灯实验;
(9)步进电机实验;
(10)舞台灯实验;
(11)LED显示实验;
(12)液体混合装置实验;
(13)八通道逻辑分析实验;
(14)温度压力实验;
(15)连线自检实验;