android时钟需求分析,电子时钟设计(单片机)需求分析
電子時鐘設計(單片機)需求分析
電子鐘 目 錄 一、需求分析2 1.功能描述2 2.其他要求2 1.設計思路2 2.器件選型2 三、硬件設計2 1.硬件框圖2 2.硬件模塊2 3.硬件電路圖2 四、軟件設計3 1.軟件框圖3 2.軟件流程圖及其程序代碼3 2.1主程序3 2.2鍵盤掃描子程序5 2.3顯示子程序8 五、測試效果10 六、問題分析10 1、實現過程中遇到的問題及解決方法分析。10 2收獲與體會。11 一、需求分析 1. 功能描述 該電子鐘能實現基本的時鐘顯示,還能調時。調時可以對分時秒的每個位(即個位和十位)調整。 2. 其他要求 當時鐘的時間小于10-00-00時,時的十位為零,不顯示。(如顯示時間:9-45-00) 二、總體設計 1. 設計思路 用89C51單片機實現控制和數據輸出,8位7段LED數碼管作為顯示器件。時間的調整通過外加獨立按鍵來控制。 2. 器件選型 89C51單片機、LED數碼管、獨立按鍵。 三、硬件設計 1. 硬件框圖 2. 硬件模塊 因該設計非常簡單,硬件模塊很少,只有顯示模塊和按鍵模塊。 3. 硬件電路圖 硬件電路如下圖所示: 四、軟件設計 1. 軟件框圖 2. 軟件流程圖及其程序代碼 2.1主程序 1.初始化: 將數字編碼放在數組dis_7[11]中,位選數據放在scan_con[8]中,分、時、秒的個位和十位放在dis_[8]中,分時秒的初始數據放在timedata[3]中。 2.鍵盤掃描: 判斷key0~key3中哪些鍵按下, 當key3未按下時: 1. key0按下,則key0每按下一次,秒加1。 2. key1按下,則key0每按下一次,分加1。 3. key2按下,則key0每按下一次,時加1。 當key3按下時: 1. key0按下,則key0每按下一次,秒的十位加1(即秒加10)。 2. key1按下,則key0每按下一次,分的十位加1。 3. key2按下,則key0每按下一次,時的十位加1。 3.顯示: 通過P2口控制位選,使8個數碼管依次被選中。P0口作為數據的輸出口,循環輸出分、時、秒的各位數據,當P0口輸出某位的數據后,P2口控制位選將給位數碼管選中,從而使該位顯示。同時當時的十位為零時,使p2口輸出為0,使該位不顯示。(即當hour=60) { timedata[0]=0; timedata[1]++; if(timedata[1]=60) { timedata[1]=0; timedata[2]++; if(timedata[2]==24) timedata[2]=0; } }} if(key1==0) {delay1ms(10); while(key1==0); timedata[1]+=10; if(timedata[1]>=60) { timedata[1]=0; timedata[2]++; if(timedata[2]==24) timedata[2]=0; } } if(key2==0) { delay1ms(10); while(key2==0) ; timedata[2]+=10 ; if(timedata[2]>=24) timedata[2]=0; } } } 2.3顯示子程序 顯示子程序流程圖 顯示子程序代碼 display() { char k; dis[7]=timedata[0]%10; dis[6]=timedata[0]/10; dis[4]=timedata[1]%10; dis[3]=timedata[1]/10; dis[1]=timedata[2]%10; dis[0]=timedata[2]/10; //通過模10計算,取出分時秒的個位和十位的值 if(dis[0]==0) P2=0 x00; //時個十位為零時,不顯示 else { P0=dis_7[dis[0]]; P2=scan_con[0]; delay1
總結
以上是生活随笔為你收集整理的android时钟需求分析,电子时钟设计(单片机)需求分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: canvas——绘制图片——动图制作
- 下一篇: icap协议————2014.6.4