版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目三抽獎(jiǎng)器設(shè)計(jì)任務(wù)五單片機(jī)數(shù)碼顯示抽獎(jiǎng)器任務(wù)描述按動(dòng)抽獎(jiǎng)按鈕,抽獎(jiǎng)器隨機(jī)生成四位編碼,4位LED數(shù)碼管實(shí)時(shí)顯示編碼。再次按下抽獎(jiǎng)按鈕時(shí),抽獎(jiǎng)器停止運(yùn)行,LED數(shù)碼管穩(wěn)定顯示中獎(jiǎng)號(hào)碼。
知識(shí)鏈接定時(shí)/計(jì)數(shù)器中斷隨機(jī)函數(shù)的使用中獎(jiǎng)是一個(gè)隨機(jī)事件,要保證號(hào)碼隨機(jī)性,就必須要求系統(tǒng)產(chǎn)生一個(gè)隨機(jī)碼,以減少重復(fù)。而隨機(jī)碼產(chǎn)生的算法較為復(fù)雜,為較為簡(jiǎn)單的實(shí)現(xiàn)該算法,本設(shè)計(jì)采用C51編譯環(huán)境提供的庫(kù)函數(shù)。使用rand()函數(shù)產(chǎn)生中獎(jiǎng)號(hào)碼,然后送數(shù)碼管顯示。一、定時(shí)/計(jì)數(shù)器的工作原理
定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器。計(jì)數(shù)器每來一個(gè)脈沖,就自動(dòng)加1,,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使相應(yīng)的中斷標(biāo)志位置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。
可見,由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加1計(jì)數(shù)器的計(jì)數(shù)值。
二、51單片機(jī)定時(shí)器結(jié)構(gòu)
定時(shí)/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器THx和TLx組成。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。1、工作方式寄存器TMOD
工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:位名稱GATEM1M0GATEM1M0位地址T1T0
M1M0工作方式說明00方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)器10方式28位自動(dòng)重裝定時(shí)/計(jì)數(shù)器11方式3T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器,T1停止計(jì)數(shù)。1、方式0
方式0為13位計(jì)數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。2、方式1
方式1為16位計(jì)數(shù),由TL0作為低8位,TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)N與計(jì)數(shù)初值X的關(guān)系為:X=216+1-N3、方式2
方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。
計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:X=28+1-N工作方式2特別適合于用作較精確的脈沖信號(hào)發(fā)生器。4、方式3
方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。工作方式3將T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。計(jì)數(shù)器初值的計(jì)算比如說你用的是12MHZ的晶振,那么單片機(jī)的震蕩周期就是1/12μs,狀態(tài)周期是1/6μs,機(jī)器周期是1μs。若我們定時(shí)1ms,初值是多少呢?1ms/1us=1000。也就是要計(jì)數(shù)1000個(gè)數(shù)。所以計(jì)數(shù)初值=216-1000+1(因?yàn)閷?shí)際上計(jì)數(shù)器計(jì)數(shù)到65536才溢出)
=65535-1000+1
=64536
=FC18H?2、控制寄存器TCONTCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如下:TF1(TCON.7):T1溢出中斷請(qǐng)求標(biāo)志位。T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清0。T1工作時(shí),CPU可隨時(shí)查詢TF1的狀態(tài)。所以,TF1可用作查詢測(cè)試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T1運(yùn)行控制位。TR1=1時(shí),T1開始工作;TR1=0時(shí),T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。TF0(TCON.5):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):T0運(yùn)行控制位,其功能與TR1類同。位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址任務(wù)實(shí)施1.硬件電路。2.程序設(shè)計(jì)。1.硬件電路2.程序設(shè)計(jì)#include"reg51.h" /*8051單片機(jī)資源說明*/#include<stdlib.h> /*包含rand()函數(shù)*/#defineucharunsignedchar/*宏定義uchar變量類型*/#defineuintunsignedint
/*宏定義uint變量類型*/ucharcodeBitTab[]={0x7F,0xBF,0xDF,0xEF};/*數(shù)碼管位選掃描信號(hào)*/ucharcodeDispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
/*共陽(yáng)段碼表*/uintrandvalue=0,randtmp;
/*定義抽獎(jiǎng)號(hào)和隨機(jī)值變量*/ucharcount;/*按鍵次數(shù)統(tǒng)計(jì)值*/sbitkey=P3^2; /*按鍵定義*//*外部中斷0初始化*/voidinit(){ EA=1;//打開總中斷 IT0=1;;
//設(shè)置下降沿觸發(fā)EX0=1;;
//打開外部中斷0}/*毫秒延時(shí)程序*/voidmDelay(uintm){ ucharc;;
for(;m>0;m--) for(c=124;c>0;c--);}/*外部中斷0中斷服務(wù)函數(shù)*/voidint_0()interrupt0{EA=0;//關(guān)閉總中斷key=1;//P3.2初始值置1
if(key==0){
mDelay(10); //去抖動(dòng)
if(key==0){
//確認(rèn)有鍵按下
TR0=1;//中斷標(biāo)志位置1count++;//按鍵次數(shù)加1
}
if(count==2){//按鍵第二次按下
TR0=0;//中斷標(biāo)志位清0
count=0;//按鍵次數(shù)清零
}
}
EA=1;}/*中獎(jiǎng)號(hào)碼顯示函數(shù)*/voiddisp_led(){
ucharj,tmp,DispBuf[4];DispBuf[0]=randvalue/1000; /*中獎(jiǎng)號(hào)碼千位*/DispBuf[1]=(randvalue%1000)/100; /*中獎(jiǎng)號(hào)碼百位*/
DispBuf[2]=(randvalue%100)/10; /*中獎(jiǎng)號(hào)碼十位*/DispBuf[3]=randvalue%10; /*中獎(jiǎng)號(hào)碼個(gè)位*/
for(j=0;j<4;j++) /*動(dòng)態(tài)掃描*/
{
tmp=DispBuf[j];
P0=DispTab[tmp];
P2=BitTab[j];
mDelay(1);
P2=0xff; //熄滅數(shù)碼管,消除相互干擾
}}/*********************定義中獎(jiǎng)號(hào)碼產(chǎn)生函數(shù)*************/voidtimer0_init(){
TMOD=0x01;//定時(shí)器相關(guān)初始化操作,定時(shí)器T0被定義為工作方式1(16位定時(shí)/計(jì)數(shù)器)
EA=1;//總中斷打開ET0=1;//定時(shí)器T0啟動(dòng)TH0=0xC5;//15ms變化一次,65535-15000+1=50536=C568H
TL0=0x68;}voidtimer0()interrupt1{
randtmp=rand();//通過rand()函數(shù)產(chǎn)生隨機(jī)值randtmpif(randtmp>=0&&randtmp<10000)//判斷randtmp是否在0-10000
randvalue=randtmp;//將隨機(jī)值賦給抽獎(jiǎng)號(hào)碼randvalueTH0=0xC5;//15ms變化一次
TL0=0x68;}/************************主函數(shù)********************/{init();
timer()_init();
while(1)
disp_led();}知識(shí)總結(jié)1.定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器。當(dāng)加到計(jì)數(shù)器為全1時(shí),再加1,相應(yīng)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影行業(yè)財(cái)務(wù)經(jīng)理的招聘面試問題與答案參考
- 2025四川攀枝花市西區(qū)住房和城鄉(xiāng)建設(shè)局招聘臨聘人員1人備考筆試試題及答案解析
- 2025北京中華護(hù)理學(xué)會(huì)招聘1人參考筆試題庫(kù)及答案解析
- 2026年核兩用品及相關(guān)技術(shù)出口許可申請(qǐng)代理合同
- 2026年福建莆田市教師進(jìn)修學(xué)院新任教研員招聘3人備考考試題庫(kù)及答案解析
- 2025年溫州文成縣人民醫(yī)院招聘康復(fù)技師1人備考筆試試題及答案解析
- 2026年學(xué)術(shù)論文合作撰寫與署名協(xié)議
- 2026年NFT數(shù)字藏品發(fā)行承銷合同
- 2025云南省有色地質(zhì)局三一〇隊(duì)下屬企業(yè)招聘1人備考筆試試題及答案解析
- 2025四川內(nèi)江市隆昌市檔案館招聘1人備考考試題庫(kù)及答案解析
- 提高晨間護(hù)理合格率
- 廉潔校園主題班會(huì)課件
- 房顫患者非心臟手術(shù)麻醉管理
- 具有履行合同所必須的設(shè)備和專業(yè)技術(shù)能力的聲明函8篇
- 2025年中國(guó)高油玉米數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 洗車設(shè)備管理制度
- GB/Z 15166.8-2025高壓交流熔斷器第8部分:應(yīng)用導(dǎo)則
- DB43T1027-2015 近自然森林可持續(xù)經(jīng)營(yíng)技術(shù)規(guī)程
- 二零二五年度綠色生態(tài)住宅小區(qū)建設(shè)工程合同協(xié)議
- 2025-2030全球膜處理系統(tǒng)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 《以平和的心態(tài)迎接期末考試》班會(huì)課件
評(píng)論
0/150
提交評(píng)論