单片机设计与开发
来源:互联网 发布:内核源码的配置文件 编辑:程序博客网 时间:2024/05/21 10:31
一、流水灯
图1 LED部分电路原理图分析
根据上图分析,要控制LED灯,首先我们需要了解74HC573锁存器,然后控制P0口的输出。
根据74HC573的真值表,当LE为高时,锁存器左边输入什么右边就输出什么,当LE为低时,锁存器输出的是上一次的值,即实现了锁存。如下图:
图2 74HC573真值表
要实现流水灯则必须改变74HC573的输出,则必须将Y4C置为高,给P0赋值后再将Y4C置为低进行锁存。我们在原理图中找到Y4C(如图3),图中WR与GND用跳帽连接起来,即WR为低电平0。
图3 74HC138与74HC02
如图所示,Y4C由Y4和WR共同控制,74HC02是一个4路2输入或非门功能,WR为低电平,要使Y4C为高,则Y4必须为低电平,而Y4又由74HC138译码器控制。74HC138译码器的真值表(如图4),要使得Y4为0,则三个输入端应该为100,即P2^7=1,P2^6=0,P2^5=0。又只需要操作P2口的这三位,不需要配置其他的五位,所以P2端口应该配置为:P2 = ((P2&0x1f)|0x80);
编写代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
看到这里我们可能会感叹点个LED灯都这么麻烦,但是只要你把这个思路理清了,之后的蜂鸣器、继电器、数码管都是这个套路,因为他们共用的P0和P2端口,且都用到了上图3中的锁存器、138译码器和或非门。这就实现了一个8位的I/O口进行复用的分时来控制多个设备,这种设计是比较好的。
二、蜂鸣器和继电器
查看原理图找到继电器和蜂鸣器所在,然后可以看到(如图5)继电器和蜂鸣器的都是通过ULN2003来驱动的,ULN2003内部集成了7个达林顿管,可以有7路输入输出,这里不仅驱动了继电器和蜂鸣器,还有直流电机与步进电机。同样,我们只需要控制Y5C和P0口,而Y5C的控制则与Y4C的控制大同小异,这里就不详细讲解了。我们可以得到控制Y5C的正确配置P2端口的代码为:P2 = ((P2&0x1f)|0xA0);
我们再看继电器和蜂鸣器的电路,当ULN2003输出低电平时继电器和蜂鸣器才打开,而ULN2003每一路输入输出都加有一个非门,所以ULN2003的输入为高电平时蜂鸣器继电器才打开,为低电平时关闭。继电器对应的位为P0^4,蜂鸣器对应的位为P0^6,我们将P0口的这两位赋为1时,即P0=0x50时,两个设备均打开。
图5 蜂鸣器与继电器电路原理图
代码部分:
- 单片机设计与开发
- 蓝桥杯单片机设计与开发之数码管
- 蓝桥杯单片机设计与开发笔记(二)
- 蓝桥杯单片机设计与开发笔记(一)
- 蓝桥杯单片机设计与开发笔记(三)
- 蓝桥杯单片机设计与开发笔记(四)
- 蓝桥杯单片机设计与开发之蜂鸣器继电器
- 蓝桥杯单片机设计与开发笔记之LED流水灯模块
- PCB设计,单片机开发,制样代生产
- 单片机系统设计与C51编程实践
- 单片机驱动蜂鸣器原理与设计
- 单片机系统设计与C51编程实践
- 单片机与LED,开关,的接口设计
- 51单片机开发中的问题与技巧
- GPRS模块与单片机开发的注意事项
- 单片机编程语言与开发环境
- 单片机设计
- 单片机开发
- 355. Design Twitter
- Jquery和JS获取ul中li标签
- 解答“压缩图片接口能压缩网络图片吗”
- Hibernate框架学习(第三讲)---Hibernate注解以及ID生成策略
- 类/指针/函数/this
- 单片机设计与开发
- 扫码功能代码
- 1、Web Services 简介
- redhat在vm扩展磁盘容量
- Android开发百度地图详细操作
- 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
- Android四大组件
- 连接池中的maxIdle,MaxActive,maxWait参数
- iOS -- Widget 开发之 Today Extension