欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
protues仿真 單片機可調(diào)時鐘
[打印本頁]
作者:
lucky999
時間:
2018-5-28 20:12
標題:
protues仿真 單片機可調(diào)時鐘
可調(diào)時鐘仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(13.23 KB, 下載次數(shù): 39)
下載附件
2018-5-29 01:27 上傳
單片機源程序如下:
#include "reg52.h"
typedef unsigned char u8; // 定義無符號8位類型
typedef unsigned short int u16; // 定義無符號16位類型
typedef unsigned long int u32; // 定義無符號32位類型
sbit Button1 = P1^0; // 模式按鈕
sbit Button2 = P1^1; // 加號按鈕
sbit Button3 = P1^2; // 減號按鈕
u8 DisBuf[8] = { 12,30,17,30,00,17,00,00 }; // 數(shù)碼管初始值無顯示
u8 Hour=12,Min=30,Sec=0;
u32 seconds = 0;
/********************************************************************
* 函數(shù)功能 :延時函數(shù)
* 入口參數(shù) :None
* 出口參數(shù) : Time:延時時間
* 其他描述
********************************************************************/
void Delay_us( u16 Time )
{
while( Time-- );
}
/********************************************************************
* 函數(shù)功能 :數(shù)碼管驅(qū)動
* 入口參數(shù) :None
* 出口參數(shù) : 按鍵識別碼
* 其他描述
********************************************************************/
void Seg_Drive( void )
{
// 共陽極數(shù)碼管的數(shù)碼表
u8 code codebuf[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf,0xff};
u8 i = 0;
for( i=0;i<8;i++ ) // 有8個為共陰極數(shù)碼管
{
P3 = 0xff; // 關閉顯示,消除鬼影
P3 = ~(1<<i); // 輸出片選
P2 = ~codebuf[DisBuf[i]]; // 根據(jù)緩沖區(qū)顯示數(shù)據(jù)且數(shù)碼管顯示數(shù)字2015.09.15
Delay_us( 200 ); // 200 us的時間
}
}
/********************************************************************
* 函數(shù)功能 :數(shù)據(jù)拆分
* 入口參數(shù) :None
* 出口參數(shù) : Num:兩位數(shù)據(jù)
* 其他描述
********************************************************************/
void SegDisp( u8 hour,u8 min,u8 sec )
{
DisBuf[0] = hour/10; //
DisBuf[1] = hour%10; //
DisBuf[3] = min/10; //
DisBuf[4] = min%10; //
DisBuf[6] = sec/10; //
DisBuf[7] = sec%10; //
}
/********************************************************************
* 函數(shù)功能 :ScanKey
* 入口參數(shù) :None
* 出口參數(shù) : 按鍵識別碼
* 其他描述 矩陣按鍵的掃描
********************************************************************/
u8 ScanKey( void )
{
if( 0 == Button1 ) return 'M'; // 返回對數(shù)據(jù)執(zhí)行的模式M
if( 0 == Button2 ) return '+'; // 返回對數(shù)據(jù)執(zhí)行的加數(shù)+
if( 0 == Button3 ) return '-'; // 返回對數(shù)據(jù)執(zhí)行的減數(shù)-
return 0;
}
/********************************************************************
* 函數(shù)功能 :按鍵判斷、消除抖動、松手檢測
* 入口參數(shù) :None
* 出口參數(shù) : 按鍵識別碼
* 其他描述 :
********************************************************************/
u8 ReadKey( void )
{
u8 tmp;
tmp = ScanKey(); // 讀取按鍵值
if( 0 == tmp ) return 0; // 判斷是否有按鍵按下
if( tmp!=ScanKey() ) return 0; // 讀回來的值是否與原來相同
while( 0 != ScanKey() ); // 讀回來的按鍵為0,也就是說是松手檢測
return tmp; // 返回鍵值
}
/********************************************************************
* 函數(shù)功能 :定時器初始化
* 入口參數(shù) :None
* 出口參數(shù) : None
* 其他描述 :
********************************************************************/
void time_init( void )
{
TMOD = 0x01; // 設置定時T0器工作方式1
EA = 1; // 開啟T0總中斷
TR0 = 1; // 啟動T0定時器
ET0 = 1; // 開啟計數(shù)/定時器T0中斷
}
/********************************************************************
* 函數(shù)功能 :用戶程序入口
* 入口參數(shù) :None
* 出口參數(shù) : None
* 其他描述 :
********************************************************************/
void main( void )
{
u8 Num = 0;
static u8 Mode = 0;
time_init(); // 定時器初始化
while( 1 )
{
switch( ReadKey() )
{
// 三種模式:時、分、秒
case 'M': Mode = (Mode+1)%4; break;
// 時鐘調(diào)整 增操作
case '+':
if( 1 == Mode ) // 小時調(diào)整
{
Hour = (Hour+1)%24; // 一天 24 小時
}
else if ( 2== Mode )
{
Min = (Min+1)%60; // 一小時60 分鐘
}
else if ( 3== Mode )
{
Sec = (Sec+1)%60; // 一分鐘 60 秒
}
break;
// 時鐘調(diào)整 減操作
case '-':
if( 1 == Mode ) // 小時調(diào)整
{
Hour == 0 ? Hour =23 : Hour--; // 一天 24 小時
}
else if ( 2== Mode )
{
Min == 0 ? Min =59 : Min--; // 一小時60 分鐘
}
else if ( 3== Mode )
{
Sec == 0 ? Sec =59 : Sec--; // 一分鐘 60 秒
}
break;
}
SegDisp(Hour,Min,Sec); // 數(shù)碼管數(shù)據(jù)拆分
Seg_Drive(); // 數(shù)碼管驅(qū)動
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
Chap6_3(可調(diào)時鐘).rar
(72.38 KB, 下載次數(shù): 26)
2018-5-28 19:52 上傳
點擊文件名下載附件
protues仿真
下載積分: 黑幣 -5
作者:
徐小苗
時間:
2018-6-10 09:33
(⊙o⊙)哇,我還不會
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1