找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机C语言强制类型转换之bit示例程序

[复制链接]
跳转到指定楼层
楼主
ID:137736 发表于 2019-5-12 19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*C51中的bit强制类型转换示例*/
/*用于74HC595等串转并的数据分离很方便*/
/*bit类型转换时保留的是最高位(加0xff后溢出)*/
/*其它强制类型转换保留低位,扔掉高位*/
#include<STC90C5xAD.H>
#include <intrins.h>
sbit smgSER = P1^0; // 595(14 脚)SER 数据输入引脚
sbit RCK = P1^1; // 595(12 脚)STCP 锁存时钟 1 个上升沿所存一次数据
sbit SCK = P1^2; // 595(11 脚)SHCP 移位时钟 8 个时钟移入一个字节
//void HC595_WrOneByte(unsigned char ucDat);
void HC595_WrOneByte(unsigned char ucDat)
{
    unsigned char i = 0;
    /* 通过 8 循环将 8 位数据依次移入 74HC595 */
    for (i=0; i<8; i++)
    {
                P0 =ucDat & 0x80; //debug调试用
        smgSER = (bit)(ucDat & 0x80); //强制bit转换
        /*等价于if(ucDat&0x80) smgSER=1;
        else smgSER=0;*/
        SCK = 0;
        ucDat <<= 1;
        SCK = 1;
    }
    /* 数据并行输出(借助上升沿) */
    RCK = 0;
    _nop_();
    _nop_();
    RCK = 1;
}
void main(void)
{
    HC595_WrOneByte(0x81);
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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