74HC595程序应用(原理图)

2020-01-27 11:40发布

360软件小助手截图20130515125812.jpg (167.69 KB, 下载次数: 0) 下载附件 仿真 2013-5-15 13:16 上传 /* 输入输出在主函数里  */

#include<reg52.h>
//#include<intrins.h>           /*_nop_()在<intrins.h>里*/
#define uchar unsigned char
#define uint  unsigned int
sbit shcp=P2^0;
sbit   ds=P2^1;
sbit stcp=P2^2;
uchar temp;
uchar code duan[]=
{0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x10};
                  /*延时*/
void delay(uint z)
{
  uint x,y;
     for(x=z;x>0;x--)
       for(y=100;y>0;y--);
  }
     /*数据输入   */
void input(uchar temp)
{
      uchar i;
          for(i=0;i<8;i++)        /*只是表明向左移动   移动过次*/
          {        
               temp<<=1;         
               ds=CY;
                   shcp=0;
                   shcp=1;
                  //_nop_();
                  //_nop_();
                  
          }  
}
           /*数据输出*/
void output()
{
            stcp=0;
         //_nop_();
         stcp=1;
        // _nop_();
         //stcp=0;
}
            /*主函数*/
void main(void)
{
       uchar i;
           while(1)
           {
              for(i=0;i<10;i++)
                    {
                           temp=duan;
                           input(temp);
                           output();
                           delay(300);
                        }
           }
}
   
     
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
兰斯洛
1楼-- · 2020-01-27 15:20
感谢分享~感觉可以不用intrins.h
自己写个循环左移好了
省点ROM是一点
liuyang8023
2楼-- · 2020-01-27 16:06
兰斯洛 发表于 2013-5-15 17:22
感谢分享~感觉可以不用intrins.h
自己写个循环左移好了
省点ROM是一点

是的      intrins.h 只是没删    谢谢
jz701209李
3楼-- · 2020-01-27 18:16
不错,不错
weimas
4楼-- · 2020-01-27 20:40
 精彩回答 2  元偷偷看……
rickly_hzy
5楼-- · 2020-01-28 01:57
第一次使用,标记!

一周热门 更多>