标题:
74hc595单片机程序 请帮我解读DS=CY 这个语句
[打印本页]
作者:
大迪a
时间:
2020-6-3 23:31
标题:
74hc595单片机程序 请帮我解读DS=CY 这个语句
DS=CY; 这个语句是在reg51.h中定义的,我不太明白这个语句是什么意思,请大佬帮忙解读一下
/*
名称:
74HC595
串入并出芯片应用
说明:
74HC595
是具有一个
8
位串入并出的移位寄存器和一个
8
位输出寄存器,
本例利用
74HC595
,通过串行输入数据来控制数码管的显示。
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SH_CP=P2^0; //
移位时钟脉冲
sbit DS=P2^1; //
串行数据输入
sbit ST_CP=P2^2; //
输出锁存器控制脉冲
uchar temp;
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//
延时
void DelayMS(uint ms)
{
uchar i;
while(ms--) for(i=0;i<120;i++);
}
//
串行输入子程序
void In_595()
{
uchar i;
for(i=0;i<8;i++)
{
temp<<=1;
DS=CY;
SH_CP=1; //
移位时钟脉冲上升沿移位
_nop_();_nop_();
SH_CP=0;
}
}
//
并行输出子程序
void Out_595()
{
ST_CP=0;_nop_();
ST_CP=1; //
上升沿将数据送到输出锁存器
_nop_();
ST_CP=0; //
锁存显示数据
}
//
主程序
void main()
{
uchar i;
while(1)
{
for(i=0;i<10;i++)
{
temp=DSY_CODE[ i];
In_595(); //temp
中的一字节数据串行输入
74HC595
Out_595(); //74HC595
移位寄存数据传输到存储寄存器并出现在输出端
DelayMS(200);
}
}
}
作者:
wulin
时间:
2020-6-3 23:31
CY是硬件进位标志位,在进行算术运算时,可以被硬件置位或清零,以表示运算结果中高位是否有进位或借位的状态。 temp<<=1;最高位溢出并保存在CY,循环8次并将CY逐一赋值DS,就达到由高位到低位输出1个字节串行数据的目的。
作者:
gb302
时间:
2020-6-4 09:08
CY表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0。
作者:
我的锅包肉
时间:
2020-6-4 15:27
加法运算中有进位或减法运算中有借位则CY位置1,否则为0
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1