|
50黑幣
跟著教程學(xué)習(xí)51單片機(jī),在做練習(xí)的時(shí)候,碰到了難題,原本是想做個(gè)秒表功能,但是只可以一直顯示0.00,不能夠自增計(jì)數(shù)(設(shè)想是從1.00-9.99自增循環(huán)計(jì)數(shù)),搞到半夜也搞不定,測(cè)試過(guò),直接賦值某個(gè)數(shù)字,是可以靜態(tài)顯示的,但就是不自增,只好求教各位前輩!能編譯,沒有錯(cuò)誤,有兩個(gè)警告
單片機(jī)源程序如下:
/*********************************************************************
**********************************************************************
程序名稱:
程序版本:V1.0
作 者:
編寫時(shí)間:2022年4月6日
硬件支持:
接口說(shuō)明:
修改日志:
N0.1:
**********************************************************************/
/*
**********************************************************************
* 頭文件包含/SFR定義
**********************************************************************
*/
#include<reg52.h>
/*
**********************************************************************
* 本地?cái)?shù)據(jù)類型/宏定義
**********************************************************************
*/
//typedef signed char int8; //8位有符號(hào)字符型
//typedef signed int int16; //16位有符號(hào)整型
//typedef signed long int32; //32位有符號(hào)長(zhǎng)整型
typedef unsigned char uchar; //8位無(wú)符號(hào)字符型
typedef unsigned int uint; //16位無(wú)符號(hào)整型
//typedef unsigned long ulong; //32位無(wú)符號(hào)長(zhǎng)整型
/*
**********************************************************************
* 單片機(jī)IO口位定義
**********************************************************************
*/
sbit duan=P2^6;
sbit wei=P2^7;
/*
**********************************************************************
* 本地全局變量/數(shù)組定義
**********************************************************************
*/
uchar code tableduan[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar code tableduana[]={0xbf,0x86,0xdb,0xcf,0xe6, //帶小數(shù)點(diǎn)的數(shù)組0-9
0xed,0xfd,0x87,0xff,0xef};
uint num,dis;
/*
**********************************************************************
* 函數(shù)原型聲明
**********************************************************************
*/
display(uint);
delay(uchar);
/*********************************************************************
*函數(shù)名稱:main
*函數(shù)功能:主函數(shù)
*函數(shù)調(diào)用:
*參數(shù)列表:無(wú)
*返 回 值:無(wú)
*結(jié) 果:
*備 注:
*********************************************************************/
void main(void)
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TR0=1;
while(1)
{
if(num==20)
{
num=0;
if(dis==1000)
dis=0;
dis++;
}
display(dis);
}
}
void time0() interrupt 1
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
num++;
}
display(uint dis)
{
wei=1;
P0=0xff;
wei=0;
P0=tableduana[dis/100];
duan=1;
duan=0;
wei=1;
P0=0xfe;
wei=0;
delay (10);
P0=tableduan[dis%100/10];
duan=1;
duan=0;
wei=1;
P0=0xfd;
wei=0;
delay (10);
P0=tableduan[dis%100%10];
duan=1;
duan=0;
wei=1;
P0=0xfb;
wei=0;
delay (10);
}
delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=200;b>0;b--);
}
|
|