《2022年数码管显示-HC动态扫描借鉴》由会员分享,可在线阅读,更多相关《2022年数码管显示-HC动态扫描借鉴(7页珍藏版)》请在金锄头文库上搜索。
1、MSP430单片机实践篇- 数码管显示74HC595动态扫描一、学习要点:利用 74HC595进行数码管显示,可以只占用个单片机的I/O 口就能完成数码管显示的功能。 动态扫描方式则进一步节省了硬件资源,只使用个 74HC595 就能显示多达位数码管。二、程序执行效果:本实验所需使用的硬件电路为个试验板:MSP430F135 核心实验板8 位数码管动态扫描显示模块将 MSP430F135 核心实验板上的 P5.4、P5.2、P5.0 分别与 8 位数码管动态扫描显示模块上的 LATCH 、CLK 、 DOUT连接,并将 8 位数码管动态扫描显示模块上的GND 、VCC 连接好。如下图P5.0
2、DOUT P5.2 CLK P5.4 LATCH名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 如下图所示:在 8 位数码管动态扫描显示模块上的个数码管上显示数字4 3 2 1。本例中只使用了其中的4 位数码管,读者可进行简单的更改使其显示达到8位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 -
3、 - - - - - - - - 三、原理讲解:查看 8 位数码管动态扫描显示模块的原理。如图所示,片74HC595分别用于段码与位码的输出。实验板上数码管为共阳,因此当位码为、段码为时点亮。动态扫描的原理:输出第位的位码, 紧接着输出该位要显示的段码, 然后使 LATCH 由跳变到使 74HC595锁存并输出数据 ,此时第位将显示,其它位全部都不显示。延时一段时间。输出第位的位码, 紧接着输出该位要显示的段码, 然后使 LATCH 由跳变到使 74HC595锁存并输出数据 ,此时第位将显示,其它位全部都不显示。延时一段时间。输出第位的位码, 紧接着输出该位要显示的段码, 然后使 LATCH
4、由跳变到使 74HC595锁存并输出数据 ,此时第位将显示,其它位全部都不显示。延时一段时间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 。输出第位的位码, 紧接着输出该位要显示的段码, 然后使 LATCH 由跳变到使 74HC595锁存并输出数据 ,此时第位将显示,其它位全部都不显示。延时一段时间。如此循环往复,实现位数码管显示的效果。四、操作步骤:()按照IAR MSP430 项目建立与JTAG仿真设置所讲方法建立名称为
5、M13x LED 595 的项目。()将如下程序拷贝粘贴到main.c 文件中。/* / / 描述 ; 在 TY-DIS1(8 位数码管显示模块)上动态扫描显示 4321 / ACLK= n/a, MCLK= SMCLK= default DCO 800k / / 硬件连接:如下图/ MSP430F13x / - / /| XIN|- / | | | / -|RST XOUT|- / | | / | P5.0|-LED_DOUT / | P5.2|-LED_CLK / | P5.4|-LED_LATCH / / 时间: 2007 年 10 月/ / / 硬件电路: MSP430F135 核心
6、实验板 -I型 TY-DIS1(8位数码管显示模块) / 硬件连接:/ / 调试器: MSP430FET 全系列 JTAG仿真器/ 调试软件: IAR Embedded Workbench Version: 3.41A 编译/* #include /4位 LED数码管显示子程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - void LED_595(char SMG1,char SMG2,char SMG3,char SMG4)
7、; /74HC595 串行输出子程序void Led_out(unsigned char X); /LED 数码管段码转换表const unsigned char LED_0_F; void main(void) WDTCTL = WDTPW + WDTHOLD; / Stop watchdogP5DIR =0; /P5 口全部设为输入口P5SEL =0; / 将 P5口所有的管脚设置为一般I/O 口/ 将 P5.0 P5.2 P5.4设置为输出方向P5DIR |= BIT0; P5DIR |= BIT2; P5DIR |= BIT4; for (;) LED_595(4,3,2,1);/ 调
8、用显示子程序(改变参数表,改变显示内容) /- / 4位 LED数码管显示子程序/ / 人口参数: SMG1,SMG2,SMG3,SMG4待显示的数据/void LED_595(char SMG1,char SMG2,char SMG3,char SMG4) char z; / 最高位(最左侧)LED数码管显示 -z = LED_0_FSMG1; Led_out(z); /段码输出z = 0xFE; /位码Led_out(z); /位码输出P5OUT &=(BIT4); /显示输出P5OUT |=BIT4; /-_NOP(); / 断点设置(观察watch)名师资料总结 - - -精品资料欢迎
9、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - / 次高位(左数第2 个) LED数码管显示 -z = LED_0_FSMG2; Led_out(z); /段码输出z = 0xFD; /位码Led_out(z); /位码输出P5OUT &=(BIT4); /显示输出P5OUT |=BIT4; /-_NOP(); / 断点设置(观察watch)/ 次低位(左数第3 位) LED数码管显示 -z = LED_0_FSMG3; Led_out(z); /段码输出z =
10、0xFB; /位码Led_out(z); /位码输出P5OUT &=(BIT4); /显示输出P5OUT |=BIT4; /-_NOP(); / 断点设置(观察watch)/ 最低位(左数第4 位) LED数码管显示 -z = LED_0_FSMG4; Led_out(z); /段码输出z = 0xF7; /位码Led_out(z); /位码输出P5OUT &=(BIT4); /显示输出P5OUT |=BIT4; /-_NOP(); / 断点设置(观察watch) /- / 用于 74HC595的 LED串行移位子程序/ / 人口参数: X待输出的数据/void Led_out(unsigne
11、d char X) unsigned char i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - for(i=8;i0;i-) if (X&0x80) P5OUT |=BIT0; else P5OUT &=(BIT0); X=1; P5OUT &= (BIT2); /P5.2管脚输出低电平P5OUT |= BIT2; /P5.2管脚输出高电平 /- / LED段码转换表0 F /-const unsigned char LE
12、D_0_F = / 0 1 2 3 4 5 6 7 8 9 A b c d E F 不显示 - o(18)H(19)h(20)C(21)0(22)n(23) 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8e,0xFF,0xbf,0xa3,0x89,0x8b,0xc6,0xc0,0xab ; ()按照IAR MSP430 项目编译与 JTAG仿真调试所讲述方法进行项目编译与JTAG调试运行,即可看到程序运行效果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -