求单片机pwm程序程序

菜鸟求程序|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
我现在想做一个单片机多路开关,我的想法是用两片单片机实现,一片单片机采集开关量输入转成BCD码输出,另一片将BCD码转成开关量输出,开关功能就像27个独立的自锁开关一样,按一就开,再按一次就关,现在需要到二条程序,一条是27转5,一条是5转27,奈于自已太菜没法编,所以向大家求救,先谢了硬件:两片89Cxx,一片用于开关信号采集,一片用于开关控制软件:求赐中输入信号:四块8路触摸开关组成27路输入信号,低电平有效输出信号:输出27路H/L电平既可控制目标:驱动27个90系列的三极管信号传输距离:50m以内信号传输方式:不限
赞助商链接
采集开关量,转换BCD码,再转换为开关量。。。不能矩阵键盘,然后直接控制开关的开启/闭合么?同时显示当前操作键号。
赞助商链接
不需要显示操作键号,只是控制继电装开启闭合而已,开关量输入是8位并行触摸开关输出信号
一个单片机就够了啊!没必要2个
我没有串行触摸开关,没办法
真搞不懂你要干啥,有了触摸开关了用触摸开关直接控制不就行了
因为触摸开关的输出信号不是持续的,我要的是输出信号类似那种点动但带自锁功能的开关,就是输入每加一次信号输出信号状态就翻转一次
做个单键开关,一个触摸开关一个,没必要单片机,
但有十几个输出端是控制三极管的,头很痛
要求没有搞懂。。。
要求只是要27路点动开关输入信号转换成27路自锁信号,每路互不影响,每路输入信号每动作一次对应的输出端状态就翻一次
看看你的硬件。
两者功能一样。用单片机你还得把所有的连都接到单片机,再从单片机接出去,光这就够你头疼的
现在电路没组建,我准备用2片89c51
你的意思是两地相隔较远.然后需要用串行通信来减少线缆.输入按键扫描成键值.然后发送这个键值..那边再解码就好了.
最好的办法就是直接用双稳态的触摸开关,摸一次翻转一次
我的设想的确是这样
如果不是太远的话.直接用两条线连接就好了..一条信号 一条地.如果是单向的好办点.如果是双向的.还要考虑到同时按..两边都要同时有接收和发射程序.
楼主是要27路点动开关输入信号转换成27路自锁信号吧直接一片89c51接27路输入&&扩展IO口就行了 74hc595 573都可以~
是单向的,一发一收
:是单向的,一发一收 ( 18:56) 可以借鉴 串口通信 那一章....比串口通信简单一点.
我就在做类似的东西。使用的是串口通讯,可实现双向通讯,如果距离比较远或者为抗干扰,可使用rs485通讯前端使用矩阵键盘,89c51有8*3=24个I/O口,除去串口通讯的两个口,还可使用22个口,因而需要扩展I/O口 前面有人说得对,可使用74HC573、74hc595 等锁存器或者串行移位寄存器。
不过,需要注意的是。控制端的单片机,在I.O口初始化前的状态很重要,89c51可能导致继电器在刚上电时误动作。
我看了,奈于基础太低,还是搞不太明
那就用单片机串口通信,2条线就够了
楼主要使用的开关是相互独立的电子触摸开关信号,没法用矩阵扫描
主机里的用串行通信是可认,但到分路开关太远我怕受干扰所以想用BCD码高低电平直接控制免受干扰,485应该也行,但苦于不会写程序啊
百米以内没问题,再长可以用485通信,可以上千米距离。
兄弟能写个程序给我参考一下吗,先谢了
给你个思路参考:每一个开关用一位数据代表,把27个开关分成4组,每组8个,4组实际上可以32位,依次送到串口发送,接收后根据发送编码的规则解码就行了
按我现在的能力可能只会将每一个开关定义成某个BCD码输出到下一级进行解码
发送很简单,连编码都不需要,直接将一个口(这里是指整个口,8位)的状态做为一个数据发送,4个口依次发送,P3口由于要用串口,数据要处理一下,为了识别数据的顺序,可以先发送一个字符做引导,后面是数据。接收端收到引导字符就开始保存数据,再根据数据做相应的开关处理。
说真的,以我现在的能力对上述方案如果没有参考彻底晕菜了,
最简单的办法就是用锁存输出的开关,按一次状态改变一次。
用锁存输出的开关用导致布线复麻烦,如果不行的话那我自己试写条最笨的程序来控制吧,我在此再多谢大家的热心帮忙,谢谢啦
学习下串口通信吧!这是最简单的办法,就算用BCD码,27个开关,每个开关2种状态,这样就有54种情况,转换成BCD码要5位了,得6跟线。用串口的话2根线就够了,如用485得三根。
楼主想实现的控制功能非常简单,只是工程概况没有讲清楚。这27个控制目标是具体是什么?广告牌?路灯?信号等?电机?电磁阀?集中控制室与控制目标距离多少?控制目标运行状态是否需要监控?否则泛泛的讨论没有多少实际意义。
现在没办法了,多用一条线少用一个开关没事的,串行通信等有时间再恶习吧,都恨我以前懒,现在真知错了
27个开关控制目标是一些三极管和继电器,只要求io口输出高低开关电平信号既可,距离50米左右
串行通信也很简单,设定好波特率、串口的工作方式把数据送到SBUF发送就行了,复杂一点的是根据开关状态对输出控制,为了可靠,开关要去抖动,持续按下一定时间才有效,两次按下之间也要有一个时间间隔以防止误动作。
前面的像天书,后面去抖还能理解,有时间得一一恶习了
:27个开关控制目标是一些三极管和继电器,只要求io口输出高低开关电平信号既可,距离50米左右 ( 09:32) 成品8位触摸开关可以设置多种输出模式,包括自锁模式,其电路本身就是单片机控制电路,按楼主设计要求根本不需要做二次开发,直接应用。
谢谢解答,你能提供触摸芯片形号吗,但是还有一个问题,那就是距离远且分路多的话将会导致用线过多,所以信号传输线能少就少吧,两片单片机是一发一收单向工作的
:谢谢解答,你能提供触摸芯片形号吗,但是还有一个问题,那就是距离远且分路多的话将会导致用线过多,所以信号传输线能少就少吧,两片单片机是一发一收单向工作的 ( 11:27) 8路触摸开关芯片常见的有SJT5208、RH6010、ADPT008、LH828A等,8路触摸开关成品淘宝一大堆,无线遥控的要贵很多。
成品开关成本太高,伤不起啊
根据楼主目前的能力,估计最简单的办法只能是将触摸开关的8位并行输出信号用单片机处理一下,然后驱动4片595一类的芯片,然后控制三极管或者继电器,最后拉线。
:我就在做类似的东西。使用的是串口通讯,可实现双向通讯,如果距离比较远或者为抗干扰,可使用rs485通讯前端使用矩阵键盘,89c51有8*3=24个I/O口,除去串口通讯的两个口,还可使用22个口,因而需要扩展I/O口 前面有人说得对,可使用74HC573、74hc595 等锁存器或者串行移位寄存器。 89c51 io口P0 P1 P2 P3 共32个io口好吧其实还可以进行io口的输入扩展 好像叫做编码器吧~没用过 一般一个矩阵键盘按键就够用了 再不够用的就直接一个IO口 用红外遥控 多少个按键都行
串口用到P3的两个IO。
:89c51 io口P0 P1 P2 P3 共32个io口好吧[表情]其实还可以进行io口的输入扩展 好像叫做编码器吧~没用过 一般一个矩阵键盘按键就够用了 再不够用的就直接一个IO口 用红外遥控 多少个按键都行[表情]&( 13:01)&我的错&&计算错了&&的确&&如果引脚都用作普通IO口,除了串口仍然有8*4-2=30个口
查看完整版本: [--
Powered by
Time 0.083016 second(s),query:5 Gzip enabled(大浪淘沙)
(大浪淘沙)
(大浪淘沙)
第三方登录:求解释AVR单片机程序? - 知乎2被浏览119分享邀请回答0添加评论分享收藏感谢收起

我要回帖

更多关于 单片机程序 的文章

 

随机推荐