找回密码
 立即注册
查看: 1239|回复: 19

使用STC8H1K28-36I-LQFP32的P1.0-P1.6控制LED灯亮,取数组内值整体赋值;P1.7串口发送

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-6 18:08:56 | 显示全部楼层 |阅读模式
方案1:使用STC8H1K28-36I-LQFP32的P1.0-P1.6控制LED灯亮,整体赋值8个口,显示数字0-9十个数;P1.7串口发送,这样会影响串口,串口发送控制语音报警???????
方案2:使用STC8H1K28-36I-LQFP32的P1.0-P1.5和P5.4控制LED灯亮,P1.6和P1.7串口发送,串口发送控制语音报警;P1.0-P1.5和P5.4分开赋值,显示数字0-9十个数,值是数组定义好的,不知道该如何分开赋值?????






单片机引脚使用图

单片机引脚使用图
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-9-6 19:03:21 | 显示全部楼层
方案1:关闭串口接收功能
P1 &= 0x80;
P1 |= n & 0x7f;
方案2:LED控制方法与方案1类似
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-9-6 22:40:20 | 显示全部楼层
本帖最后由 梁工 于 2023-9-7 10:09 编辑

也可以将数据防ACC或B,然后一位位传给各个IO,我常用此法,优点点是IO可以随意定义。比如数码管A~H用的IO是:P1.0 P1.2 P0.3 P0.1 P2.0 P3.5 P4.3 P5.4。
sbit ACC0 = ACC^0;
sbit ACC1 = ACC^1;
sbit ACC2 = ACC^2;
sbit ACC3 = ACC^3;
sbit ACC4 = ACC^4;
sbit ACC5 = ACC^5;
sbit ACC6 = ACC^6;
sbit ACC7 = ACC^7;

ACC = 要显示的内容;
P10 = ACC0;
P12 = ACC1;
P03 = ACC2;
P01 = ACC3;
P20 = ACC4;
P35 = ACC5;
P43 = ACC6;
P54 = ACC7;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-7 08:34:31 | 显示全部楼层
乘风*** 发表于 2023-9-6 19:03
方案1:关闭串口接收功能
P1 &= 0x80;
P1 |= n & 0x7f;

感谢你的帮助和支持,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-7 08:36:20 | 显示全部楼层
梁*** 发表于 2023-9-6 22:40
也可以将数据防ACC或B,然后一位位传给各个IO,我常用此法,优点点是IO可以随意定义。比如数码管A~H用的IO ...

梁工的这个方法,就实现了我的第二种方案,我感觉不可能的事,成为可能了,太感谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-7 09:30:41 | 显示全部楼层
梁*** 发表于 2023-9-6 22:40
也可以将数据防ACC或B,然后一位位传给各个IO,我常用此法,优点点是IO可以随意定义。比如数码管A~H用的IO ...

我放到程序里面试了一下,报错:main.c(43): error C129: missing ';' before '.0'  其中43行: P1.0 = ACC0;  我以为是P1.0没有定义,   增加了 sbit  P1.0  = P1^0;   报重复定义,也查了资料,没发现问题????  

点评

程序是示意性的,P1.0~P1.7改为P10~P17即可。  详情 回复 发表于 2023-9-7 10:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-7 09:43:39 | 显示全部楼层
如图:左边8脚是串口1用于发送语音报警信息,右边的19、20脚也是串口1接485电路接口与后台通信,都是串口1 就要分时复用,且串口1接收功能,也不能禁用,否则485通信不能接收了,不禁用,会影响7脚的显示???
截图202309070937574626.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-9-7 10:08:29 | 显示全部楼层
本帖最后由 梁工 于 2023-9-7 10:10 编辑
38009*** 发表于 2023-9-7 09:30
我放到程序里面试了一下,报错:main.c(43): error C129: missing ';' before '.0'  其中43行: P1.0 = A ...

程序是示意性的,比如P1.0~P1.7改为P10~P17即可,我在原贴改好了。STC官方的头文件定义好的IO。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-8 07:24:31 | 显示全部楼层
梁*** 发表于 2023-9-7 10:08
程序是示意性的,比如P1.0~P1.7改为P10~P17即可,我在原贴改好了。STC官方的头文件定义好的IO。 ...

P1.0~P1.7改为P10~P17,我也是按照头文件定义的,改了,还是报错;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-05-03 08:03:20
已绑定手机

151

主题

589

回帖

1204

积分

金牌会员

积分
1204
发表于 2023-9-8 09:20:33 | 显示全部楼层
这个我昨天也试了,报重复性定义,明明是赋值,怎么报重复定义??
截图202309080919326201.jpg

点评

重复定义了,STC的官方头文件,都定义了的。  详情 回复 发表于 2023-9-8 10:17
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 12:46 , Processed in 0.216451 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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