/******** 实验驱动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(); } } }
上一篇:AVR红外遥控解码代码
下一篇:avr单片机 Mega16定时器实验报告
推荐阅读
史海拾趣
CMD公司在数据存储领域不断创新,推出了一系列高性能的产品。其微开放系统、高性能工作站等产品为LAN和PC提供了先进的数据存储技术。同时,CMD还致力于发展、生产、销售高性能ASIC和板级产品,其IDE/UltraATA芯片在全球范围内得到了广泛应用。
随着电子行业的快速发展,客户对环形变压器的性能要求也越来越高。Amveco公司敏锐地捕捉到了这一市场变化,加大了在技术创新和产品升级上的投入。公司研发团队不断攻克技术难关,成功开发出了一系列具有更高效率、更低损耗的环形变压器产品,满足了客户对高性能产品的需求。同时,公司还不断优化生产工艺,提高了产品的可靠性和稳定性。
在电子行业的发展过程中,Cogent_Computer_Systems公司深知合作共赢的重要性。公司积极与上下游企业建立紧密的合作关系,共同推动产业升级。通过与供应商的深度合作,公司确保了原材料的稳定供应和质量保障;同时,与客户的紧密沟通也帮助公司更好地把握市场需求,推出更符合消费者期望的产品。这种合作共赢的模式不仅提升了公司的竞争力,也为整个电子行业的发展注入了新的活力。
在竞争激烈的电子行业中,持续的研发和创新是企业生存和发展的关键。Semi-Films Division 深知这一点,因此始终将研发和创新作为公司的核心竞争力。公司投入大量资金和资源用于新技术和新产品的研发,不断推出具有更高性能、更低成本的产品来满足市场的需求。这些创新产品不仅为公司带来了丰厚的利润,也提升了公司在行业中的地位和影响力。
Edcon Components Netherlands Cv自成立之初,就深知技术创新是企业生存和发展的关键。在电子行业飞速发展的背景下,公司投入大量资源进行研发,成功推出了一系列高性能、低成本的电子元器件。这些产品不仅满足了市场对高质量电子产品的需求,还为公司赢得了良好的口碑。随着技术的不断迭代更新,Edcon逐渐在电子元器件市场占据了重要地位。
Elektron公司一直注重技术研发和创新投入,致力于在行业中保持领先地位。公司不断推出具有创新性和领先性的产品,如高性能的电池充电器、先进的焊接和切割设备等。这些产品的推出不仅提高了公司的市场竞争力,也推动了整个行业的发展和进步。同时,Elektron还积极参与行业标准的制定和推广工作,为行业的健康发展做出了重要贡献。
2007年度最受中国市场欢迎的半导体品牌,有异议吗?????? 亚德诺:注重在华长期投资 ADI(亚德诺半导体)将创新、业绩和卓越作为企业的文化支柱,在此基础上已成长为该技术领域最持久高速增长的企业之一。ADI公司是业界广泛认可的数据转换和信号处理技术全球领先的供应商,拥有遍布世界各地的60000客户。 200 ...… 查看全部问答∨ |
各位大侠,请教一下555单稳电路如果周期是0.05s,外围参数怎么选择? 拜谢。 另外,555多谐震荡器在10HZ~5HZ时外围参数如何选择,该选多大的? 拜谢,急… 查看全部问答∨ |
在WinCE的BSP包中有如下预编译: IF BSP_NODISPLAY ! #include "$(_TARGETPLATROOT)\\SRC\\DRIVERS\\AT91SAM9263Display\\AT91SAM9263GraphicChip.reg" ENDIF BSP_NODISPLAY ! BSP_NODISPLAY ! 的意思是不是 BSP_NODISPLAY 这个宏没有定义 ...… 查看全部问答∨ |
|
// 定义指示灯寄存器地址和寄存器类型 // 子程序接口 //void Delay(unsigned int nDelay); // 延时子程序 //#include \\"Delay.c\\" //#include \\"DPPL_init.c\\" //#include \\"sdram_init.c\\" ...… 查看全部问答∨ |
ucos-ii在飞思卡尔mc9s12xs128芯片上的移植!急!!! 我前面搜了一些别人的程序,可以运行,移植也成功了,不过是单任务!后来我尝试建立了两个任务!但是为什么程序不连续运行了,变单步了,我用的是code warrior5.0编译器!有没有高手弄过相关的程序啊?我在做毕业设计,马上就要交论文了,可是我的 ...… 查看全部问答∨ |
恩智浦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 编辑 噪声分析可以在时域中,频域中,或通过统计学分析的方法来完成。 时域中:用示波器可测出。热噪声是电子流动时产生的噪声。热噪声公式最重要的贡献是为我们提供一种噪声电压均方根值的方法。然而在很 ...… 查看全部问答∨ |