f5376de1a1a8a809
获得 0 次赞
帮助过0人
DS=CY; 这个语句是在reg51.h中定义的,我不太明白这个语句是什么意思,请大佬帮忙解读一下/@@* 名称:74HC595串入并出芯片应用 说明:74HC595是具有一个8位串入并出的移位寄存器和一个8位输出寄存器, 本例利用74HC595,通过串行输入数据来控制数码管的显示。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit 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); } }}