欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機T0方式2實現簡單時鐘仿真,keil+protues實現
[打印本頁]
作者:
180303
時間:
2019-3-23 11:34
標題:
單片機T0方式2實現簡單時鐘仿真,keil+protues實現
T0方式2實現簡單電子時鐘仿真試驗,keil+protues實現
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
捕獲.JPG
(198.33 KB, 下載次數: 54)
下載附件
2019-3-23 11:34 上傳
0.png
(11.21 KB, 下載次數: 20)
下載附件
2019-3-24 03:58 上傳
單片機源程序如下:
//按4X4鍵盤的F鍵 進入設定狀態
//E D 鍵是前后移動鍵
//C按鍵是調整數值按鍵
#include "reg52.h"
#define uchar unsigned char
sbit key_h=P1^0;
sbit key_m=P1^1;
sbit key_s=P1^2;
unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段碼表
unsigned int h,m,s,counter;
void delay1ms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<125;j++) //1ms基準延時程序
{
;
}
}
}
void Display_h(unsigned char x)
{
P2=0xfb; //P2.6引腳輸出低電平,DS6點亮
P0=Tab[x/10]; //顯示十位
delay1ms(5);
P2=0xff;
P2=0xf7; //P2.7引腳輸出低電平,DS7點亮
P0=Tab[x%10]; //顯示個位
delay1ms(5);
P2=0xff;
}
void Display_m(unsigned char x)
{
P2=0xef; //P2.6引腳輸出低電平,DS6點亮
P0=Tab[x/10]; //顯示十位
delay1ms(5);
P2=0xff;
P2=0xdf; //P2.7引腳輸出低電平,DS7點亮
P0=Tab[x%10]; //顯示個位
delay1ms(5);
P2=0xff;
}
void Display_s(unsigned char x)
{
P2=0xbf; //P2.6引腳輸出低電平,DS6點亮
P0=Tab[x/10]; //顯示十位
delay1ms(5);
P2=0xff;
P2=0x7f; //P2.7引腳輸出低電平,DS7點亮
P0=Tab[x%10]; //顯示個位
delay1ms(5);
P2=0xff;
}
/*********************初始化子程序**********************/
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
counter=0;
h=12;m=0;s=0;
}
/***************************按鍵調時間************************/
void TZ_h()
{
h++;
if(h>24)
{
h=0;
}
while(key_h!=1);
TR0=1;
}
void TZ_m()
{
m++;
if(m>60)
{
m=0;
}
while(key_m!=1);
TR0=1;
}
void TZ_s()
{
s++;
if(s>60)
{
s=0;
}
while(key_s!=1);
TR0=1;
}
/***************************主程序************************/
void main(void)
{
init();
while(1)
{
Display_h(h);
Display_m(m);
Display_s(s);
if(key_h==0)
delay1ms(20);
if(key_h==0)
{
TR0=0;
TZ_h();
}
if(key_m==0)
delay1ms(20);
if(key_m==0)
{
TR0=0;
TZ_m();
}
if(key_s==0)
delay1ms(20);
if(key_s==0)
{
TR0=0;
TZ_s();
}
}
}
/*************************定時器0的中斷**********************/
void Time0() interrupt 1 using 2 //再次強調中斷子程序執行時間越短越好
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
counter++;
if(counter==20)
{
s++;
counter=0;
if(s==60)
{
m++;
s=0;
if(m==60)
{
h++;
m=0;
if(h==24)
h=0;
}
}
}
}
復制代碼
所有資料51hei提供下載:
簡單時鐘顯示實驗.rar
(51.09 KB, 下載次數: 40)
2019-3-23 11:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
282323559
時間:
2020-4-25 21:56
很不錯的程序和原理圖。
作者:
wakfaf
時間:
2020-12-7 20:14
很不錯的原理圖
作者:
wakfaf
時間:
2020-12-7 20:15
這個想法和創意不錯
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1