OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3430|回复: 1

我想请教一个问题???????

[复制链接]

16

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2015-12-23
在线时间
20 小时
发表于 2020-5-16 22:47:11 | 显示全部楼层 |阅读模式
5金钱
    我有一块STM8 PA有8个IO口,其中一个用来模数转换,只有7只脚接数码管的b-g脚,a脚接PB的IO口,那怎样把PA和PB同时一起显示1,2,3,4.......那样,PA可以写0XFF数值,可是PB和PA怎样连一起写数据?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2020-5-22 13:28:22 | 显示全部楼层
本帖最后由 操作系统 于 2020-5-22 13:31 编辑

数据管显示编程也可以一个BIT ,一个BIT的来显示.只是要求扫描速度快一点.这样子的 ,硬件线路可以随便接.

这是一个万能例程..可以显示任何数据码的.你看明白了就会显示任何数码管了.
DISPLAY()
{
  IF DISN < LED_SHU ELSE DISN = 0
  A = GTA_STP#DISN
  CALLA
  IOSTA = 0XFF
  IOSTB = 0X0F
  IF TASK ELSE RET
  DISN ++
  IF DISN < LED_SHU ELSE CALL NEWBUF
  A = GTA_0#DISN
  GOTOA
}
GTA_STP:
STOP_BORTB.2----1
STOP_BORTB.2----2
STOP_BORTB.2----3
STOP_BORTB.0----4
STOP_BORTB.0----5
STOP_BORTB.0----6
STOP_BORTB.0----7
STOP_BORTB.0----8
STOP_BORTB.3----9
STOP_BORTB.3----10
STOP_A;PORTA.0----11
STOP_B;PORTB.2----12
STOP_B;PORTB.2----13
STOP_B;PORTB.2----14
STOP_B;PORTB.2----15
STOP_B;PORTB.0----16
STOP_A;PORTA.4----17
STOP_A;PORTA.6----18
STOP_B;PORTB.3----19
STOP_A;PORTA.0----20
STOP_B;PORTB.3----21
STOP_A;PORTA.6----22
STOP_A;PORTA.7----23
STOP_A;PORTA.4----24
STOP_A;PORTA.4----25
STOP_A;PORTA.6----26
STOP_B;PORTB.3----27
STOP_A;PORTA.0----28
STOP_B;PORTB.3----29
STOP_A;PORTA.6----30
STOP_A;PORTA.7----31
STOP_B;PORTB.3----32
STOP_A;PORTA.4----33
STOP_A;PORTA.6----34
STOP_A;PORTA.0----35
STOP_A;PORTA.0----36
STOP_A;PORTA.0----37
STOP_A;PORTA.6----38
STOP_A;PORTA.7----39
STOP_A;PORTA.6----40
STOP_A;PORTA.4----41
STOP_A;PORTA.4----42
STOP_A;PORTA.7----43
STOP_A;PORTA.7----44
STOP_A;PORTA.7----45
STOP_A;PORTA.4----46
STOP_A;PORTA.7----47
STOP_A;PORTA.0----48
STOP_A()
{
  PORTA & 0B00101110
}
STOP_B()
{
  PORTB = 0
}
GTA_0:
DIS0
DIS1
DIS2
DIS3
DIS4
DIS5
DIS6
DIS7
DIS8
DIS9
DIS10
DIS11
DIS12
DIS13
DIS14
DIS15
DIS16
DIS17
DIS18
DIS19
DIS20
DIS21
DIS22
DIS23
DIS24
DIS25
DIS26
DIS27
DIS28
DIS29
DIS30
DIS31
DIS32
DIS33
DIS34
DIS35
DIS36
DIS37
DIS38
DIS39
DIS40
DIS41
DIS42
DIS43
DIS44
DIS45
DIS46
DIS47
DIS0()
{
  IF BUF0.0
  {
   IOSTB = 0X3;6 4
   DS6 = 1
  }
}
DIS1()
{
  IF BUF0.1
  {
   IOSTB = 0XA;6 7
   DS6 = 1
  }
}
DIS2()
{
  IF BUF0.2
  {
   IOSTB = 0XB
   IOSTA = 0XBF;6 2
   DS6 = 1
  }
}
DIS3()
{
  IF BUF0.3
  {
   IOSTB = 0XC;7 8
   DS7 = 1
  }
}
DIS4()
{
  IF BUF0.4
  {
   IOSTB = 0XE
   IOSTA = 0XBF;7 2
   DS7 = 1
  }
}
DIS5()
{
  IF BUF0.5
  {
   IOSTB = 0XA;7 6
   DS7 = 1
  }
}
DIS6()
{
  IF BUF0.6
  {
   IOSTB = 0XE
   IOSTA = 0XFE;7 5
   DS7 = 1
  }
}
DIS7()
{
  IF BUF0.7
  {
   IOSTB = 0XE
   IOSTA = 0X7F;7 3
   DS7 = 1
  }
}
DIS8()
{
  IF BUF1.0
  {
   IOSTB = 0X3;4 6
   DS4 = 1
  }
}
DIS9()
{
  IF BUF1.1
  {
   IOSTB = 0X5;4 8
   DS4 = 1
  }
}
DIS10()
{
  IF BUF1.2
  {
   IOSTA = 0XFE
   IOSTB = 0XD;5 8
   DS5 = 1
  }
}
DIS11()
{
  IF BUF1.3
  {
   IOSTB = 0X9;6 8
   DS6 = 1
  }
}
DIS12()
{
  IF BUF1.4
  {
   IOSTB = 0XB
   IOSTA = 0XEF;6 1
   DS6 = 1
  }
}
DIS13()
{
  IF BUF1.5
  {
   IOSTB = 0XB
   IOSTA = 0X7F;6 3
   DS6 = 1
  }
}
DIS14()
{
  IF BUF1.6
  {
   IOSTB = 0XB
   IOSTA = 0XFE;6 5
   DS6 = 1
  }
}
DIS15()
{
  IF BUF1.7
  {
   IOSTB = 0X6;7 4
   DS7 = 1
  }
}
;;===============
DIS16()
{
  IF BUF2.0
  {
   IOSTA = 0XEF
   IOSTB = 0XD;1 8
   DS1 = 1
  }
}
DIS17()
{
  IF BUF2.1
  {
   IOSTA = 0XBF
   IOSTB = 0XB;2 6
   DS2 = 1
  }
}
DIS18()
{
  IF BUF2.2
  {
   IOSTB = 0X7
   IOSTA = 0XFE;4 5
   DS4 = 1
  }
}
DIS19()
{
  IF BUF2.3
  {
   IOSTA = 0XFE
   IOSTB = 0XE;5 7
   DS5 = 1
  }
}
DIS20()
{
  IF BUF2.4
  {
   IOSTB = 0X6;4 7
   DS4 = 1
  }
}
DIS21()
{
  IF BUF2.5
  {
   IOSTA = 0XBF
   IOSTB = 0XD;2 8
   DS2 = 1
  }
}
DIS22()
{
  IF BUF2.6
  {
   IOSTA = 0X7F
   IOSTB = 0XB;3 6
   DS3 = 1
  }
}
DIS23()
{
  IF BUF2.7
  {
   IOSTA = 0XEE;1 5
   DS1 = 1
  }
}
DIS24()
{
  IF BUF3.0
  {
   IOSTA = 0XEF
   IOSTB = 0XB;1 6
   DS1 = 1
  }
}
DIS25()
{
  IF BUF3.1
  {
   IOSTA = 0XAF;2 1
   DS2 = 1
  }
}
DIS26()
{
  IF BUF3.2
  {
   IOSTB = 0X7
   IOSTA = 0XEF;4 1
   DS4 = 1
  }
}
DIS27()
{
  IF BUF3.3
  {
   IOSTA = 0XFE
   IOSTB = 0XB;5 6
   DS5 = 1
  }
}
DIS28()
{
  IF BUF3.4
  {
   IOSTB = 0X7
   IOSTA = 0X7F;4 3
   DS4 = 1
  }
}
DIS29()
{
  IF BUF3.5
  {
   IOSTA = 0X3F;2 3
   DS2 = 1
  }
}
DIS30()
{
  IF BUF3.6
  {
   IOSTA = 0X3F;3 2
   DS3 = 1
  }
}
DIS31()
{
  IF BUF3.7
  {
   IOSTB = 0X7
   IOSTA = 0XBF;4 2
   DS4 = 1
  }
}
;; ------DISBUF0
DIS32()
{
  IF BUF4.0
  {
   IOSTA = 0X6F;1 3
   DS1 = 1
  }
}
DIS33()
{
  IF BUF4.1
  {
   IOSTA = 0XBF
   IOSTB = 0XE;2 7
   DS2 = 1
  }
}
DIS34()
{
  IF BUF4.2
  {
   IOSTA = 0XBE;5 2
   DS5 = 1
  }
}
DIS35()
{
  IF BUF4.3
  {
   IOSTA = 0XEE;5 1
   DS5 = 1
  }
}
DIS36()
{
  IF BUF4.4
  {
   IOSTA = 0X7E;5 3
   DS5 = 1
  }
}
DIS37()
{
  IF BUF4.5
  {
   IOSTA = 0XBE;2 5
   DS2 = 1
  }
}
DIS38()
{
  IF BUF4.6
  {
   IOSTA = 0X6F;3 1
   DS3 = 1
  }
}
DIS39()
{
  IF BUF4.7
  {
   IOSTA = 0XBF
   IOSTB = 0X7;2 4
   DS2 = 1
  }
}
DIS40()
{
  IF BUF5.0
  {
   IOSTA = 0XEF
   IOSTB = 0XE;1 7
   DS1 = 1
  }
}
DIS41()
{
  IF BUF5.1
  {
   IOSTA = 0XAF;1 2
   DS1 = 1
  }
}
DIS42()
{
  IF BUF5.2
  {
   IOSTA = 0X7E;3 5
   DS3 = 1
  }
}
DIS43()
{
  IF BUF5.3
  {
   IOSTA = 0X7F
   IOSTB = 0XE;3 7
   DS3 = 1
  }
}
DIS44()
{
  IF BUF5.4
  {
   IOSTA = 0X7F
   IOSTB = 0XD;3 8
   DS3 = 1
  }
}
DIS45()
{
  IF BUF5.5
  {
   IOSTA = 0XEF
   IOSTB = 0X7;1 4
   DS1 = 1
  }
}
DIS46()
{
  IF BUF5.6
  {
   IOSTA = 0X7F
   IOSTB = 0X7;3 4
   DS3 = 1
  }
}
DIS47()
{
  IF BUF5.7
  {
   IOSTA = 0XFE
   IOSTB = 0X7;5 4
   DS5 = 1
  }
}


回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 13:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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