課程名稱 | 單片機原理及應用 | 實驗課時 | 4 |
實驗項目 | 定時器/計數器實驗 | 實驗時間 | |
指導老師 | 胡國華 | 實驗成績 | |
實驗目的(本次上機實驗所涉及并要求掌握的知識點) | 1、了解定時器的各種工作方式。 2、掌握定時器/計數器的使用和編程方法。 | ||
實驗環境 | Protues仿真軟件 KellC51 集成開發環境 微機1臺 | ||
實驗內容 | 采用12MHZ時鐘頻率的單片機,通過一個開關輸入,觸發定時計數。按下開關10次,計算按鍵的平均時間,并通過數碼管顯示出來。 程序代碼: #include<reg51.h> sbit P1_0=P1^0; unsigned char numcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88}; unsigned char sepcoed[4]={0x01,0x02,0x04,0x08}; unsigned int num=0; void int1() interrupt 1 { num++; TL0=0xb0; TH0=0x3c; } void DelayMS(unsigned int ms) { unsigned char i; while(ms--) for(i=0;i<120;i++); } | ||
void main() { unsigned char i=0; unsigned char dspcode[4]; unsigned long t; P3=numcode; ET0=1; EA=1; TH0=0x3c; TL0=0xb0; TMOD=0x01; while(1) { if(P1_0==0) { TR0=1; i++; P3=numcode; while(P1_0==0); TR0=0; if(i==10) { t=((TH0<<8)+TL0)/1000; t=(t+50*num)/10; dspcode[0]=numcode[(t/1000)%10]^0x80; dspcode[1]=numcode[(t/100)%10]; dspcode[2]=numcode[(t/10)%10]; dspcode[3]=numcode[t%10]; break; } } } While(1) { for(i=0;i<4;i++) { P2=seqcode; P0=dspcode; DelayMS(5); } } } | |||
總結(對上機實驗結果進行分析,上機心得體會及改進意見 | 實驗結果: file:///C:/Users/zyt/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg 總結: 通過這次單片機設計,我不僅加深了對單片機理論的理解,將理論很好的運用到實際當中去,同時也使我認識到自身存在的不足之處。無論是理論上還是遇到問題的處理能力上都還有待提高。這也激發了我今后學習努力學習的興趣。發現問題、提出問題、分析問題、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。 |
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |