[PIC®/AVR®/dsPIC®产品] PIC驱动数码管

[复制链接]
1453|17
 楼主| renyaq 发表于 2021-12-8 21:32 | 显示全部楼层 |阅读模式
本帖最后由 pzsh 于 2021-12-9 09:59 编辑

数码管驱动
   用PIC单片机和74HC573驱动数码管,当让数码管显示某个字符时,
方法1:对单片机的某个端口赋值,比如PORTA=0XFE;
方法2:对应的显示数字放在一个结构体中,比如
       case 0://显示数字0
             {SEG_A = 1;SEG_B = 1;SEG_C = 1;SEG_D = 1;SEG_E = 1;SEG_F = 1;SEG_G = 0;}
        case 1://显示数字1
             {SEG_A = 0;SEG_B = 1;SEG_C = 1;SEG_D = 0;SEG_E = 0;SEG_F = 0;SEG_G = 0;}
这两种方法一个是对IO口整体赋值,另一个是将IO口挨个赋值,这两种方法都可以吗?
chuxh 发表于 2021-12-8 21:34 | 显示全部楼层
方法1最好改为调用LAT寄存器进行IO输出的修改。
 楼主| renyaq 发表于 2021-12-8 21:36 | 显示全部楼层
谢谢。我查查资料再看看。
zhenykun 发表于 2021-12-8 21:37 | 显示全部楼层
应该说的是方法2吧,如果逐个操作IO,最好使用有LAT寄存器的芯片,用RBx,RAx容易造成问题
zwll 发表于 2021-12-8 21:39 | 显示全部楼层
PIC16从4位数型号开始,PIC18似乎一直都有,16位32位都是一直有。
 楼主| renyaq 发表于 2021-12-8 21:41 | 显示全部楼层
这里主要说的是SEG都在一个PORT的情况,如果分散在不同的PORT,就不存在
jiajs 发表于 2021-12-8 21:49 | 显示全部楼层
那你就把SEG定义成LAT就好了
chuxh 发表于 2021-12-8 21:51 | 显示全部楼层
PIC单片机是16位的,用的PIC24系列。有端口锁存器。
pengf 发表于 2021-12-8 21:53 | 显示全部楼层
如果你有具体的型号可能好一些,简单的说,如果有LATx寄存器组,随便造
xxrs 发表于 2021-12-8 21:55 | 显示全部楼层
数码管的段选有几个是在同一个端口的,都PORTB,有的不在
 楼主| renyaq 发表于 2021-12-8 21:56 | 显示全部楼层
这样的情况能用方法2吗,对IO口直接赋值,谢谢。
pzsh 发表于 2021-12-9 09:59 | 显示全部楼层
应该都可以吧,但是1比较好
tpgf 发表于 2022-1-6 15:20 | 显示全部楼层
可以直接驱动吗
guanjiaer 发表于 2022-1-6 15:31 | 显示全部楼层
SEG定义成LAT 是一种什么模式呢
heimaojingzhang 发表于 2022-1-6 15:40 | 显示全部楼层
是不是只能一个io口驱动一个数码管的 一段啊
keaibukelian 发表于 2022-1-6 15:50 | 显示全部楼层
需要提供具体型号
labasi 发表于 2022-1-6 16:24 | 显示全部楼层
不用专用的驱动芯片吗
paotangsan 发表于 2022-1-6 16:52 | 显示全部楼层
引脚的电压是多少啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部