单片机实验五 静态数码管实验"/>
单片机实验五 静态数码管实验
实验五 静态数码管实验
一、实验目的
1.熟悉实验软件和硬件,进行正确的接线;
2.数码管依次显示数字0-F;
二、实验软硬件
1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板
三、实验原理
本实验用到的数码管是共阳极的数码管,数码管本质上和8个一排的二极管没有差别,只不过数码管的二极管按照一定规律进行排列。
数码管原理图
数字0-F对应的数码管要写入的数据分别为:0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79和0x71。其中0X3F为0011 1111,因为数码管对应的是共阴极,需要用到非运算(~),将其翻转为1100 0000,这时对应数码管的0显示。
四、软件流程图
静态数码管实验程序流程图
五、实验代码
1.#include<reg51.h>
2.#define GPIO_DIG P2
3.unsigned char code DIG_CODE[16]=
4.{0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
5. 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
6.
7.void Delay10ms(unsigned int c)
8.{
9. unsigned char a, b;
10. for (;c>0;c--)
11. {
12. for (b=38;b>0;b--)
13. {
14. for (a=130;a>0;a--);
15. }
16. }
17.}
18.void main(void)
19.{
20. unsigned char i = 0;
21. while(1)
22. {
23. GPIO_DIG = ~DIG_CODE[i];
24. i++;
25. if(i == 16)
26. {
27. i = 0;
28. }
29. Delay10ms(100);
30. }
31.}
六、实验步骤
1.连接试验相关模块
硬件连线图
2.编写静态数码管程序
循环向P2口写入数码管显示0-F的数据。
3.下载静态数码管程序
程序下载界面
4.观察实验现象
数码管循环显示0-F,两个数字显示间隔时间为1s,基本正确。
七、实验思考
数码管显示0-F。首先,要明确这个静态数码管是共阴极还是共阳极的,因为这决定了输入数码管的段码。共阴极数码管的段码的非是共阳极数码管的段码。
如果事先不知道是共阳极还是共阳极,可以将共阴极的1的段码写入,然后看是否显示正确,如果显示正确那么就是共阴极的。反之是共阳极的数码管,可以加非(^),之后再写入。
更多推荐
单片机实验五 静态数码管实验
发布评论