dvbbs
注册需知 请填写完整,否则有可能被认为是群发恶意注册被删. 欢迎您成为我们的新会员,新朋友 收藏本页
联系我们
论坛帮助
dvbbs

<我爱电子>论坛<我爱电子>网 欢迎您!动手制作的情趣 → [实例]用ST08系统做18路LED彩灯程序控制


  共有9634人关注过本帖树形打印

主题:[实例]用ST08系统做18路LED彩灯程序控制

帅哥哟,离线,有人找我吗?
plc388
  1楼 个性首页 | 博客 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 plc388
等级:管理员 贴子:145 积分:4557 威望:100 精华:0 注册:2008/3/29 22:34:43
[实例]用ST08系统做18路LED彩灯程序控制  发贴心情 Post By:2008/12/23 17:37:23

高工程师接到一项LED彩灯亮化控制项目.时间很紧.第二天就要上墙按装.

 

工程要求如下: 

 

1. 工程项目中有6个灯组.每个灯组中各有红.绿.蓝.三路LED灯串. 总计是:6*3=18 路

 

2.亮化的程序流程: (下面我们用0表示该组的灯亮,用1表示该组的灯灭)

               红绿蓝     红绿蓝     红绿蓝       红绿蓝         红绿蓝            红绿蓝 

               1   2  3      4  5  6     7  8  9     10  11  12    13  14  15     16  17  18  (路)

 

   状态1:    0  1  1     0  0  1     1  0  1       1    0    0     1    1    0       0    1    0

 

         2:   持续亮1秒

 

         3.    0  0  1     1  0  1     1  0  0       1    1    0      0   1    0        0   1    1

 

         4.    持续亮1秒

 

         5.    ...(中间程序略)

 

         .....

 

         12.  0  1  0     0  1  1      0  0   1       1    0   1       1   0    0        1   1    0

 

         13.  持续亮1秒

 

         14.  程序重新开始.无限循环

[此贴子已经被作者于2008-12-23 23:45:53编辑过]

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
plc388
  2楼 个性首页 | 博客 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 plc388
等级:管理员 贴子:145 积分:4557 威望:100 精华:0 注册:2008/3/29 22:34:43
  发贴心情 Post By:2008/12/23 18:04:20

按上面的要求:我们选用了 ST08可编程控制器成品电路板 

 

这是用了有32个对外接口的电路板. 我们只要用上18个输出口.这是足够了.

这电路板上带有全部接口的外接插脚.连接外接电路是非常方便的.

另外此板可直接使用ST-0806系统软件  自带<数字简码>指令编程.用它是很方便的.

 

 

[此贴子已经被作者于2010-12-23 23:12:46编辑过]

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
plc388
  3楼 个性首页 | 博客 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 plc388
等级:管理员 贴子:145 积分:4557 威望:100 精华:0 注册:2008/3/29 22:34:43
  发贴心情 Post By:2008/12/23 22:37:21

程序编程方法和技巧说明:

 

1. 这个程序要求总计控制 18个输出口. 使用ST-0806系统软件 指令表 中的组合输出指令56N 57N 58N 是比较好的.

只要用2个数码就能控制8个输出口的输出状态

 

我们把这18个要控制的口分成3组. 每一组用6个输出口. 由于56N 57N 58N每次使用时.控制的都是8位.那么我们在使用时主要用后面的6位. 前2位让它仍保持原高电平设为1

 

2. 关于持续亮1秒,在指令表中有现成的延时一秒的指令  用一条76就可以了.

 

3.由于这个程序要求,周而复始循环运行, 那么只要在程序运行的最后.用上 指令00  让程序接着重新开始就可以了.

 

实际编好的程序如下:

 

地址:   00  01   02   03   04   05   06   07   08   09

指令:   56  217 57   236  58  242  76   56  205  57

地址:   10  11   12   13   14   15   16   17   18   19

指令:   230 58   211 76   56   236 57   242 58   217

地址:   20  21   22   23   24   25   26   27   28   29

指令:   76  56   230  57   211 58   205  76  56   242

地址:   30  31   32   33   34   35   36   37   38   39

指令:   57  217  58  236  76   56   211  57  205  58

地址:   40  41   42   43   44   45   46    47   48   49

指令:   230 76  00   **   **    **   **    **   **   **

 

这程序.只要数入42个两位数的<数字简码>程序就设计完成了.

         

[此贴子已经被作者于2008-12-23 23:51:24编辑过]

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
plc388
  4楼 个性首页 | 博客 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 plc388
等级:管理员 贴子:145 积分:4557 威望:100 精华:0 注册:2008/3/29 22:34:43
  发贴心情 Post By:2008/12/23 23:44:54

关于56N 57N 58N (59N)指令中参数N的计算.

 

这里的56表示是控制单片机的P0接口的; 57 58 59 分别表示控制单片机的P1 P2 P3接口的.

 

这里的指令参数N 它是个十进制数.数值范围 00-255 共计256个数.

 

这个十进制参数正好能代表8位输出口的全部数出状态.

 

如十进制的00     用二进制数表示 就是 00000000 这正好能表示这8个输出口的输出状态  LED 发光管全亮 

如十进制的01     用二进制数表示 就是 00000001   只有末位的LED 发光管不亮 

如十进制的03     用二进制数表示 就是 00000011   有末位的2位LED 发光管不亮

......

 

在实际应用中,我们常会先确定输出状态 ,得到的是二进制数,然后要将它换算出十进制参数.

如 01010010 这样的二进制表示接口状态的数怎样才能转换成十进制的程序参数呢!

 

有一个简单的方法, 我们可先把二进制数的各位的权标出.

 

如上面这个二进制数     0     1     0     1   0   0   1    0

它们的各位代表的权 128  64   32   16  8   4   2    1

 

那么只要把上面那个二进制数是1状态的权加在一起.就是它的十进制参数了.

这个示例就这样加            64+16+2=82

 

这样在使用56N 57N 58N (59N)指令中只要用82替代那个N,

那么相应的输出口的状态就是 0     1     0     1   0   0   1    0   (有5路输出是低电平.LED灯亮) 

 

 

[此贴子已经被作者于2008-12-24 9:38:12编辑过]

支持(0中立(0反对(0回到顶部