STC89c52单片机制作数码管千位计数器代码
时间: 2023-12-14 12:39:20 浏览: 97
以下是STC89c52单片机制作数码管千位计数器的代码:
```c
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
sbit D7=P1^6;
sbit D8=P1^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint i)
{
while(i--);
}
void display(uchar num)
{
LSA=1;LSB=1;LSC=1;
P1=table[num/1000];
LSA=0;delay(100);
LSA=1;LSB=0;LSC=1;
P1=table[(num%1000)/100];
LSB=1;delay(100);
LSA=0;LSB=0;LSC=1;
P1=table[(num%100)/10];
LSC=0;delay(100);
LSA=1;LSB=1;LSC=0;
P1=table[num%10];
LSC=1;delay(100);
}
void main()
{
uint i=0;
while(1)
{
display(i++);
if(i==10000) i=0;
}
}
```
在这个程序中,使用了 STC89c52 单片机和共阳数码管。其中,`table` 数组存储了 0-9 的数码管显示码,`display` 函数用于将一个四位整数在数码管上显示。在主函数中,通过不断更新计数器 `i` 并将其传入 `display` 函数来实现数码管千位计数器的功能。
阅读全文