標(biāo)題:
一個簡單的秒表單片機(jī)程序+proteus仿真工程
[打印本頁]
作者:
月默的愛
時間:
2017-6-15 08:36
標(biāo)題:
一個簡單的秒表單片機(jī)程序+proteus仿真工程
這周實訓(xùn)弄得一個簡單的秒表
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(13.22 KB, 下載次數(shù): 44)
下載附件
2017-6-15 18:41 上傳
0.png
(52.04 KB, 下載次數(shù): 51)
下載附件
2017-6-15 18:41 上傳
單片機(jī)源程序如下:
#include <reg51.H>
sbit sta_end=P0^0;
sbit reset=P3^7;
unsigned char code table0[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
unsigned char code table1[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
/*聲明second10用于計數(shù)十分之一秒變化,second1用于記錄秒的個*/ /*位,second2用于記錄秒的十位*/
unsigned int second10,second1,second2;
bit bdata flag; /*以下是設(shè)置延時功能的函數(shù)*/
void delay()
{
unsigned char i,j;
for(i=90;i>0;i--)
for(j=200;j>0;j--);
}
/*以下是設(shè)置時間的函數(shù)*/
void setTime()
{
second10++;
if(second10==10) /*當(dāng)十分之一秒計數(shù)到十后從零重新計時*/
{
second10=0; /*同時秒計時個位加一*/
second1++;
if(second1==10) /*當(dāng)秒計數(shù)個位到十后從零重新計時*/
{
second1=0;
second2++; /*同時秒計時十位加一*/
if(second2==10)
second2=0;
}
}
}
/*以下是向LED管輸數(shù)據(jù)并使之顯示的函數(shù)*/
void dispact()
{
P3=0xfe;
P1=table1[second1];
delay();
P3=0xfd;
P1=table1[second2];
delay();
P2=table0[second10];
}
/*十分之一秒刷新一次,實現(xiàn)十分之一秒進(jìn)一*/
Timer0 () interrupt 1 using 1
{
TH0 = (65535 - 50000)/256;
TL0 = (65535 - 50000)%256;
if(flag)
setTime();
dispact();
}
void main(void)
{
TMOD = 0x01;
TH0 = (65535 - 50000)/256; /*定時器賦初值*/
TL0 = (65535 - 50000)%256;
flag = 0;
EA = 1; /*cpu開中斷*/
TR0 = 1; /*利用定時器0*/
ET0 = 1; /*外部中斷允許*/
do
{
if(!sta_end)
{
if(flag == 0)
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
新建文件夾.rar
(17.34 KB, 下載次數(shù): 12)
2017-6-15 08:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
月默的愛
時間:
2017-6-15 08:45
一個0到99的秒表,可暫停和復(fù)位
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1