看到好的东东,分享一下,挺不错的,可以学到很多知识…… 以 下 均 为 转 载
之前有朋友问,STC15F104能用来做什么?这么少的IO!但是,我就是喜欢这样的单片机,可以把作品做的很小巧,之前玩的ATtiny45也是8个引脚,但是它太贵了。
STC15F104E + DS18B20 + DS1307 + 1602 + 红外接收头
没错,6个IO就够了!
我承认我很无耻,驱动1602的代码移植了cowboy大侠的方案。尽管是这样,还是折腾了我大半天,由于51默认弱上拉导致电流不足,改成推挽输出搞定。
说遗憾,是因为红外接收没能搞定。时钟,当然是需要调时间的了,限于条件,我选择用遥控器来改时间。红外解码的代码原先在AT89C2051上用,没有问题,但是昨天我写了整整一天的程序仍未调通,估计是延时的问题,用STC延时就是个大麻烦,我又没有示波器,哎~~~
可能大多数人用的是DS1302,因为它出现在书籍中的概率最大。但是IO有限,我们用DS1307,I2C接口。本来我想从网上直接抄一段来用,但是发现例子不多,尤其是用IO模拟时序的,找了两个,一个超级复杂,一个超级乱,想了想,还是自己看手册,按照时序一句一句地敲了上去。要知道,在此之前我没有操作过I2C器件~~~
有一个电波钟模块,但是没有资料,网上的资料少得可怜,本坛上的两位朋友给出的代码一个看不懂,因为完全没有注释,书写风格很是另类~~~另一个用的是PIC单片机,还用到了捕获模块,我这里也没法用。过两天我再试试我自己想的解码方案。
任意2个IO直接驱动LCD1602,并且不需外加芯片。
说明一下,连接LCD1602的四根引线,除了红黑两根电源,两根黄色的就是信号线,其中一根传送RS和E信号,另一根传送D4~D7信号,即用四位总线驱动。
挑战一下极限,再减少一根线,仍然好使,不过要另加一个电容和一个二极管。
无线馈电及传送数据。
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4301955&bbs_page_no=1&search_mode=4&search_text=BXAK&bbs_id=9999 另:想问问大家,下面这个电路原理谁知道,1个IO 驱动74H595 来控制 3位数码管,也是上面链接的帖子中看到的 
当时为了方便没在电源上加载数据,而单独引了一根数据线,所以看到是三根引线(VCC,GND,DAT),实际上完全可以把数据加载在电源上。
发个显示模块的底面图,就可以看到利用一片 74HC595 解调 OneWire 通讯,并驱动三位数码管的情况。
[ 此帖被bxak在2012-02-08 23:15重新编辑 ]