设为首页收藏本站帮助中心
查看: 44|回复: 0
收起左侧

STC/8051单片机4路74HC138模拟程序C51源码 (Y0~Y7强推挽译码输出,用于临时代替该芯片)

[复制链接]
发表于 2020-7-25 19:19:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x


  1. /*
  2. 4路74HC138模拟程序 (此程序用于临时替代该芯片)
  3. 第一路 P0                第二路 P2        第三路 P4        第四路  P6 (强推挽译码输出 Y0~Y7)
  4. i = 第一路 P1        第二路 P3        第三路 P5        第四路        P7 (片选与译码输入)
  5. i.0:译码输入A        i.1:译码输入B        i.2:译码输入C
  6. i.3:E1                        i.4:E2                        i.5:E3
  7. E1和E2低电平,E3高电平时译码有效,否则输出全部高电平
  8. */
  9. #include "stc8h.h"
  10. #include "intrins.h"
  11. void main() {
  12.         P0M0 = 0xFF;
  13.         P0M1 = 0x00;
  14.         P2M0 = 0xFF;
  15.         P2M1 = 0x00;
  16.         P4M0 = 0xFF;
  17.         P4M1 = 0x00;
  18.         P6M0 = 0xFF;
  19.         P6M1 = 0x00;
  20.         while (1) {
  21.                 WDT_CONTR = 0x37;        //STC 看门狗喂狗
  22.                 if ((P1 & 0x38) == 0x20) {
  23.                         P0 = ~(1 << (P1 & 0x7));
  24.                 } else {
  25.                         P0 = 0xFF;
  26.                 }
  27.                 if ((P3 & 0x38) == 0x20) {
  28.                         P2 = ~(1 << (P3 & 0x7));
  29.                 }
  30.                 else {
  31.                         P2 = 0xFF;
  32.                 }
  33.                 if ((P5 & 0x38) == 0x20) {
  34.                         P4 = ~(1 << (P5 & 0x7));
  35.                 }
  36.                 else {
  37.                         P4 = 0xFF;
  38.                 }
  39.                 if ((P7 & 0x38) == 0x20) {
  40.                         P6 = ~(1 << (P7 & 0x7));
  41.                 }
  42.                 else {
  43.                         P6 = 0xFF;
  44.                 }

  45.         }
  46. }
复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则