📄 led-8-2.c
字号:
//数码管显示程序
#define uchar unsigned char
#define uint unsigned int
#include<iom16v.h>
//7段译码
#include"encoder.h"
//写74hc595
#include"ch595.h"
#define ls138a 7
#define ls138b 6
#define ls138c 5
#define ls138en 4
unsigned long a1,a2,a3,a4,a5,a6,a7,a8;
//按10进制分解各个位
void disa(unsigned long data)
{
a8=data/10000000;
a7=(data-a8*10000000)/1000000;
a6=(data-a8*10000000-a7*1000000)/100000;
a5=(data-a8*10000000-a7*1000000-a6*100000)/10000;
a4=(data-a8*10000000-a7*1000000-a6*100000-a5*10000)/1000;
a3=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000)/100;
a2=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000-a3*100)/10;
a1=(data-a8*10000000-a7*1000000-a6*100000-a5*10000-a4*1000-a3*100-a2*10);
}
//主函数
main()
{
unsigned long aa=10000;
uint bb=0;
DDRA=0xff; //初始化端口A
PORTA=0xff;
while(1)
{
disa(aa); //提取aa的各位
sendbyte(a1);//数码管1
PORTA&=~(1<<ls138a);
PORTA&=~(1<<ls138b);
PORTA&=~(1<<ls138c);
s_ms(600);
sendbyte(a2);//数码管2
PORTA|=(1<<ls138a);
PORTA&=~(1<<ls138b);
PORTA&=~(1<<ls138c);
s_ms(600);
sendbyte(a3);//数码管3
PORTA&=~(1<<ls138a);
PORTA|=(1<<ls138b);
PORTA&=~(1<<ls138c);
s_ms(600);
sendbyte(a4);//数码管4
PORTA|=(1<<ls138a);
PORTA|=(1<<ls138b);
PORTA&=~(1<<ls138c);
s_ms(600);
sendbyte(a5);//数码管5
PORTA&=~(1<<ls138a);
PORTA&=~(1<<ls138b);
PORTA|=(1<<ls138c);
s_ms(600);
sendbyte(a6);//数码管6
PORTA|=(1<<ls138a);
PORTA&=~(1<<ls138b);
PORTA|=(1<<ls138c);
s_ms(600);
sendbyte(a7);//数码管7
PORTA&=~(1<<ls138a);
PORTA|=(1<<ls138b);
PORTA|=(1<<ls138c);
s_ms(600);
sendbyte(a8);//数码管8
PORTA|=(1<<ls138a);
PORTA|=(1<<ls138b);
PORTA|=(1<<ls138c);
aa++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -