首页 理论教育零起点学习单片机多语言编程:I/O接口位输出操作

零起点学习单片机多语言编程:I/O接口位输出操作

【摘要】:可进行置位、复位、取反、等于0转移、等于1转移且清“0”、逻辑运算以及与可寻址位之间传送数据的操作。MCS51系列单片机的I/O接口位输入、输出操作指令只能通过累加位C进行。本例中使用了I/O接口置位清“0”输出操作指令,而例3-1使用了I/O接口按口输出操作指令。

单片机具有较强的位处理功能。位处理功能以程序状态字寄存器PSW中的进位标志位C为累加位。可进行置位、复位、取反、等于0转移、等于1转移且清“0”、逻辑运算以及与可寻址位之间传送数据的操作。

MCS51系列单片机的I/O接口位输入、输出操作指令只能通过累加位C进行。例3-16是应用了标志位C,即累加位C置位(置“1”)和复位(清“0”)操作。

1.I/O接口位置位与清“0”操作指令

【例3-16】 8个灯依次循环闪烁源程序

实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个发光二极管从P1.0位开始到P1.7位逐一循环闪烁。

程序点评:尽管本例的运行效果与本章例3-1的运行效果一样,但所用的指令完全不同。本例中使用了I/O接口置位清“0”输出操作指令,而例3-1使用了I/O接口按口输出操作指令。

2.通过累加位C的I/O接口位输出操作

MCS51系列单片机I/O接口位输出操作指令只能通过累加位C进行。

【例3-17】 8个灯依次亮灭源程序(www.chuimin.cn)

实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个发光二极管从P1.0位开始到P1.7位逐一亮,再逐一灭并重复。

程序点评:程序中先对累加位C进行清“0”操作,并将C=0的状态逐一输出到P1口的每一位,再将累加位C进行置1操作,再将C=1的状态逐一输出到P1口的每一位。

3.累加位c与可寻址位之间传送数据的操作。

单片机内部RAM设有位寻址区,位地址区域为00H~2FH。位寻址在使用中有两种表示方法,一种是以位地址的形式,如00H、24H、2FH等,第二种是以存储单元加位的形式,如:20H.0、24H.5、2FH.7等(以上两种实例表示的是同一位地址)。为了避免位寻址区和单元寻址的混淆,本书使用了第二种表示方法。

例3-18是练习、熟悉、使用累加位C与可寻址位之间传送数据的操作。由于MCS51系列单片机I/O接口位输出操作指令只能通过累加位C进行,所以将“0”和“1”两种状态分别保存在位地址“21H.7”和“20H.7”中,再从位地址中传送给累加位C并输出到I/O接口P1的各位。

【例3-18】 8个灯依次循环闪烁源程序

实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个发光二极管从P1.0位开始到P1.7位逐一循环闪烁。

程序点评:尽管本例的运行效果与例3-1和例3-16运行效果一样,但所用的指令完全不同。本例中使用了累加位C与可寻址位之间传送数据的操作指令。