单片机动态显示程序
好酷屋教程网小编为您收集和整理了单片机动态显示程序的相关教程:我这边有一个前几天做的,看看合适不。数码管接在P0口,段选和位选接在P2口。#include<reg52.h>#defineucharunsignedchar#defineuintunsignedin
我这边有一个前几天做的,看看合适不。
数码管接在P0口,段选和位选接在P2口。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,bai,shi,ge;
sbit wela=P2^0;
sbit dula=P2^7;
void disply(uchar bai,uchar shi,uchar ge);
uchar code tabledu[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void delay(uint);
void main()
{
temp=250;
numdu=0;
bai=temp/100;
shi=temp%100/10; //分解数字到个位,十位,百位
ge=temp%10;
while(1)
{
disply(bai,shi,ge);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void disply(uchar bai,uchar shi,uchar ge)
{
dula=1;
P0=tabledu[bai]; //段选送数,百位的段选码
dula=0;
P0=0xff; //消影
wela=1;
P0=0xfe; //位选送数,百位的段选码
wela=0;
delay(10);
dula=1;
P0=tabledu[shi]; //段选送数,十位的段选码
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(10); //位选送数,十位的段选码
dula=1;
P0=tabledu[ge]; //段选送数,个位的段选码
dula=0;
wela=1;
P0=0xff;
P0=0xfd;
wela=0;
delay(10); //位选送数,个位的段选码
}
以上就是好酷屋教程网小编为您收集和整理的单片机,程序,动态相关内容,如果对您有帮助,请帮忙分享这篇文章^_^
本文来源: https://www.haoku5.com/youxi/64158b658aaed4184f0e1a3f.html
相关推荐