实验六 动态数码管实验
一、实验目的
1.熟悉实验软件和硬件,进行正确的接线;
2.编程使得数码管排依次显示01234567
二、实验软硬件
1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板
三、实验原理
动态数码管实验整体图
通过P22、P23、P24控制3-8译码器来对数码管进行位选,通过P0口经过573的驱动控制数码管的段选,通过P13控制573的使能端,为低电平时573才会有输出。
动态数码管硬件图
当一个选通端(E1)为高电平,另二个选通端((/E2))和(/E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。输出为Y0至Y7的非,比如:A2A1A0=110时,则Y6输出端输出低电平信号。
138译码器硬件
四、软件流程图
动态数码管实验程序流程图
五、实验代码
1.#include<reg51.h>
2.
3.#define GPIO_DIG P1
4.
5.sbit LSA=P2^2;
6.sbit LSB=P2^3;
7.sbit LSC=P2^4;
8.
9.unsigned char DisplayData[17]={
10.0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
11.0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
12.
13.void DigDisplay()
14.{
15. unsigned char i;
16. unsigned int j;
17. for(i=0;i<8;i++)
18. {
19. switch(i)
20. {
21. case(0):LSA=0;LSB=0;LSC=0; break;//显示第0位
22. case(1):LSA=1;LSB=0;LSC=0; break;//显示第1位
23. case(2):LSA=0;LSB=1;LSC=0; break;//显示第2位
24. case(3):LSA=1;LSB=1;LSC=0; break;//显示第3位
25. case(4):LSA=0;LSB=0;LSC=1; break;//显示第4位
26. case(5):LSA=1;LSB=0;LSC=1; break;//显示第5位
27. case(6):LSA=0;LSB=1;LSC=1; break;//显示第6位
28. case(7):LSA=1;LSB=1;LSC=1; break;//显示第7位
29. }
30. GPIO_DIG=DisplayData[i];//发送段码
31. j=1000; //控制显示位的保留的时间
32. while(j--);
33. GPIO_DIG=0x00;
34. }
35.}
36.void main(void)
37.{
38. while(1)
39. {
40. DigDisplay();
41. }
42.}
六、实验步骤
1.连接实验相关模块连线
硬件线路图
2.编写动态数码管程序
用三根LSA、LSB和LSC 输出到38译码器中,比如输入000,选中第一个数码管。然后把数据通过P1送出给数码管,然后改数码管显示相应的数字。其后,开始循环选中第二个数码管,送数字,然后第三个…依次循环,每次显示之间间隔一段时间,间隔时间合适便可达到数码管排依次显示01234567的效果。
3.下载动态数码管程序
程序下载界面
4.观察实验现象
实验现象就是随着延时的增加,第一个数码管显示0,然后第一个数码管灭,第二个显示1,之后第二个数码管灭,第三数码管显示2… 间隔时间过小的话的,呈现的效果是8个数码管同时显示01234567。文章来源:https://www.toymoban.com/news/detail-487363.html
七、实验思考
有人说,静态数码管是动态的,动态数码管是静态的。其实这里面的静态动态并不是那样理解的,静态数码管直接是使能的,之后可以往里面写入数值对应的段码,这时就可以显示出相应的数值。动态数码管是一排,通常应该有八个,要用一个38译码器连接它们的使能端。它们的连接相同的数据总线,通过选择,相应的数码管将数字读入显示。它其实是在不停的动作的,只是扫描的比较快,人眼看到的是“静态”的。
这样就可以用3根控制线和8根数据线完成8个数码管的显示。如果这8个数码管用静态的方式显示就需要8*8根线,但51单片机很难可以有这么多IO口资源。即使对于其它种类的单片机来说,64个IO口也是一个不小的开销。
本实验要求并38译码器转换不同状态是时间延长多一点,就出现了第一个数码管显示0,然后灭。第二个数码管显示1,然后灭…这样的效果。文章来源地址https://www.toymoban.com/news/detail-487363.html
到了这里,关于单片机实验六 动态数码管实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!