一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: benli

[其他综合] 初学C,来请教

  [复制链接]
发表于 2013-1-27 20:39 | 显示全部楼层
Keil里调试的结果正如考拉分析的那样,P3.0口电平高低变换,P3.1-3.7口都是低电平,不能操作全部 ...
benli 发表于 2013-1-27 20:29 https://www.yleee.com.cn/images/common/back.gif



    那!应该是逻辑操作,不是位操作.在C里,非0值被当作逻辑1,0值被当作逻辑0.当一个逻辑值赋给一个char类型的变量时,逻辑1值就变为0000001,逻辑0值就变为0000000.如果要对整个char类型的值求反,我觉得还是与全1也就是FF进行异或运算才能达到目的.
回复

使用道具 举报

 楼主| 发表于 2013-1-27 20:42 | 显示全部楼层
回复 31# cosine


    是,实验发现取反是不能进行位操作的。
回复

使用道具 举报

发表于 2013-1-27 23:02 | 显示全部楼层
回复 32# benli


   while(1)        {
                P3=~P3;
                delay(1000);
        }
这个可以吧!按位取反!
回复

使用道具 举报

 楼主| 发表于 2013-1-28 18:12 | 显示全部楼层
回复 33# nonoge


    多谢!果然可行!
回复

使用道具 举报

 楼主| 发表于 2013-1-28 19:32 | 显示全部楼层
被中断定时那些标示搞的头晕脑胀
回复

使用道具 举报

 楼主| 发表于 2013-1-30 10:56 | 显示全部楼层
如果要用P1口做左移流水灯,用P2口做右移流水灯,P3口做不同的闪烁,请教下程序思路。
回复

使用道具 举报

 楼主| 发表于 2013-2-1 21:17 | 显示全部楼层
要将数码管的段驱动定义到P0口要怎么写,我这样写不行
sbit led=P0;
回复

使用道具 举报

发表于 2013-2-1 23:04 | 显示全部楼层
回复 37# benli

    对sbit理解为:
    sbit对可进行位操作寄存器第n(n范围0至7)位的位重定义。
    ,以后用时可直接对led操作,即对P0的第n位操作。   
     sbit led=P0^n;   //P0的第n位用led标识代替

      led=0;  //  如n=0, 即对P0.0进行置零操作
回复

使用道具 举报

 楼主| 发表于 2013-2-2 12:08 | 显示全部楼层
回复 38# lyxing


    多谢解释!已用
#define led   P0
来定义
回复

使用道具 举报

 楼主| 发表于 2013-2-2 22:35 | 显示全部楼层
出现这种错误提示,自己却找不到错误所在
Build target 'Target 1'
compiling 511.c...
511.C(14): error C129: missing ';' before 'code'
QQ截图20130202223352.png
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-19 01:17 , Processed in 0.030229 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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