标题: 单片机C语言强制类型转换之bit示例程序 [打印本页]

作者: zmc419    时间: 2019-5-12 19:57
标题: 单片机C语言强制类型转换之bit示例程序
/*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);
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1