《單片機(jī)原理 定時(shí)器計(jì)數(shù)器-單片機(jī)原理-實(shí)驗(yàn)資料報(bào)告材料》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)原理 定時(shí)器計(jì)數(shù)器-單片機(jī)原理-實(shí)驗(yàn)資料報(bào)告材料(9頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、word
師學(xué)院計(jì)算機(jī)系
實(shí)驗(yàn)報(bào)告
〔2014—2015學(xué)年第2學(xué)期〕
課程名稱 單片機(jī)原理
實(shí)驗(yàn)名稱 定時(shí)器與計(jì)數(shù)器
專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)〔非師〕
年 級(jí) 12級(jí)
學(xué)號(hào) B2012102147 王 秋
指導(dǎo)教師 烈君
實(shí)驗(yàn)日期 2015.5.27
實(shí)驗(yàn)?zāi)康模?
1. 通過實(shí)驗(yàn)學(xué)習(xí)單片機(jī)的定時(shí)器計(jì)數(shù)器功能,學(xué)會(huì)編程實(shí)現(xiàn)單片機(jī)的定時(shí)與計(jì)數(shù)功能;
2. 掌握中斷處
2、理程序的編程方法;
3. 掌握查表的編程方法。
實(shí)驗(yàn)要求:
1. 在Proteus軟件中畫好51單片機(jī)最小核心電路,包括復(fù)位電路和晶振電路
2. 在電路中增加按鍵、Led燈、八位7段數(shù)碼管(共陽/共陰自選),將P2口作數(shù)據(jù)輸出口與7段數(shù)碼管數(shù)據(jù)引腳相連 ,P3引腳輸出位選控制信號(hào)。
3. 實(shí)現(xiàn)單按鍵控制Led燈閃爍 〔 用定時(shí)器實(shí)現(xiàn)1s變化一次〕
4. 實(shí)現(xiàn)0-99碼表 〔 按一次開始計(jì)時(shí)1S加一,第二次停止,第三次清零 〕
實(shí)驗(yàn)設(shè)備〔環(huán)境〕:
計(jì)算機(jī)、Proteus ISIS 7 Professional應(yīng)用程序、Keil應(yīng)用程序
實(shí)驗(yàn)容:
使用部定時(shí)器與外部中斷實(shí)現(xiàn)
3、:
1. 實(shí)現(xiàn)單按鍵控制Led燈閃爍 〔1s變化一次)
2. 實(shí)現(xiàn)0-99碼表 〔 按一次開始計(jì)時(shí)1S加一,第二次停止,第三次清零 〕
參考原理圖
實(shí)驗(yàn)步驟、實(shí)驗(yàn)結(jié)果與分析:
1、使用Proteus ISIS 7 Professional
2、在“庫〞下拉菜單中,選中“拾取元件〞〔快捷鍵P〕,分別選擇以下元件:AT89C51、LED-YELLOW、BUTTON、7SEG-MPX8-CA-BLUE、RESPACK-8。
3、構(gòu)建仿真電路
4、創(chuàng)建一個(gè)Keil應(yīng)用程序:新建一個(gè)工程項(xiàng)目文件;為工
4、程選擇目標(biāo)器件〔AT89C52〕;為工程項(xiàng)目創(chuàng)建源程序文件并輸入程序代碼;保存創(chuàng)建的源程序項(xiàng)目文件;把源程序文件添加到項(xiàng)目中。
5、把用戶程序經(jīng)過編譯后生成的HEX文件添加到仿真電路中的處理器中〔編輯元件→文件路徑〕
程序代碼:
1. 實(shí)現(xiàn)單按鍵控制Led燈閃爍 〔1s變化一次)
#include"reg51.h"
#define uchar unsigned char
uchar Time_50ms;
sbit Led1=P1^0;
uchar Mode;
void delay(int x) //定義時(shí)間間隔
{
while(x--);
}
5、
void LedFlash() interrupt 1 //溢出中斷的中斷服務(wù)程序
{
if(Mode==1)
{
Time_50ms++; //每50ms累加1次
TH0=15526/0xff; //計(jì)數(shù)重新賦初值
TL0=15526%0xff;
if(Time_50ms>=20) //當(dāng)為1s時(shí)
{
Led1=~Led1;
Time_50ms=0;
}
}
}
void int0() interrupt 0 //外部中斷0的中斷服務(wù)程序
{
6、 Mode=(Mode+1)%2; //更改按鍵標(biāo)志值
if(Mode==0)
{
Led1=0;
Time_50ms=0;
}
}
void main()
{
IE=0x83; //允許定時(shí)器0中斷和外部中斷0
TMOD=0x01; //定時(shí)方式,設(shè)定工作方式1
TCON=0x11; //打開定時(shí)器0和設(shè)置外部中斷為邊沿觸發(fā)
TH0=(65536-50000)/256; //定時(shí)器T0的高8位賦初值
TL0=(65536-50000)%256; //定時(shí)器T0的低8位賦初值
Led
7、1=0;
while(1);
}
圖1 單按鍵控制Led燈閃爍,1s變化一次
2. 實(shí)現(xiàn)0-99碼表 〔 按一次開始計(jì)時(shí)1S加一,第二次停止,第三次清零 〕
#include"reg51.h"
#define uchar unsigned char
#define disp_null 10
uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//共陽數(shù)碼管顯示0~9的段碼表
uchar DispBuf[8];
uchar sec=0;
u
8、char Time_50ms;
uchar Mode=2;
void delay(int x) //定義時(shí)間間隔
{
while(x--);
}
void PutTime()
{
DispBuf[7]=sec%10;
DispBuf[6]=sec/10;
DispBuf[5]=disp_null;
DispBuf[4]=disp_null;
DispBuf[3]=disp_null;
DispBuf[2]=disp_null;
DispBuf[1]=disp_null;
DispBuf[0]=disp
9、_null;
}
void display()
{
uchar i;
for(i=0;i<8;i++)
{
P2=0;
P2=1<
10、5526%0xff;
if(Time_50ms>=20) //當(dāng)為1s時(shí)
{
Time_50ms=0;
sec++;
if(sec>99)
sec=0;
PutTime();
}
}
}
void int0() interrupt 0 //外部中斷0的中斷服務(wù)程序
{
Mode=(Mode+1)%3; //更改按鍵標(biāo)志值
if(Mode==1);
if(Mode==2)
{
Time_50ms=0;
sec=0;
PutTime();
11、 }
}
void main()
{
P1=0x00;
IE=0x83; //允許定時(shí)器0中斷和外部中斷0
TMOD=0x01; //定時(shí)方式,設(shè)定工作方式1
TCON=0x11; //打開定時(shí)器0和設(shè)置外部中斷為邊沿觸發(fā)
TH0=(65536-50000)/256; //定時(shí)器T0的高8位賦初值
TL0=(65536-50000)%256; //定時(shí)器T0的低8位賦初值
while(1)
display();
}
圖2 0-99碼表,按一次,開始計(jì)時(shí)1S加1,第二次停止
圖3 0-99碼
12、表,按第三次清零
實(shí)驗(yàn)總結(jié)〔包括過程總結(jié)、心得體會(huì)與實(shí)驗(yàn)改良意見等〕:
過程總結(jié):
1. 在實(shí)現(xiàn)單按鍵控制Led燈閃爍 〔 用定時(shí)器實(shí)現(xiàn)1s變化一次〕時(shí),由單片機(jī)部定時(shí)器1,按方式1工作,即作為16位定時(shí)器使用每0.05秒鐘T1溢出中斷一次,按鍵采用中斷實(shí)現(xiàn)。
2. 51單片機(jī)的外部中斷INTx(INT0和INT1)可以用程序控制為電平觸發(fā)或負(fù)邊沿觸發(fā),通過編程對(duì)定時(shí)器/計(jì)數(shù)器控制存放器TCON中的IT0和IT1位進(jìn)展清“0〞或置“1〞。假如ITx〔X=0,1〕為0,如此外部中斷INTx程控為電平觸發(fā),由INTx引腳上所檢測(cè)到的低電平觸發(fā);假如ITX=1,如此外部中斷INTx由負(fù)邊
13、沿觸發(fā)。
心得體會(huì):
1. 實(shí)現(xiàn)0-99碼表 〔 按一次開始計(jì)時(shí)1S加一,第二次停止,第三次清零 〕在Proteus軟件中畫好51單片機(jī)最小核心電路,包括復(fù)位電路和晶振電路,在電路中增加按鍵、Led燈、八位7段數(shù)碼管(共陽/共陰自選),將P2口作數(shù)據(jù)輸出口與7段數(shù)碼管數(shù)據(jù)引腳相連 ,P3引腳輸出位選控制信號(hào)。
2.通過實(shí)驗(yàn)學(xué)習(xí)單片機(jī)的定時(shí)器計(jì)數(shù)器功能,學(xué)會(huì)了編程實(shí)現(xiàn)單片機(jī)的定時(shí)與計(jì)數(shù)功能;掌握了中斷處理程序的編程方法;掌握查表的編程方法。
指導(dǎo)教師評(píng)語:
成績(jī)?cè)u(píng)定
教師簽字
年月日
備注:
注:1、報(bào)告的項(xiàng)目或設(shè)置,可根據(jù)實(shí)際情況加以補(bǔ)充和調(diào)整
2、教師批改學(xué)生實(shí)驗(yàn)報(bào)告應(yīng)在學(xué)生提交實(shí)驗(yàn)報(bào)告10日
9 / 9