程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
单片机具有较强的位处理功能。位处理功能以程序状态字寄存器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与可寻址位之间传送数据的操作指令。
有关零起点学习单片机多语言编程的文章
程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
逐一依次循环闪烁:“逐一”表示某时刻仅能有一个发光二极管亮;“依次”表示I/O接口各位的发光二极管按顺序亮;“循环”表示I/O接口各位的灯逐一依次无固定次数的不停闪烁;“闪烁”表示I/O接口各位的发光二极管有亮有灭。方案说明:图2-1中深色的符号表示发光二极管亮,浅色的符号表示发光二极管不亮。3)程序设计(二)。程序点评:在关闭上一对发光二极管1s后,开启下一对,关闭与开启之间有1s的时间间隔。I/O接口位N=00~07。......
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
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
2023-11-07
位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
为此,我们采用逐次逼近,边焊边试的操作方法,保证读者能100%按质量完成整机装焊。用逻辑笔测试U3-74HC164的引脚13、12、11、10、6、5、4、3的状态,应为11000110。若不能显示以上状态,应立即断开电源开关K1,逐项检查。如果直接进行下一步会相当危险,可能导致整板报废。2)插放芯片U2、U3、U4、U5及数码管。达不到要求不能进行下一步。按第3步3)操作,应正常显示。......
2023-11-07
所谓I/O接口也就是输入/输出接口。根据信号传输方式的不同,I/O接口一般可分为并行接口和串行接口两种方式。通常所说的并行接口一般称为Centronics接口,也称为IEEE1284标准。当传输距离较远、位数又多时,并行接口会导致通信线路复杂且成本提高。图5-13所示为各类并行接口及并行电缆,传输的是数字量和开关量。串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS-485等。......
2023-06-23
相关推荐