找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13314|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机GPIO口输出实验程序 8位七段数码管显示学号

[复制链接]
跳转到指定楼层
楼主
实验二  GPIO口输出实验②(数码管显示)

一、 实验目的

学习单片机GPIO口(如P0、P2口)输出功能和数码管的使用方法(静态扫描和动态扫描)

二、 实验要求

利用8位数码管显示自己学号的后8位(P0为数码管段码值的输出口、P2为数码管位选值的输出口)。

三、 实验原理图
如下图a1

四、 实验内容:


1. 硬件连接

JP10<->J12、JP11<->J16


2. 实验代码

//实验二实验要求:8位共阳数码管显示学号后八位

#include"STC15.h"

typedef unsignedchar u8;

typedef unsignedint u16;

u8 codeSEG_Code[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

u8 codeBit_Code[]=

{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

u8Student_number[]={6,0,1,5,4,0,2,4};

void Pin_Mode(void);

voidSEG7_1Bit_Display(u8 num,u8 Position);

voidDelay_nms(u16 nms);

void main(void)

{

         u8 i=0;

         Pin_Mode();

  while(1)

  {

          SEG7_1Bit_Display(Student_number[i++],8-i);

          Delay_nms(1);

          i=i%8;

  }

}

voidPin_Mode(void)

{

         P0M1=0x00;P0M0=0x00;

         P2M1=0x00;P2M0=0x00;

}

voidSEG7_1Bit_Display(u8 num,u8 Position)

{

         P2=0xff;

         P0=~SEG_Code[num];

         P2=Bit_Code[Position];

}

voidDelay_nms(u16 nms) //??65535nms

{

         u16 i,t;

         for(i=0;i<nms;i++)

         {

                   for(t=0;t<1080;t++);

  }

}


2.实验现象:

8位数码管显示自己学号的后8位(P0为数码管段码值的输出口、P2为数码管位选值的输出口)。

图a2为实验现象。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表