找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3917|回复: 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 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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