历史上的今天

今天是:2024年10月29日(星期二)

正在发生

2019年10月29日 | 入门第一个74HC595驱动 C语言

发布者:Delightful789 来源: 51hei关键字:74HC595驱动  电平逻辑  ATMEGA48PA 手机看文章 扫描二维码
随时随地手机看文章


/********   实验驱动74HC595 芯片********

     单片机型号:ATMEGA48PA 


   /********** 74HC595电平逻辑*********************

   SI   SCK   SCLR   RCK     OE   输出管脚

   X     X      X     X      H    QA--QH 输出高阻

   X     X      X     X      L    QA--QH 输出有效值

   X     X      L     X      X    称位寄存器清零

   L   上沿     H     X      X    称位寄存器存储 L

   H   上沿     H     X      X    称位寄存器存储 H

   x   下沿     H     X      X    称位寄存器壮态保持

   X     X      X    上沿    X    输出存储器锁存(移位寄存器中的壮态值)

   X     X      X    下沿    X    输出存储器壮态 保持

   **************分析******************

   实计使用:

    SI   数据       (14脚)

        RCK  锁存       (12脚)

        SCK  时钟       (11脚)

       OE 与 RCK 相连  (13脚)

           SCLR 接高电平   (10脚) 

   ***************************************/

//ICC-AVR application builder : 2017-12-5 17:22:41

// Target : m48

// Crystal: 1.0000Mh

/***************************************************/

#include

#include

#define uchar unsigned char

#define uint  unsigned int

extern unsigned int a  =  10;    //延时基数

extern unsigned int b  =  1;      //并行数据 初使参数

extern unsigned int c  =  0; 

// int temp=0b00000001;   //  移位数据 初使参数

/**************分析******************

    实计使用:

    SI   数据   (14脚)

        RCK  锁存   (12脚)

        SCK  时钟   (11时钟)

   注意:第调用一次 脚位电平反转 ^= 

***************************************/

#define   SI_1    PORTB  |=  (1<<0)  

#define   SI_0    PORTB  &= ~(1<<0) 


#define   SCK_1   PORTB  |= (1<<1)  

#define   SCK_0   PORTB  &=~(1<<1)  


#define   RCK_1   PORTB  |= (1<<2) 

#define   RCK_0   PORTB  &=~(1<<2) 



/************端口初使化******************************/

void port_init(void)

{

  PORTB = 0x00;

  DDRB  = 0xFF;

  PORTC = 0x00;

  DDRC  = 0xFF;

  PORTD = 0B00000011;

  DDRD  = 0xFF;


}

/***************mS延时***********************/

void Delay_ms(unsigned int Time)

{

  unsigned char n=0;

    while(Time>0)

    {   

        for (n=1;n<187;n++)

        {

            NOP();

        }

        Time--;

    }

}

/***********显示/字**************************/

const unsigned char DisTab[]=  

{ 0b00000000,  // 0

  0b00000001,  // 1

  0b00000011,  // 2

  0b00000111,  // 3

  0b00001111,  // 4

  0b00011111,  // 5

  0b00111111,  // 6

  0b01111111,  // 7

  0b11111111,  // 8

// 0b00000000,  // 9

};

/********将显示数据装入74HC595内部移位奇存器*****/

void WR_595(char c)

{

     char  unm,j,i,x; //定义3个(16位)常量

         unm=DisTab[c];        // 显示数据存入 unm 中

         for (j=0;j<7;j++)

         {  

                SCK_1;             //上沿 移位寄存器(存储)

          //  x = unm&0x80;      //数据 (unm 与 0X80)与运算后存入X

                 x = unm&0b1000000; 

                if(x==0)           // 数据写到 SI 端口

                  {

                   SI_0;  //如果X==0,SI_1 数据写1,

                  }

                  else             //如果X==0,SI_1 数据写0,

                     {

                       SI_1;

                     } 

             SCK_0;             //下沿 移位寄存器(壮态保持) 

                 unm = unm<<1;      //数据移位

      }

  }                        

/**********锁存并显示**************/

void OUT_595(void)

    {

             RCK_1;             //上沿,壮态锁存

                 RCK_0;             //下沿,保持74HC595输出壮态

                 Delay_ms(500);    //延时 74HC显示一段时间

    }

/**********************************/




/***************开始***********************/

void main(void)

{  

    port_init();            //端口初使化 

  while(1)                  //超极循环

   { 

        char i;

                for(i=0;i<8;i++)

                    {   

                            WR_595(2);   //显示数据装入并显示

                                OUT_595();

                    }                

                 

   }  


}


关键字:74HC595驱动  电平逻辑  ATMEGA48PA 引用地址:入门第一个74HC595驱动 C语言

上一篇:AVR红外遥控解码代码
下一篇:avr单片机 Mega16定时器实验报告

推荐阅读

