单片机实验五 静态数码管实验

编程入门 行业动态 更新时间:2024-10-06 04:11:40

<a href=https://www.elefans.com/category/jswz/34/1769836.html style=单片机实验五 静态数码管实验"/>

单片机实验五 静态数码管实验

实验五 静态数码管实验

一、实验目的

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的段码写入,然后看是否显示正确,如果显示正确那么就是共阴极的。反之是共阳极的数码管,可以加非(^),之后再写入。

更多推荐

单片机实验五 静态数码管实验

本文发布于:2024-02-28 00:14:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767168.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单片机   静态   数码管

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!