使用STC8H1K28-36I-LQFP32的P1.0-P1.6控制LED灯亮,取数组内值整体赋值;P1.7串口发送
方案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十个数,值是数组定义好的,不知道该如何分开赋值?????
方案1:关闭串口接收功能
P1 &= 0x80;
P1 |= n & 0x7f;
方案2:LED控制方法与方案1类似 本帖最后由 梁工 于 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; 乘风飞扬 发表于 2023-9-6 19:03
方案1:关闭串口接收功能
P1 &= 0x80;
P1 |= n & 0x7f;
感谢你的帮助和支持, 梁工 发表于 2023-9-6 22:40
也可以将数据防ACC或B,然后一位位传给各个IO,我常用此法,优点点是IO可以随意定义。比如数码管A~H用的IO ...
梁工的这个方法,就实现了我的第二种方案,我感觉不可能的事,成为可能了,太感谢了 梁工 发表于 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没有定义, 增加了 sbitP1.0= P1^0; 报重复定义,也查了资料,没发现问题???? 如图:左边8脚是串口1用于发送语音报警信息,右边的19、20脚也是串口1接485电路接口与后台通信,都是串口1 就要分时复用,且串口1接收功能,也不能禁用,否则485通信不能接收了,不禁用,会影响7脚的显示??? 本帖最后由 梁工 于 2023-9-7 10:10 编辑
380091044 发表于 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。 梁工 发表于 2023-9-7 10:08
程序是示意性的,比如P1.0~P1.7改为P10~P17即可,我在原贴改好了。STC官方的头文件定义好的IO。 ...
P1.0~P1.7改为P10~P17,我也是按照头文件定义的,改了,还是报错; 这个我昨天也试了,报重复性定义,明明是赋值,怎么报重复定义??
页:
[1]
2