打印
[PIC®/AVR®/dsPIC®产品]

PIC驱动数码管

[复制链接]
833|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容易造成问题

使用特权

评论回复
5
zwll| | 2021-12-8 21:39 | 只看该作者
PIC16从4位数型号开始,PIC18似乎一直都有,16位32位都是一直有。

使用特权

评论回复
6
renyaq|  楼主 | 2021-12-8 21:41 | 只看该作者
这里主要说的是SEG都在一个PORT的情况,如果分散在不同的PORT,就不存在

使用特权

评论回复
7
jiajs| | 2021-12-8 21:49 | 只看该作者
那你就把SEG定义成LAT就好了

使用特权

评论回复
8
chuxh| | 2021-12-8 21:51 | 只看该作者
PIC单片机是16位的,用的PIC24系列。有端口锁存器。

使用特权

评论回复
9
pengf| | 2021-12-8 21:53 | 只看该作者
如果你有具体的型号可能好一些,简单的说,如果有LATx寄存器组,随便造

使用特权

评论回复
10
xxrs| | 2021-12-8 21:55 | 只看该作者
数码管的段选有几个是在同一个端口的,都PORTB,有的不在

使用特权

评论回复
11
renyaq|  楼主 | 2021-12-8 21:56 | 只看该作者
这样的情况能用方法2吗,对IO口直接赋值,谢谢。

使用特权

评论回复
12
pzsh| | 2021-12-9 09:59 | 只看该作者
应该都可以吧,但是1比较好

使用特权

评论回复
13
tpgf| | 2022-1-6 15:20 | 只看该作者
可以直接驱动吗

使用特权

评论回复
14
guanjiaer| | 2022-1-6 15:31 | 只看该作者
SEG定义成LAT 是一种什么模式呢

使用特权

评论回复
15
heimaojingzhang| | 2022-1-6 15:40 | 只看该作者
是不是只能一个io口驱动一个数码管的 一段啊

使用特权

评论回复
16
keaibukelian| | 2022-1-6 15:50 | 只看该作者
需要提供具体型号

使用特权

评论回复
17
labasi| | 2022-1-6 16:24 | 只看该作者
不用专用的驱动芯片吗

使用特权

评论回复
18
paotangsan| | 2022-1-6 16:52 | 只看该作者
引脚的电压是多少啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