可进行置位、复位、取反、等于0转移、等于1转移且清“0”、逻辑运算以及与可寻址位之间传送数据的操作。MCS51系列单片机的I/O接口位输入、输出操作指令只能通过累加位C进行。本例中使用了I/O接口置位清“0”输出操作指令,而例3-1使用了I/O接口按口输出操作指令。......
2023-11-07
1.【例3-1】 8个灯依次循环闪烁源程序
2.源文件的建立与汇编
用原指令编写的程序(源文件),要在单片机上运行首先要进行汇编,汇编的目的是将汇编程序(用助记符写的程序)编译成能在单片机上运行的机器码程序。汇编分为手工汇编和计算机软件汇编。手工汇编已经在第二章中反复使用。本章原指令汇编语言使用的是计算机软件汇编。计算机汇编软件是集成在Keil C51 V6.12集成开发环境(IDE)内。Keil C51 V6.12 IDE的使用方法、步骤已在第一章中详细介绍过。读者可将例3-1中的程序在IDE软件上建立源文件并进行汇编,在确定无汇编错误、无警告后,生成后缀为.hex的文件,汇编过程即告完成。如果源程序有语法错误,应按信息栏指示的错误地点对源程序进行修改、汇编,重复以上步骤,直到无语法错误为止。汇编软件只能找出程序中的语法错误,对程序设计中的逻辑错误是无能为力的。Keil C51对程序中出现的语法错误有很强的查错能力,可指出错误的行号及错误内容。
3.下载源程序到目标机
STC-ISP V483.EXE是宏晶科技公司给用户提供的下载专用软件。将汇编后的源程序下载到单片机中的具体方法、步骤已在第一章中详细介绍过。完成单片机与计算机连接后,按照下载步骤逐步完成后,程序自动转入执行用户程序。
4.标点符号处理
编辑时标点符号是在英文界面下的,字母大小写均可。另存为后指令、注释要逐条变成绿色字体。有些指令(助记符)后仅有一个空格有效。汇编产生错误时要注意检查标点符号。
实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个发光二极管从P1.0位开始到P1.7位逐一循环闪烁。
程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。
说明:若是应用复制粘贴的方法将该程序内容粘贴在Keilμ Vision2 IDE软件中使用,则要将word文档下的分号改成英文输入状态下的分号。汇编时注释部分要变成绿色,指令变成蓝色。另外,还要注意语句中不能随便加空格,特别要区分字母“O”与数字“0”的书写。
实例中十六进制数据对应的二进制数据分别是:FFH—11111111B;FEH—11111110B;FDH—11111101B;FBH—11111011B;7FH—11110111B;EFH—11101111B;DFH—11011111B;BFH—10111111B;7FH———01111111B。
5.程序学习
(1)数据传送指令MOV
单片机内部的数据传送包括寄存器、累加器、RAM单元以及专业寄存器之间的数据相互传送,下面结合本款单片机提供的硬件将常用的几种重点介绍(寄存器、累加器、RAM单元、专业寄存器以及指令中符号意义请参看本章第六节相关内容)。
【例3-2】 将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。
当8位立即数“#0FEH”的高一位十六进制数是字母时要在前面加“0”。
【例3-3】 将8位立即数传送给芯片内部RAM用户区某个地址,再由RAM用户区某地址将数据传送到I/O接口的P1口,使P1.0灯亮
注意区别“#0FEH”与“40H”的不同,前面有“#”号的是立即数,无“#”号的是地址。另外,芯片内部RAM用户区地址为30~7FH。
【例3-4】 将8位立即数传送给通用寄存器Rn中的R1,再由R1送给累加器A,由累加器A将数据传送(输出)到I/O接口的P1口,使P1.0灯亮
通用寄存器Rn=R0~R7。通用寄存器Rn在芯片RAM内部共有四组。一般使用的是第一组,另外三组如何使用参见本章第六节。
通用寄存器Rn中的数据不能直接传送到I/O接口。
【例3-5】 将8位立即数传送到单片机内部RAM用户区某个地址(如3AH)中,再把该地址保存到间接寄存器R1。再将间接寄存器R1地址中的数据送给累加器A,由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮
间接寄存器Ri,i=0,1。间接寄存器内部存放的是地址。使用间接寄存器时先要把数据存放在地址中,在把地址存放在间接寄存器中。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。(www.chuimin.cn)
【例3-6】 将8位立即数传送到单片机内部RAM用户区地址40h,再将该地址中的数据传送到芯片内部RAM用户区的地址45H中,最后从45H中将数据传送到I/O接口的P1口,使P1.0灯亮
【例3-7】 将8位立即数传送到通用寄存器Rn中,再由通用寄存器Rn把数据传送到单片机内部RAM用户区地址45H中,然后从内部RAM用户区地址45H中将数据传送到I/O接口的P1口,使P1.0灯亮
【例3-8】 将8位立即数传送到单片机内部RAM用户区某地址保存,再将此数据传送到通用寄存器Rn,再由通用寄存器Rn传送到累加器A,再从累加器A传送到I/O接口的P1口,使P1.0灯亮
通用寄存器Rn中的数据不能直接传送到I/O接口。
【例3-9】 将8位立即数通过累加器与单片机内部RAM用户区地址间的相互传送,最后传送到I/O接口使P1.0灯亮
【例3-10】 将8位立即数通过累加器A与单片机内部RAM用户区地址间的相互传送,最后传送到I/O接口使P1.0灯亮
【例3-11】 将8位立即数在通用寄存器Rn与累加器A之间相互传送,并使P1.0灯亮
【例3-12】 将8位立即数在通用寄存器Rn与累加器A之间相互传送,并使P1.0灯亮
实例程序运行效果:以上实例在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的P1.0位发光二极管点亮。
程序点评:尽管上述的实例都用数据传送指令MOV将同一立即数传送到P1口,但方法各不相同。
(2)子程序调用LCALL与返回RET指令
子程序结构是一种重要的程序结构。在程序中常将一段反复使用的程序设计成子程序结构。通过子程序调用来使用子程序,使用完毕后再返回主程序。子程序调用LCALL与返回RET指令是一对命令。使用时调用指令LCALL后要写出子程序段的标号,而子程序的最后要返回RET指令。
(3)伪指令ORG
表明汇编程序的起始地址。在例3-1中共有两段程序,主程序从0030H地址开始,子程序从0200H地址开始。
(4)伪指令END
伪指令END是汇编语言源程序结束标志。
(5)程序标号“START”和“T05S”
在例3-1中一共有两段程序,主程序从程序标号“START”开始,子程序从标号“T05S”开始。
6.程序存储器数据传送指令组
程序存储器包含内外两部分存储器。对于程序存储器只能读不能写,从程序存储器读出的数据只能向累加器A传送。其主要作用是用于访问程序存储器中的数据表格,查表。
【例3-13】 变址寻址转移指令
其他程序、指令将在后续章节中讲述。
有关零起点学习单片机多语言编程的文章
可进行置位、复位、取反、等于0转移、等于1转移且清“0”、逻辑运算以及与可寻址位之间传送数据的操作。MCS51系列单片机的I/O接口位输入、输出操作指令只能通过累加位C进行。本例中使用了I/O接口置位清“0”输出操作指令,而例3-1使用了I/O接口按口输出操作指令。......
2023-11-07
1)把I/O接口的P2口中的输入数据保存在累加器A,再将累加器A中保存的输入数据输出到I/O接口的P1口。从P1口验证P2口输入的数据源程序(一)实验机的小键盘上的+1键、-1键、高一位操作键、地址键和写入键一端分别接在P2口的P2.0、P2.1、P2.2、P2.3、P2.4上,另一端接地。每次复位后可以重新输入。安装在P1口的发光二极管亮的位与接在P2口按下的键相对应。程序点评:P2口输入的数据通过芯片内部RAM用户区某地址输出到P1口。......
2023-11-07
调试的目的是发现程序的错误。主要是观察工作寄存器、片内RAM单元、SFR及转移的地址位置是否正确,软仿真调试窗口如图3-8所示。2)单击调试菜单上的“外围设备→I/O→Port→Port 1”,I/O接口图标显示P1口状态。经过指令“CPL P1.0”,I/O接口图标显示P1口状态可看到P1.0=0。图3-8软仿真调试窗口4)在调试菜单中单击“单步”按钮,再一下下按动键盘上的“F10”键,程序则一条条执行。......
2023-11-07
逐一依次循环闪烁:“逐一”表示某时刻仅能有一个发光二极管亮;“依次”表示I/O接口各位的发光二极管按顺序亮;“循环”表示I/O接口各位的灯逐一依次无固定次数的不停闪烁;“闪烁”表示I/O接口各位的发光二极管有亮有灭。方案说明:图2-1中深色的符号表示发光二极管亮,浅色的符号表示发光二极管不亮。3)程序设计(二)。程序点评:在关闭上一对发光二极管1s后,开启下一对,关闭与开启之间有1s的时间间隔。I/O接口位N=00~07。......
2023-11-07
所谓I/O接口也就是输入/输出接口。根据信号传输方式的不同,I/O接口一般可分为并行接口和串行接口两种方式。通常所说的并行接口一般称为Centronics接口,也称为IEEE1284标准。当传输距离较远、位数又多时,并行接口会导致通信线路复杂且成本提高。图5-13所示为各类并行接口及并行电缆,传输的是数字量和开关量。串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS-485等。......
2023-06-23
I/O接口是一组电子电路,它是CPU和I/O设备之间交换信息的媒介和桥梁,负责实现CPU通过系统总线把I/O电路和外围设备联系在一起。1)I/O接口的功能由于计算机的外围设备品种繁多,特性各异,每种设备都有各自的接口。PC中常见的接口标准有IDE接口、USB接口、显示器输出接口等,图2.23显示的是机箱背面的I/O接口。图2.23 PC机箱背面的I/O接口IDE接口和SATA接口IDE接口主要用于连接硬盘、光驱和软驱,采用并行双向传送方式,体积小,数据传输速率快。......
2023-10-22
要想彻底理解单片机P0口加上拉电阻的问题,必须要从P0端口的结构及工作原理入手。51系列单片机有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,共有32根端口线。这是针对最早的MCS-8051系列来说的,现在国内最新的STC公司生产的12系列、15系列的单片机对此有新的定义,读者可自行查阅相关资料进行了解。......
2023-11-17
if-else条件分支语句是选择结构的一种形式,是最常用的语句之一。这意味着如果if后面的表达式成立(不为0),则执行if下面的语句,否则直接向下执行。......
2023-11-07
相关推荐