本設計應用STC90C516RD+芯片作為核心,采用C語言進行編程實現以下功能:時,分,秒,年,月,日的顯示及調整。 該設計的電子時鐘系統由時鐘電路、LED顯示電路和按鍵調整電路三部分組成。 我們共設計四個獨立按鍵,包括一個模式鍵(key1)、一個增加建(key2)、一個減小鍵(key3)和開始鍵(因為模式鍵中含有暫停(原因有兩點:下面介紹)的功能)。當按下模式鍵,選定要調整的數字的時候,“加”“減”可以幫我們調到我們所需的狀態。 一、鍵盤選擇: (1)矩陣式 行列式鍵盤的原理就是每一行線與每一列線的交叉地方不相通,而是接上一個按鍵,通過按鍵來接通。 特點:以省出不少的I/O口資源,編寫相對復雜點,適用于鍵數比較多的情況。 (2)獨立式 獨立式鍵盤是指各個按鍵相互獨立地連接到各自的單片機的I/O口,I.O口只需要做輸入口就能讀到所有按鍵。 特點:電路簡單,程序容易寫,適用于按鍵數較少的情況。 故,我們選擇獨立式鍵盤,且接P3口。 二、LCD1602 RS:寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。接P2^6。 RW:為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。因為我們不從液晶讀取任何數據,只向其寫入命令和顯示數據,因此此端始終為寫狀態,即低電平接地,RW=0。 接P2^5。 E:使能控制端,高電平1時讀取信息 接P2^7。 三、上面提到暫停的原因: - 暫停,時鐘將不再走動,這樣方便調節所需要的時間。
- 如果不暫停會發現進行減法的時候,減到零或一時,有可能會發生亂碼,暫停之后就會發現進行減法時不會發生亂碼。(實踐中發現)
該程序中有完善的體制,包括潤平年、最大天數的判定以及時分秒,年月日位置的確定及寫入等等。詳細請看程序中具體實現操作。 該作品中,通過按鍵來實現光標移動來確定調整位置是一大亮點。 |