文章目录
- 前言
- 一、静态数码管原理
- 二、静态数码管显示
- 1.单个数码管 奇数偶数
- 2.显示任意四位数 0000-9999
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
课程需要:
提示:以下是本篇文章正文内容,下面案例可供参考
一、静态数码管原理
共阴共阳 数码管段码表
二、静态数码管显示
1.单个数码管 奇数偶数
代码如下(示例):
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
uchar code seg[]={0xc0,0xa4,0x99,0x82,0x80,0xf9,0xb0,0x92,0xf8,0x90,0x01};void delayms(uint);void main(void)
{
uchar i;
while(1){out=seg[i];delayms(900);i++;if(seg[i]==0x01)i=0;}}void delayms(uint j)
{
uchar i;
for(;j>0;j--){i=250;while(--i);i=249;while(--i);}
}
这个程序还有很多可以优化的地方
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
uchar code seg[]={0xc0,0xa4,0x99,0x82,0x80,0xf9,0xb0,0x92,0xf8,0x90};void delayms(uint);void main(void)
{
uchar i;
while(1){out=seg[i];delayms(900);i++;if(i==10)i=0;}}void delayms(uint j)
{
uchar i;
for(;j>0;j--){i=250;while(--i);i=249;while(--i);}
}
2.显示任意四位数 0000-9999
重点:任意四位数,如何去显示:
代码如下(示例):
#include <reg51.h> //1.头文件
#define LED_PORT P0
unsigned char ta[]={0xc0,0xF9,0xa4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90};
void display(unsigned int num)
{}
void delay(unsigned int ms)
{unsigned int i;i=ms;while(i--);
}void main() //2.主函数
{char i;// -128 - 127
// unsigned char t; // 0-255
// int i; //-32768 -32767
// unsigned int i;//0-65535unsigned int num=0;//死循环上面的代码只执行一次//设备硬件初始化while(1)//3.死循环 {display(num);// 死循环里面的代码就反复执行// 0000 9999 // 1234
//千位 1234/1000 1
//百位 1234/100%10 2
//十位 1234/10%10 3
//个位 1234%10 4 LED_PORT=ta[num/1000];P1=ta[num/100%10];P2=ta[num/10%10];P3=ta[num%10];num++;if(num>9999){num=0;}delay(600);}
}
总结
学习了数码管静态显示的原理,练习了显示单个数码管 和四个数码管的显示,尤其是添加了任意四位数的显示,让数码管的显示更加实用。静态数码管显示,原理简答、程序简单,就是费io资源。