简单的数码管计数显示


外加代码。。。
可以根据此来修改一下,以便更好地读懂代码。
#include <stc12c5a60s2.h> //头文件
#define uchar unsigned char
#define uint unsigned int
sbit ls138_a=P2^0;
sbit ls138_b=P2^1;
sbit ls138_c=P2^2;
char seg_dis[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9
void delay(uchar m);
void main()
{
long seg_data;
char seg_tab[8];
char count=0;
uchar i;
seg_data=0;
while(1)
{
if(++count)
{
if(count==1)
{
seg_data++;
count=0;
}
}
/*seg_tab[0]=seg_dis[seg_data%10000/1000];
seg_tab[1]=seg_dis[seg_data%1000/100];
seg_tab[2]=seg_dis[seg_data%100/10];
seg_tab[3]=seg_dis[seg_data%10];*/
seg_tab[0]=seg_dis[seg_data%100000000/10000000]; // 千万
seg_tab[1]=seg_dis[seg_data%10000000/1000000]; // 百万
seg_tab[2]=seg_dis[seg_data%1000000/100000]; // 十万
seg_tab[3]=seg_dis[seg_data%100000/10000]; // 万位
seg_tab[4]=seg_dis[seg_data%10000/1000]; // 千位
seg_tab[5]=seg_dis[seg_data%1000/100]; // 百位
seg_tab[6]=seg_dis[seg_data%100/10]; // 十位
seg_tab[7]=seg_dis[seg_data%10]; // 个位
for(i=0;i<8;i++)
{
P0 = seg_tab[i];
switch(i)
{
case 0: ls138_c=0; ls138_b=0; ls138_a=0;break;
case 1: ls138_c=0; ls138_b=0; ls138_a=1;break;
case 2: ls138_c=0; ls138_b=1; ls138_a=0;break;
case 3: ls138_c=0; ls138_b=1; ls138_a=1;break;
case 4: ls138_c=1; ls138_b=0; ls138_a=0;break;
case 5: ls138_c=1; ls138_b=0; ls138_a=1;break;
case 6: ls138_c=1; ls138_b=1; ls138_a=0;break;
case 7: ls138_c=1; ls138_b=1; ls138_a=1;break;
default : break;
}
delay(10);
}
}
}
void delay(uchar m)//延时函数
{
uchar i,j;
for(i=0;i<m;i++)
{
for(j=0;j<200;j++)
{
;
}
}
}
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |





我要赚赏金
