機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
單片機(jī)編程入門白金教程系列之三
單片機(jī)編程入門白金教程系列之三
 更新時(shí)間:2008-8-19 13:45:41  點(diǎn)擊數(shù):33
【字體: 字體顏色
  只要滿足題目要求,方法越簡(jiǎn)單越好。由于單片機(jī)I/O資源足夠,所以雙數(shù)碼管可接成靜態(tài)顯示方式,兩個(gè)共陰數(shù)碼管分別接在P1(秒十位)和P2(秒個(gè)位)口,它們的共陰極都接地,安排兩個(gè)按鍵接在P3.2(十位數(shù)調(diào)整)和P3.3(個(gè)位數(shù)調(diào)整)上,為了方便計(jì)時(shí),選用12MHz的晶體。為了達(dá)到精確計(jì)時(shí),選用定時(shí)器方式2,每計(jì)數(shù)250重載一次,即250us,定義一整數(shù)變量計(jì)數(shù)重載次數(shù),這樣計(jì)數(shù)4000次即為一秒。定義兩個(gè)字節(jié)變量S10和S1分別計(jì)算秒十位和秒個(gè)位。編得如下程序:

#include <at89x52.h>
Code unsigned char Seg7Code[16]= //用十六進(jìn)數(shù)作為數(shù)組下標(biāo),可直接取得對(duì)應(yīng)的七段編碼字節(jié)
// 0 1 2 3 4 5 6 7 8 9 A b C d E F
{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
void main( void )
{
unsigned int us250 = 0;
unsigned char s10 = 0;
unsigned char s1 = 0;
unsigned char key10 = 0; //記憶按鍵狀態(tài),為1按下
unsigned char key1 = 0; //記憶按鍵狀態(tài),為1按下
//初始化定時(shí)器 Timer0
TMOD = (TMOD & 0xF0) | 0x02;
TH1 = -250; //對(duì)于8位二進(jìn)數(shù)來說,-250=6,也就是加250次1時(shí)為256,即為0
TR1 = 1;
while(1){ //----------循環(huán)1
P1 = Seg7Code[ s10 ]; //顯示秒十位
P2 = Seg7Code[ s1 ]; //顯示秒個(gè)位
while( 1 ){ //----------循環(huán)2
//計(jì)時(shí)處理
if( TF0 == 1 ){
TF0 = 0;
if( ++us250 >= 4000 ){
us250 = 0;
if( ++s1 >= 10 ){
s1 = 0;
if( ++s10 >= 6 ) s10 = 0;
}
break; //結(jié)束“循環(huán)2”,修改顯示
}
}
//按十位鍵處理
P3.2 = 1; //P3.2作為輸入,先要輸出高電平
if( key10 == 1 ){ //等松鍵
if( P3.2 == 1 ) key10=0;
}
else{ //未按鍵
if( P3.2 == 0 ){
key10 = 1;
if( ++s10 >= 6 ) s10 = 0;
break; //結(jié)束“循環(huán)2”,修改顯示
}
}
//按個(gè)位鍵處理
P3.3 = 1; //P3.3作為輸入,先要輸出高電平
if( key1 == 1 ) //等松鍵
{ if( P3.3 == 1 ) key1=0; }
else { //未按鍵
if( P3.3 == 0 ){ key1 = 1;
if( ++s1 >= 10 ) s1 = 0;
break; //結(jié)束“循環(huán)2”,修改顯示
}
}
} //循環(huán)2’end
}//循環(huán)1’end
}//main’end
  • 上一篇: AT89S51是什么?
  • 下一篇: 單片機(jī)編程入門白金教程系列之四
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1