1
實驗環(huán)境介紹
? 實驗環(huán)境
本次實驗是通過Proteus+MDK一起模擬完成的。Proteus模擬實際電路,MDK編譯代碼。Proteus版本是8.9,MDK版本是5.36。需要注意的是,Proteus需要安裝8.8以上版本,器件庫里面要支持STM32F401VE。
?實驗?zāi)康?/strong>
通過定時器3TIM3,計數(shù),8位數(shù)碼管,一個3*4的鍵盤來實現(xiàn)一個簡單的可設(shè)置電子時鐘。
2
硬件電路

Proteus電路
? 主控:
STM32F401VE,Cotex-M4內(nèi)核,主頻最大84MHz,程序空間512KB,F(xiàn)LASH空間96KB。
? 時鐘:
沒有用外部晶振,因為Proteus只支持一種時鐘樹,所以這里采用內(nèi)部晶振,做實驗夠了。
? 復(fù)位電路:
沒有配置相關(guān)外設(shè)電路,因為Proteus默認(rèn)是有電壓的,默認(rèn)是復(fù)位的,畢竟是仿真軟件,主要是驗證程序功能。
? IO說明:
我們利用PD0PD7以及PC0PC7控制數(shù)碼管、PE0~PE6控制鍵盤輸入。
3
代碼概述

MDK代碼目錄結(jié)構(gòu)
? 代碼目錄概述:
USER文件夾:主要包含應(yīng)用函數(shù)的.C文件以及中斷函數(shù).C。
HARDWARE文件夾:主要包含底層硬件驅(qū)動的.C文件。
CORE文件夾:主要包含STM32的啟動的.S文件。
FWLIB文件夾:主要包含ST官方提供的標(biāo)準(zhǔn)外設(shè)驅(qū)動.C文件(不是HAL庫哦)。
? 代碼內(nèi)容概述:
↓↓↓ 按鍵識別代碼如下:
//判斷按鍵是否按下
u8 iskeyinput(void)
{
GPIOE->ODR=0x000f;
if((KEYPORT&0x000f)==0x000f)
return 0;
else
return 1;
}
//按鍵識別
u8 key_identify(void)
{
u8 linecode=0,rowcode=0;
u8 i;
u8 scancode=0x00ef;
for(i=0;i<4;i++)
{
GPIOE->ODR=scancode;
if((KEYPORT&0x000f)==0x000f)
{
rowcode++;
scancode=scancode<<1|1;
}
else
{
if(line0==0)linecode=0;
if(line1==0)linecode=3;
if(line2==0)linecode=6;
if(line3==0)linecode=9;
break;
}
}
return linecode+rowcode;
}
//等待按鍵松開
void wait_key_release(u8 x)
{
while(1)
{
GPIOE->ODR=0x000f;
if(x==0)seg_disp2();
else seg_disp1(f);
if((KEYPORT&0x000f)==0x000f)
break;
}
}
//按鍵掃描
u8 key_Scan(u8 x)
{
u8 keycode=0;
if(iskeyinput())
{
delay_us(100);
if(iskeyinput())
{
keycode=key_identify()+1;
wait_key_release(x);
}
}
return keycode;
}
↓↓↓ 電子時鐘事件計時代碼如下:
void get_time(void)
{
if(bs>99)
{
bs=0;s++;
if(s==60)
{
s=0;m++;
if(m==60)
{
m=0;h++;
if(h==24)
{h = 0;}
date[0]=h/10;
date[1]=h%10;
}
date[2]=m/10;
date[3]=m%10;
}
date[4]=s/10;
date[5]=s%10;
}
date[6]=bs/10;
date[7]=bs%10;
}
4
實驗結(jié)果展示

電子時鐘效果

設(shè)置效果
可以看到,電子時鐘能夠正常計時并且通過*號按鍵切換成設(shè)置狀態(tài),再通過#號按鍵切換成正常計時狀態(tài),至此可設(shè)置電子時鐘實驗完成?。?!
審核編輯:劉清
-
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1890瀏覽量
93683 -
定時器
+關(guān)注
關(guān)注
23文章
3358瀏覽量
121635 -
PROTEUS仿真
+關(guān)注
關(guān)注
30文章
309瀏覽量
36777 -
電子時鐘
+關(guān)注
關(guān)注
11文章
203瀏覽量
25591 -
STM32F401
+關(guān)注
關(guān)注
1文章
16瀏覽量
10849
發(fā)布評論請先 登錄
用單片機實現(xiàn)電子時鐘設(shè)計方案
電子時鐘
有人懂匯編的電子時鐘嗎
如何實現(xiàn)用12864顯示一個漢字的電子時鐘
用STC89C52做一個簡單電子時鐘
電子時鐘設(shè)計電子時鐘程序相關(guān)資料下載
使用51單片機設(shè)計的電子時鐘程序資料免費下載

實現(xiàn)一個簡單的可設(shè)置電子時鐘設(shè)計
評論