7.用I1.0控制接在QB0上的8个彩灯是否移位,每1s移1位。用IB0设置彩灯的初始值,在I1.1的上升沿将IB0的值传送到QB0,设计出梯形图程序。
8.用实时时钟指令设计控制路灯的程序,20:00时开灯,06:00时关灯。
LD TODR LDB>= OB< =
SM0.0 VB0
// 读实时钟,小时值在VB3
// 20点~0点(日期、时间值用BCD码表示) // 0点~6点 // 点亮路灯
VB3, 16#20 VB3, 16#06 Q0.0
9.用实时时钟指令设计控制路灯的程序,在5月1日~10月31日的20:00开灯,06:00关灯;在11月1日~下一年4月30号的19:00开灯,7:00关灯。
LD
SM0.0
TODR
VB0 // 读实时钟,小时值在VB3,月日在VW1
LDW>= VW1, 16#1031 OW< VW1, 16#0501 = M0.0
LDB>= VB3, 16#20 OB< VB3, 16#06 AN M0.0 OB< VB3, 16#07 A M0.0 OLD = Q0.1
//冬季
//夏季
// 19点~7点开灯
LDB>= VB3, 16#19
// 20点~6点开灯
//冬季ON
10.半径(<10000的整数)在VW10中,取圆周率为3.1416。编写程序,用浮点数运算指令计算圆周长,运算结果四舍五入转换为整数后,存放在VW20中。
LD ITD DTR *R MOVW
SM0.0 VW10, AC1 AC1, AC1 3.1416, AC1 AC1, VW20
// 整数转换为双整数 // 双整数转换为实数 // 乘以3.1416
// 乘积四舍五入转换为双整数 // 低16位送VW20
ROUND AC1, AC1
第11题 编写语句表程序,实现运算VW2–VW4 = VW6。
LD I0.2 MOVW VW2, VW6 -I VW4, VW6
12.AIW2中A/D转换得到的数值0~32000正比于温度值0~1200?C。在I0.0的上升沿,将AIW2的值转换为对应的温度值存放在VW10中,设计出梯形图程序。 公式: T = 1200*N/32000
LD I0.3 MOVW AIW2, AC0 AENO
MUL 1200, AC0 AENO
/D 27648, AC0 AENO
MOVW AC0, VW10
13.以0.1度为单位的整数格式的角度值在VW0中,在I0.0的上升沿,求出该角度的正弦值,运算结果转换为以10?6为单位的双整数,存放在VD2中,设计出程序。
LD I0.0
EU LPS
ITD VW0, AC0 AENO
DTR AC0, AC0 AENO
/R 10.0, AC0 LRD
*R 0.01745329, AC0 AENO
SIN AC0, AC0 LPP
*R 1000000.0, AC0 AENO
ROUND AC0, VD2
16.编写程序,用字节逻辑运算指令,将VB0的高4位置为2#1001,低4位不变。 LD V0.4 MOVB VB0, LB0 AENO
ANDB 16#0F, LB0 AENO
MOVB LB0, VB0 ORB 16#90, VB0
17.编写程序,前后两个扫描周期VW4的值不变将M0.2复位,反之将M0.2置位。 LD I0.4 MOVW VW4, AC0 AENO
XORW VW6, AC0 AENO LPS
AW= AC0, 0 R M0.2, 1 LRD
AW<> AC0, 0
S M0.2, 1 LPP
MOVW VW4, VW6
18.设计循环程序,求VD20开始连续存放的5个浮点数的平均值。
19.在I0.0的上升沿,用循环程序求VW100~VW108的累加和。为了防止溢出,将被累加的整数转换为双整数后再累加。用VD10保存累加和。
20.编写程序,求出VW10~VW28中最大的数,存放在VW30中。
21.用子程序调用编写图5-3中两条运输带的控制程序,分别设置自动程序和手动程序,用I0.4作自动/手动切换开关。手动时用I0.0和I0.1对应的按钮分别点动控制两条运输带。
主程序
自动程序
手动程序
22.设计程序,用子程序求圆的面积,输入参数为直径(小于32767的整数),输出量为圆的面积(双整数)。在I0.0的上升沿调用该子程序,直径为10000mm,运算结果存放在VD10中。