1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2576|回復: 0
打印 上一主題 下一主題
收起左側

了解單片機定時器的各種工作方式和編程方法

[復制鏈接]
跳轉到指定樓層
樓主
ID:360306 發表于 2018-6-27 15:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  
課程名稱
  
單片機原理及應用
實驗課時
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
  
總結:
  
  通過這次單片機設計,我不僅加深了對單片機理論的理解,將理論很好的運用到實際當中去,同時也使我認識到自身存在的不足之處。無論是理論上還是遇到問題的處理能力上都還有待提高。這也激發了我今后學習努力學習的興趣。發現問題、提出問題、分析問題、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表