找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1787|回复: 5
收起左侧

C语言通过变量或指针来改变寄存器?数字

[复制链接]
ID:285416 发表于 2021-5-9 16:58 | 显示全部楼层 |阅读模式
编写一段数码管程序。需要对五个io口。
依次置0和一的转换。由于是寄存器操作。
想用循环的方法。  
所以就出现了问题。  寄存器怎么能变成变量?
通过改变变量改变寄存器的值。
用指针数组指向寄存器还是用变量数组哦。
回复

使用道具 举报

ID:569384 发表于 2021-5-9 17:56 | 显示全部楼层
用位域吧!
回复

使用道具 举报

ID:429003 发表于 2021-5-10 08:49 | 显示全部楼层
寄存器和自定义的变量,本质上都是CPU寻址范围内的一个地址而已,完全可以像操作变量一样操作寄存器,也可以用一个结构化的指针指向寄存器地址,再执行指针的操作!
回复

使用道具 举报

ID:917514 发表于 2021-5-10 10:10 | 显示全部楼层
数组加循环即可实现,通过数组的值赋给寄存器,寄存器通常是8位的,尽量通过与或来进行赋值,
如P1=P1 & 0xe0,P1 = P1 || (a[0]&0x1F)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:918505 发表于 2021-5-10 10:32 | 显示全部楼层
用指针数组吧
回复

使用道具 举报

ID:285416 发表于 2021-5-10 23:22 | 显示全部楼层
谢谢楼上的兄弟们的回答。
正在用指针数组调试。
不过我感觉用指针数组指定地址。
增加我的代码书写量还不如直接敲出寄存器呢没什么区别。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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