找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

有没有用STC8A8K64D4这个单片机的,P0口和P1口状态怎么设置?

查看数: 4348 | 评论数: 15 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-12-7 11:03

正文摘要:

图上画的是P75,实际电路P0,P1,P7口都是这样的电路,就这样的简单控制LED都不能正常,P7口能正常控制LED亮灭,P0和P1口部分IO口都不能控制LED灭灯,部分LED常亮,常亮的LED单个IO口测试时也是常亮,是设置出问题了吗 ...

回复

ID:992336 发表于 2021-12-14 23:46
电路问题,光耦暗电路触发了三极管,量一量IO输出电位就清楚了
ID:491577 发表于 2021-12-14 11:30
楼主的驱动电路是体育老师教的吧?光耦需要5ma电流驱动,楼主的电流=(5V-1.8V)/2K=1.6ma,偏小,右边LED驱动明显有错误,是你的电路有问题。IO口只要不是设置成高阻模式都可以驱动LED,单片机IO默认是双向,根本不需要设置IO口,直接用就可以,你的软件没有问题,LED电路有问题。
ID:491875 发表于 2021-12-14 08:19
xuyaqi 发表于 2021-12-7 17:13
你接线应按5楼给的改一下。

只是检测LED是否点亮,光耦完全可以不用,将光耦直接用一只LED代替就可以了。从原理图可以看出,光耦初级红外发射管点亮次级LED发光。我们完全可以把光耦次级红外发射管直接用LED代替。
ID:57657 发表于 2021-12-14 07:59
wulin 发表于 2021-12-7 16:01
可以用STC8头文件,端口初始化全部准双向。硬件按图改一下。

D4 比 STC8 其他型号 新增了很多寄存器,IO口结构有改变,头文件不一样。
ID:163817 发表于 2021-12-14 07:30
D4这颗我P41我怎么设置。。只要=0一次,就回不到5V(只能回到3.多V),设置推挽模式也一样(像楼主的P75我改为P41)
ID:636538 发表于 2021-12-8 10:55
#include "reg51.h"建议修改成#include "STC8.h"使用该芯片的头文件,找不到就去STC-ISP软件添加到你的KEIL里面
ID:213173 发表于 2021-12-7 17:37
北漂的二极管 发表于 2021-12-7 16:39
不知道是不是厂家设置的有问题,我P0和P1口全部设置成高阻态了,P00,P01,P02,P03,P16,P17这些IO口控制的 ...

不要轻易怀疑芯片有问题,功能不正常99.9%是使用者的问题。加电灯就亮是你的硬件电路设计缺陷所致。
ID:94031 发表于 2021-12-7 17:13
你接线应按5楼给的改一下。
ID:624769 发表于 2021-12-7 17:08
北漂的二极管 发表于 2021-12-7 16:39
不知道是不是厂家设置的有问题,我P0和P1口全部设置成高阻态了,P00,P01,P02,P03,P16,P17这些IO口控制的 ...

stc8是有内置上拉电阻的,你最好了解一下,看你include的reg52,我猜你连stc的寄存器列表都没看过吧?不然说啥都会用stc8的头文件了。那么多寄存器全自己定义,不死人么?
ID:64336 发表于 2021-12-7 16:39
wulin 发表于 2021-12-7 16:01
可以用STC8头文件,端口初始化全部准双向。硬件按图改一下。

不知道是不是厂家设置的有问题,我P0和P1口全部设置成高阻态了,P00,P01,P02,P03,P16,P17这些IO口控制的LED还是能点亮,并且是加电初始状态就亮,按理说高阻态不能控制外部输出的
ID:213173 发表于 2021-12-7 16:01
可以用STC8头文件,端口初始化全部准双向。硬件按图改一下。




STC8.H.zip (3.8 KB, 下载次数: 8)

  1. #include <STC8.H>

  2. void main()
  3. {
  4.     P0M0 = 0x00;
  5.     P0M1 = 0x00;
  6.     P1M0 = 0x00;
  7.     P1M1 = 0x00;
  8.     P2M0 = 0x00;
  9.     P2M1 = 0x00;
  10.     P3M0 = 0x00;
  11.     P3M1 = 0x00;
  12.     P4M0 = 0x00;
  13.     P4M1 = 0x00;
  14.     P5M0 = 0x00;
  15.     P5M1 = 0x00;
  16.     P6M0 = 0x00;
  17.     P6M1 = 0x00;
  18.     P7M0 = 0x00;
  19.     P7M1 = 0x00;

  20.     P0 = 0xFD;
  21.     while (1);
  22. }
复制代码



ID:955673 发表于 2021-12-7 14:53
用到哪个设置哪个
ID:376613 发表于 2021-12-7 13:03
对每个IO单独设置
ID:106977 发表于 2021-12-7 12:27
D4芯片开始必须对各个IO口设置,见D4说明书。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表