电路问题,光耦暗电路触发了三极管,量一量IO输出电位就清楚了 |
楼主的驱动电路是体育老师教的吧?光耦需要5ma电流驱动,楼主的电流=(5V-1.8V)/2K=1.6ma,偏小,右边LED驱动明显有错误,是你的电路有问题。IO口只要不是设置成高阻模式都可以驱动LED,单片机IO默认是双向,根本不需要设置IO口,直接用就可以,你的软件没有问题,LED电路有问题。 |
xuyaqi 发表于 2021-12-7 17:13 只是检测LED是否点亮,光耦完全可以不用,将光耦直接用一只LED代替就可以了。从原理图可以看出,光耦初级红外发射管点亮次级LED发光。我们完全可以把光耦次级红外发射管直接用LED代替。 |
wulin 发表于 2021-12-7 16:01 D4 比 STC8 其他型号 新增了很多寄存器,IO口结构有改变,头文件不一样。 ![]() |
D4这颗我P41我怎么设置。。只要=0一次,就回不到5V(只能回到3.多V),设置推挽模式也一样(像楼主的P75我改为P41) |
#include "reg51.h"建议修改成#include "STC8.h"使用该芯片的头文件,找不到就去STC-ISP软件添加到你的KEIL里面 |
北漂的二极管 发表于 2021-12-7 16:39 不要轻易怀疑芯片有问题,功能不正常99.9%是使用者的问题。加电灯就亮是你的硬件电路设计缺陷所致。 |
你接线应按5楼给的改一下。 |
北漂的二极管 发表于 2021-12-7 16:39 stc8是有内置上拉电阻的,你最好了解一下,看你include的reg52,我猜你连stc的寄存器列表都没看过吧?不然说啥都会用stc8的头文件了。那么多寄存器全自己定义,不死人么? |
wulin 发表于 2021-12-7 16:01 不知道是不是厂家设置的有问题,我P0和P1口全部设置成高阻态了,P00,P01,P02,P03,P16,P17这些IO口控制的LED还是能点亮,并且是加电初始状态就亮,按理说高阻态不能控制外部输出的 |
可以用STC8头文件,端口初始化全部准双向。硬件按图改一下。![]() ![]() ![]()
|
用到哪个设置哪个 |
对每个IO单独设置 |
D4芯片开始必须对各个IO口设置,见D4说明书。 |