卷入点评数据争议风波后,马蜂窝联合创始人兼CEO陈罡对外发声。 10月23日,陈罡在接受媒体采访时表示,“马蜂窝在餐饮等点评数据方面存在部分问题,但远没有外界所表述的那么夸大。马蜂窝已开始对相关问题进行整改,并重新梳理工作流程,堵住漏洞。但对相关表述中涉及大量明显‘抹黑’行为,我们将交由法律判定。” 陈罡。 同时,被网文团队称为被抄袭...
Digitimes最新发布报告称,明年的5G智能手机包括iPhone在内都将在屏幕刷新率上进行大幅升级,而2020年iPhone将拥有iPad Pro一样的ProMotion屏幕,刷新率为120Hz,但iPhone将是高刷新率的OLED面板,而iPad是LCD屏。 这则消息与7月份OLED屏幕的供应链爆料一致,均声称明年iPhone ProMotion技术。迄今为止,苹果还未在任何OLED屏幕产品中实现过ProMotion。 ...
大学是人类知识的圣殿。但有一些领域,工业界反而领先于学术界,诸如软件工程,项目管理等需要大量实践的领域,特别是需要“动脑”更需要“动手”的领域,工业界往往比学术界更有优势。(企业供图)那么“排程与调度”这个领域呢?实际上,学术界并没有一个专门的学科与之对应。这是一个多学科交叉的领域,应用数学、统计、计算机算法、企业管理和工业管理...
一、明确任务分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。二、划分软硬件功能单片机系统由软件和硬件两部分组成。在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总...

史海拾趣

问答坊 | AI 解惑

2007年度最受中国市场欢迎的半导体品牌,有异议吗??????

亚德诺:注重在华长期投资 ADI(亚德诺半导体)将创新、业绩和卓越作为企业的文化支柱,在此基础上已成长为该技术领域最持久高速增长的企业之一。ADI公司是业界广泛认可的数据转换和信号处理技术全球领先的供应商,拥有遍布世界各地的60000客户。 200 ...…

查看全部问答∨

555单稳电路参数选择

各位大侠,请教一下555单稳电路如果周期是0.05s,外围参数怎么选择? 拜谢。 另外,555多谐震荡器在10HZ~5HZ时外围参数如何选择,该选多大的? 拜谢,急…

查看全部问答∨

WinCE BSP中的预编译问题

在WinCE的BSP包中有如下预编译: IF BSP_NODISPLAY ! #include "$(_TARGETPLATROOT)\\SRC\\DRIVERS\\AT91SAM9263Display\\AT91SAM9263GraphicChip.reg" ENDIF BSP_NODISPLAY ! BSP_NODISPLAY ! 的意思是不是 BSP_NODISPLAY 这个宏没有定义 ...…

查看全部问答∨

带什么眼镜看3D?

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 阿凡达还没正式下凡前,3D视频就已经在CES上疯狂了一把,好像一夜之间,2D已经是昨日黄花,只待作为历史的一件旧物,象无数过去的时尚一样迅速被新潮流淹没。人们正在习惯这样一些新闻:ESPN使 ...…

查看全部问答∨

关于led程序的问题,求助

// 定义指示灯寄存器地址和寄存器类型 // 子程序接口 //void Delay(unsigned int nDelay);        // 延时子程序 //#include \\"Delay.c\\" //#include \\"DPPL_init.c\\" //#include \\"sdram_init.c\\" ...…

查看全部问答∨

ucos-ii在飞思卡尔mc9s12xs128芯片上的移植!急!!!

我前面搜了一些别人的程序,可以运行,移植也成功了,不过是单任务!后来我尝试建立了两个任务!但是为什么程序不连续运行了,变单步了,我用的是code warrior5.0编译器!有没有高手弄过相关的程序啊?我在做毕业设计,马上就要交论文了,可是我的 ...…

查看全部问答∨

实现BeagleBone与Msp430g2通过APC220无线传输数据-周计划

加油~努力~ [ 本帖最后由 qinkaiabc 于 2012-9-18 15:30 编辑 ]…

查看全部问答∨

恩智浦LPC1549@eeworld ( 二 )基于MDK环境下熟悉NXP的LPC1549的开发入门

本帖最后由 蓝雨夜 于 2014-4-15 23:21 编辑 恩智浦LPC1549@eeworld 二 基于MDK环境下熟悉NXP的LPC1549的开发入门 环境说明:MDK-ARM Professional Version:4.74.0.0LPCOpen 2.xx软件包: 2_08b  http://www.lpcware.com/system/files ...…

查看全部问答∨

【学模拟】+《运算放大器噪声优化手册》读书笔记之第一章

本帖最后由 dontium 于 2015-1-23 11:24 编辑 噪声分析可以在时域中,频域中,或通过统计学分析的方法来完成。 时域中:用示波器可测出。热噪声是电子流动时产生的噪声。热噪声公式最重要的贡献是为我们提供一种噪声电压均方根值的方法。然而在很 ...…

查看全部问答∨

求PSpice软件15.7或者以上版本

如题,谢谢!了解电路仿真这方面的前辈,就请给个指导…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved