找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机学习笔记(四)数码管的静态显示

[复制链接]
跳转到指定楼层
楼主
ID:108531 发表于 2016-3-12 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用单片机控制数码管的静态显示
C语言源程序:
#include<reg52.h> //52单片机头文件包含
#define uint unsigned int  //定义宏uint 为 unsigned int
#define uchar unsigned char   //定义宏uchar 为 unsigned char
sbit wei1=P2^0; //第一位数码管位选
uchar num;//定义无符号字符变量num
uchar code table[]={0xC0,0xF9,0xA4,0xB0,
                        0x99,0x92,0x82,0xF8,
                        0x80,0x90,0x88,0x83,
                        0xC6,0xA1,0x86,0x8E};//在代码区定义无符号table数组(共阳数码管表分别代码了0-F的数码显示
void delay_xMs(uint z);//延时函数原型说明
void main() //入口函数
{
  while(1) //主循环
  {
    for(num=0;num<16;num++)  //for 循环 循环16次 每次num的值加1 控制16个数的数码显示
    {
      wei1=0;//给低电频打开第一个数码显示管
      P0=table[num];//将table数组中的值复制给P0用于数码管显示数字
      delay_xMs(1000);//延时1秒
    }
}
void delay_xMs(uint z) //延时函数 参数1:延时的毫秒数
{
  uint x;//定义无符号整型变量x
  uchar y;//定义无符号字符变量y  
  for(x=z;x>0;x--)//for循环 进行z次
  {
    for(y=0;y<100;y++);//for 循环循环100次
  }
}
//实验效果 单片机数码管的第一位循环从0显示到F


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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