• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

74hc595单片机程序 请帮我解读DS=CY 这个语句

f5376de1a1a8a809 2020-06-04 浏览量:1229
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[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};//延时
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);
                }                
        }
}
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • CY是进位标志, 而DS是引脚P2.1,是对外输出,控制595数据位的,

    所以,在数据自加 进位时,就会控制595的DS信号与进位标志一同进位来达到自动输出的功能

    • 发布于 2020-06-18
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:1
  • DS=P2^1

    DS=CY就是给P2^1赋值为CY,也就是0或1的问题

    • 发布于2020-06-08
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

74hc595单片机程序 请帮我解读DS=CY 这个语句