找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1795|回复: 7
打印 上一主题 下一主题
收起左侧

关于单片机定义的代码理解

[复制链接]
跳转到指定楼层
楼主
经常看大神的代码.发现有些就是看不明白
关于ADC转换

ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;

这种很明显.很容易懂..
但是有一种就不是很明白.

        P1ASF=0xC1;                //设置P1.0,P1,6,P1.7为ADC引脚,P1ASF为只写寄存器,读取无效

这种0XC1怎么就能代表3个引脚??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:514901 发表于 2020-11-3 14:41 | 只看该作者
0XC1 = 1100 0001
1表示有效,所以是三个引脚
回复

使用道具 举报

板凳
ID:837776 发表于 2020-11-3 15:43 | 只看该作者
第一种是库函数方式,二种是寄存器操作方式,优点代码间洁就是要对寄存器比较了解多查数据手册
回复

使用道具 举报

地板
ID:590194 发表于 2020-11-4 08:25 | 只看该作者
郑汉松 发表于 2020-11-3 14:41
0XC1 = 1100 0001
1表示有效,所以是三个引脚

还是没明白.怎么代表P1.0 P1.6和P1.7呢?
回复

使用道具 举报

5#
ID:88256 发表于 2020-11-4 08:59 | 只看该作者
sq8422779 发表于 2020-11-4 08:25
还是没明白.怎么代表P1.0 P1.6和P1.7呢?

8个I/O口各占一个字节里的一位,比如只要P1.7有效其余口无效,有效为1,那么就只要将P1.7口对应的位置1就行,其余的置0,最终合成 1000 0000,按你的说法就是代表了一个引脚,而0XC1 = 1100 0001,有3位被置1(P1.7、P1.6、P1.0对应的位置为1),就代表了3个引脚了(实际上是代表了8个引脚,只是3个被置为有效)
回复

使用道具 举报

6#
ID:590194 发表于 2020-11-4 11:04 | 只看该作者
hhdsdy 发表于 2020-11-4 08:59
8个I/O口各占一个字节里的一位,比如只要P1.7有效其余口无效,有效为1,那么就只要将P1.7口对应的位置1就 ...

明白你意思了,那我之前看的是有问题,我之前看的是3个进制代表一个数字 000 代表P1.0 011代表P1.3.你的意识最左边的进制是 使能,后面的进制是代表通道..明白.谢谢
回复

使用道具 举报

7#
ID:401564 发表于 2020-11-4 11:55 | 只看该作者
数据手册,数据手册!
0xC1是16进制的,你要对着数据手册去选择,把对应的2进制转换成16进制就知道怎么回事了


回复

使用道具 举报

8#
ID:137736 发表于 2020-11-4 17:32 | 只看该作者
展开成二进制
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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