




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、郭天祥 十天學(xué)通單片機(jī)“ TX-1C單片機(jī)實(shí)驗(yàn)板”所有課后作業(yè)+答案,特別整理,供單片機(jī)愛(ài)好與學(xué)習(xí)者使用第一講學(xué)單片機(jī)預(yù)備知識(shí)、如何點(diǎn)亮一個(gè)發(fā)光管單片機(jī)能做什么,基本電子知識(shí),如何用TX-1C單片機(jī)學(xué)習(xí)板學(xué)習(xí)單片機(jī),C51知識(shí)簡(jiǎn)介,如何申請(qǐng)免費(fèi)芯片樣品。點(diǎn)亮一個(gè)發(fā)光管, 第二講流水燈設(shè)計(jì)、蜂鳴器發(fā)聲、繼電器控制簡(jiǎn)單延時(shí)程序、子程序調(diào)用、帶參數(shù)子程序設(shè)計(jì)、流水燈同時(shí)蜂鳴器響、如何驅(qū)動(dòng)蜂鳴器,及如何驅(qū)動(dòng)繼電器,集電極開(kāi)路的概念及應(yīng)用。第三講數(shù)碼管顯示的原理、數(shù)碼管的靜態(tài)顯示共陽(yáng)、共陰數(shù)碼管顯示原理、定時(shí)器工作方式介紹、重點(diǎn)講述工作方式2、中斷概念及中斷函數(shù)寫法、外部中斷試驗(yàn)、定時(shí)器中斷應(yīng)用第四講數(shù)
2、碼管的動(dòng)態(tài)顯示原理及應(yīng)用實(shí)現(xiàn)動(dòng)態(tài)掃描概念、定時(shí)器、中斷加深用單片機(jī)的定時(shí)器及中斷設(shè)計(jì)一個(gè)60秒定時(shí)器第五講獨(dú)立鍵盤、矩陣鍵盤的檢測(cè)原理及實(shí)現(xiàn)鍵盤用來(lái)做什么、如何鍵盤檢測(cè)、消抖、鍵盤編碼、帶返回值函數(shù)寫法及應(yīng)用第六講AD、DA的工作原理及實(shí)現(xiàn)、運(yùn)放電路模擬電壓與數(shù)字電壓的關(guān)系、為什么要使用AD及DA、ADC0804的操作方法、DAC0832的操作方法第七講串口通訊原理及操作流程串口通訊工作方式、10位數(shù)據(jù)通訊、波特率概念、如何根據(jù)波特率計(jì)算定時(shí)器初值、串口打印在調(diào)試程序中的應(yīng)用。第八講1602液晶、12864液晶顯示原理及實(shí)現(xiàn)最簡(jiǎn)單液晶工作原理、如何開(kāi)始對(duì)一個(gè)沒(méi)有任何概念的芯片開(kāi)始單片機(jī)的操作第
3、九講IIC總線AT24C02芯片工作原理IIC總線工作原理、目前非常通用的一種通信機(jī)制第十講利用51單片機(jī)的定時(shí)器設(shè)計(jì)一個(gè)時(shí)鐘綜合運(yùn)用51單片機(jī)知識(shí)設(shè)計(jì)一個(gè)可以隨意調(diào)節(jié)時(shí)間、帶整點(diǎn)鬧鈴的時(shí)鐘。(其中用到定時(shí)器、中斷、按鍵、蜂鳴器、數(shù)碼管或串口通信)第十一講用DS12C887時(shí)鐘芯片設(shè)計(jì)一個(gè)高精度時(shí)鐘DS12C887內(nèi)部帶有鋰電池,系統(tǒng)掉電情況下可自行精確走10年,并帶有鬧鐘功能、年、月、日、時(shí)、分、秒等。(本節(jié)由學(xué)生自己設(shè)計(jì)電路)第十二講使用Protell99繪制電路圖全過(guò)程Protell99軟件使用、元件庫(kù)、封裝庫(kù)設(shè)計(jì)、繪制原理圖、錯(cuò)誤檢查、生成PCB、手動(dòng)、自動(dòng)布線、送去加工第十三講Alt
4、ium designer 6.5繪制電路圖全過(guò)程最頂級(jí)電路板設(shè)計(jì)軟件Altium Designer使用、元件庫(kù)、封裝庫(kù)設(shè)計(jì)、繪制原理圖、錯(cuò)誤檢查、生成PCB、手動(dòng)、自動(dòng)布線、送去加工lesson1對(duì)照TX-1C單片機(jī)學(xué)習(xí)板原理圖寫程序,用位操作和總線操作兩種方法完成以下題目1.熟練建立KEIL工程2.點(diǎn)亮第一個(gè)發(fā)光管.3.點(diǎn)亮最后一個(gè)發(fā)光管4.點(diǎn)亮1、3、5、75.點(diǎn)亮二、四、五、六6.嘗試讓第一個(gè)發(fā)光管閃爍7.嘗試設(shè)計(jì)出流水燈程序=lesson2第一個(gè)發(fā)光管以間隔200ms閃爍8個(gè)發(fā)光管由上至下間隔1s流動(dòng),其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時(shí)關(guān)閉蜂鳴器,一直重復(fù)下去。8
5、個(gè)發(fā)光管來(lái)回流動(dòng),第個(gè)管亮100ms,流動(dòng)時(shí)讓蜂鳴器發(fā)出“滴滴”聲。用8個(gè)發(fā)光管演示出8位二進(jìn)制數(shù)累加過(guò)程。8個(gè)發(fā)光管間隔200ms由上至下,再由下至上,再重復(fù)一次,然后全部熄滅再以300ms間隔全部閃爍5次。重復(fù)此過(guò)程。間隔300ms第一次一個(gè)管亮流動(dòng)一次,第二次兩個(gè)管亮流動(dòng),依次到8個(gè)管亮,然后重復(fù)整個(gè)過(guò)程。間隔300ms先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng)三次;再?gòu)闹虚g往兩邊流動(dòng)三次;8個(gè)全部閃爍3次;關(guān)閉發(fā)光管,程序停止。=lesson31、利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。2、利用
6、定時(shí)/計(jì)數(shù)器T1產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)發(fā)光二極管,使8個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為10次/秒(8個(gè)燈依次亮一遍為一個(gè)周期),循環(huán)。3、同時(shí)用兩個(gè)定時(shí)器控制蜂鳴器發(fā)聲,定時(shí)器0控制頻率,定時(shí)器1控制同個(gè)頻率持續(xù)的時(shí)間,間隔300ms依次輸出1,10,50,100,200,400,800,1k(hz)的方波。4、用定時(shí)器以間隔500MS在6位數(shù)碼管上依次顯示0、1、2、3.C、D、E、F,重復(fù)。=lesson41.利用動(dòng)態(tài)掃描方法在六位數(shù)碼管上顯示出穩(wěn)定的654321.2.用動(dòng)態(tài)掃描方法和定時(shí)器1在數(shù)碼管的前三位顯示出秒表,精確到1%秒,即后兩位顯示1%秒,一直循環(huán)下去。3.利用動(dòng)
7、態(tài)掃描和定時(shí)器1在數(shù)碼管上顯示出從765432開(kāi)始以1/10秒的速度往下遞減直至765398并保持顯示此數(shù),與此同時(shí)利用定時(shí)器0以500MS速度進(jìn)行流水燈從上至下移動(dòng),當(dāng)數(shù)碼管上數(shù)減到停止時(shí),實(shí)驗(yàn)板上流水燈也停止然后全部開(kāi)始閃爍,3秒后(用T0定時(shí))流水燈全部關(guān)閉、數(shù)碼管上顯示出“HELLO”。到此保持住。lesson5數(shù)碼管前三位顯示一個(gè)跑表,從000到999之間以1%秒速度運(yùn)行,當(dāng)按下一個(gè)獨(dú)立鍵盤時(shí)跑表停止,松開(kāi)手后跑表繼續(xù)運(yùn)行。(用定時(shí)器設(shè)計(jì)表)。在上題的基礎(chǔ)上,用另外三個(gè)獨(dú)立鍵盤實(shí)現(xiàn)按下第一個(gè)時(shí)計(jì)時(shí)停止,按下第二個(gè)時(shí)計(jì)時(shí)開(kāi)始,按下第三個(gè)是計(jì)數(shù)值清零從頭開(kāi)始。按下16個(gè)矩陣鍵盤依次在數(shù)碼
8、管上顯示1-16的平方。如按下第一個(gè)顯示1,第二個(gè)顯示4.=lesson71.由上位機(jī)發(fā)送1給單片機(jī)時(shí),蜂鳴器以400ms頻率發(fā)聲,發(fā)2時(shí)以200ms頻率發(fā)聲,發(fā)3時(shí)以100ms頻率發(fā)聲,發(fā)4時(shí)關(guān)閑蜂鳴器。1.以2400bps從計(jì)算機(jī)發(fā)送任一字節(jié)數(shù)據(jù),當(dāng)單片機(jī)收到該數(shù)據(jù)后,在此數(shù)據(jù)前加上一序號(hào)然后連同此數(shù)據(jù)一起發(fā)送至計(jì)算機(jī),當(dāng)序號(hào)超過(guò)255時(shí)歸零。2.以16進(jìn)制發(fā)送一個(gè)0-65536之間的任一數(shù),當(dāng)單片機(jī)收到后在數(shù)碼管上動(dòng)態(tài)顯示出來(lái),波特率自定。3. 用AD以1HZ的頻率采集模擬信號(hào),然后轉(zhuǎn)換成數(shù)字量,再將其以1200bps發(fā)送到計(jì)算機(jī),在計(jì)算機(jī)上顯示。4.按下矩陣鍵盤第一行時(shí)以1200bps
9、發(fā)送,1,2,3,4,第二行時(shí)以2400bps發(fā)送5,6,7,8,第三行以4800bps發(fā)送,9,10,11,12,第四行以9600pbs 發(fā)送,13,14,15,16.=Lesson1作業(yè)1用位操作點(diǎn)亮第一個(gè)發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件sbit led1=P10; /單片機(jī)管腳位聲明void main() /主函數(shù)led1=0;/將單片機(jī)P1.0口清零while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。2/ 用總線操作點(diǎn)亮第一個(gè)發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/
10、晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件void main() /主函數(shù)P1=0xfe; /將單片機(jī)P1口的8個(gè)口由高到低分別賦值為11111110while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。3 / / 用位操作點(diǎn)亮最后一個(gè)發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件sbit led8=P17; /單片機(jī)管腳位聲明void main() /主函數(shù)led8=0;/將單片機(jī)P1.7口清零while(1); /程序停止在這里,在后面會(huì)
11、講到為什么這樣寫。4 / 用總線操作點(diǎn)亮最后一個(gè)發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件void main() /主函數(shù)P1=0x7f; /將單片機(jī)P1口的8個(gè)口由高到低分別賦值為01111111while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。5 / 用位操作點(diǎn)亮1,3,5,7發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件sbit led1=P10; /單片機(jī)管腳位聲明sbit led3=P
12、12; /單片機(jī)管腳位聲明sbit led5=P14; /單片機(jī)管腳位聲明sbit led7=P16; /單片機(jī)管腳位聲明void main() /主函數(shù)led1=0;/將單片機(jī)P1.0口清零led3=0;/將單片機(jī)P1.2口清零led5=0;/將單片機(jī)P1.4口清零led7=0;/將單片機(jī)P1.6口清零while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。6 / 用總線操作點(diǎn)亮1,3,5,7發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件void main() /主函數(shù)P1=0xaa; /將單
13、片機(jī)P1口的8個(gè)口由高到低分別賦值為10101010while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。7 / 用位操作點(diǎn)亮2,4,5,6發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件sbit led2=P11; /單片機(jī)管腳位聲明sbit led4=P13; /單片機(jī)管腳位聲明sbit led5=P14; /單片機(jī)管腳位聲明sbit led6=P15; /單片機(jī)管腳位聲明void main() /主函數(shù)led2=0;/將單片機(jī)P1.1口清零led4=0;/將單片機(jī)P1.3口清零led5=0
14、;/將單片機(jī)P1.4口清零led6=0;/將單片機(jī)P1.5口清零while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。8 / 用總線操作點(diǎn)亮2,4,5,6發(fā)光管./ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件void main() /主函數(shù)P1=0xc5; /將單片機(jī)P1口的8個(gè)口由高到低分別賦值為11000101while(1); /程序停止在這里,在后面會(huì)講到為什么這樣寫。9 / 嘗試讓第一個(gè)發(fā)光管閃爍.(程序看不懂沒(méi)關(guān)系,后面章節(jié)會(huì)有詳細(xì)講解)/ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.05
15、92M/*/#include<reg52.h> /52單片機(jī)頭文件sbit led1=P10; /單片機(jī)管腳位聲明void main() /主函數(shù)unsigned int i; /定義一個(gè)int型變量while(1)i=50000; /變量賦初值為50000led1=0;/點(diǎn)亮燈while(i-); /延時(shí)i=50000;led1=1; /熄滅燈while(i-); 9 / 嘗試寫出流水燈程序(程序看不懂沒(méi)關(guān)系,后面章節(jié)會(huì)有詳細(xì)講解)/ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件void main(
16、) /主函數(shù)unsigned int i; /定義一個(gè)int型變量while(1)i=50000; /變量賦初值為50000P1=0xfe;/點(diǎn)亮第一個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0xfd;/點(diǎn)亮第二個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0xfb;/點(diǎn)亮第三個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0xf7;/點(diǎn)亮第四個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0xef;/點(diǎn)亮第五個(gè)燈while(i-); /延時(shí)i=50000;
17、/變量賦初值為50000P1=0xdf;/點(diǎn)亮第六個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0xbf;/點(diǎn)亮第七個(gè)燈while(i-); /延時(shí)i=50000; /變量賦初值為50000P1=0x7f;/點(diǎn)亮第八個(gè)燈while(i-); /延時(shí) Lesson 21 / 第一個(gè)發(fā)光管以間隔200ms閃爍/ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbi
18、t led1=P10; /單片機(jī)管腳位聲明void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main() /主函數(shù)while(1) /大循環(huán)led1=0; /點(diǎn)亮小燈delay(200); /延時(shí)200毫秒led1=1;/熄滅小燈delay(200); /延時(shí)200毫秒2 / 8個(gè)發(fā)光管由上至下間隔1s流動(dòng)/,其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響/,滅時(shí)關(guān)閉
19、蜂鳴器,一直重復(fù)下去。/ 適用 TX-1C單片機(jī)實(shí)驗(yàn)板/ 晶振為11.0592M/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit beep=P23;void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;x>
20、;0;x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a;a=0xfe;while(1) /大循環(huán)P1=a; /點(diǎn)亮小燈beep=0; /開(kāi)啟蜂鳴器delay(500); /延時(shí)500毫秒P1=0xff; /熄滅小燈beep=1; /關(guān)閉蜂鳴器delay(500); /延時(shí)500毫秒a=_crol_(a,1); /將a變量循環(huán)左移一位3 /* 8個(gè)發(fā)光管來(lái)回流動(dòng),每個(gè)管亮100ms,流動(dòng)時(shí)讓蜂鳴器發(fā)出"滴滴"聲。*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h&
21、gt; /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit beep=P23;void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a,i;while(1) /大循環(huán)a=0xfe; /賦初值for(i=0;i<8;i+) /左
22、移P1=a; /點(diǎn)亮小燈beep=0; /開(kāi)啟蜂鳴器delay(50); /延時(shí)50毫秒beep=1; /關(guān)閉蜂鳴器delay(50); /再延時(shí)50毫秒a=_crol_(a,1); /將a變量循環(huán)左移一位a=0x7f;for(i=0;i<8;i+) /右移P1=a; /點(diǎn)亮小燈beep=0; /開(kāi)啟蜂鳴器delay(50); /延時(shí)50毫秒beep=1; /關(guān)閉蜂鳴器delay(50); /再延時(shí)50毫秒a=_cror_(a,1); /將a變量循環(huán)右移一位4 /* 用8個(gè)發(fā)光管演示出8位二進(jìn)制數(shù)累加過(guò)程。*/*/#include<reg52.h> /52單片機(jī)頭文件#inc
23、lude <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a;while(1) /大循環(huán)a+;P1=a;delay(200);5 /* 8個(gè)發(fā)光管間
24、隔200ms由上至下,再由下至上,再重復(fù)一次,然后全部熄滅再以300ms間隔全部閃爍5次。重復(fù)此過(guò)程*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;x>0;
25、x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a,i,j;while(1) /大循環(huán)for(j=0;j<2;j+)a=0xfe; /賦初值for(i=0;i<8;i+) /左移P1=a; /點(diǎn)亮小燈delay(200); /延時(shí)200毫秒a=_crol_(a,1); /將a變量循環(huán)左移一位a=0x7f;for(i=0;i<8;i+) /右移P1=a; /點(diǎn)亮小燈delay(200); /延時(shí)200毫秒a=_cror_(a,1); /將a變量循環(huán)右移一位P1=0xff; /全部熄滅for(j=0;j<10;j+)delay(3
26、00); /延時(shí)P1=P1; /全部取反10次,既閃爍5次 6 /* 間隔300ms第一次一個(gè)管亮流動(dòng)一次,第二次兩個(gè)管亮流動(dòng),依次到8個(gè)管亮,然后重復(fù)整個(gè)過(guò)程。*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延
27、時(shí)500ms.uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a,i,j;while(1) /大循環(huán)a=0xfe; /賦初值for(j=0;j<8;j+)for(i=0;i<8-j;i+) /左移P1=a; /點(diǎn)亮小燈delay(200); /延時(shí)200毫秒a=_crol_(a,1); /將a變量循環(huán)左移一位a=_crol_(a,j); /補(bǔ)齊,方便下面的左移一位P1=0xff; /全部關(guān)閉a=a<<1;/左移一位讓多一個(gè)燈點(diǎn)亮7 /* 間隔300ms先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;
28、一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng)三次;再?gòu)闹虚g往兩邊流動(dòng)三次;8個(gè)全部閃爍3次;關(guān)閉發(fā)光管,程序停止。*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義void delay(uint z) /延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如delay(200);大約延時(shí)200ms./delay(500);大約延時(shí)500ms.uint x,y;for(x=z;
29、x>0;x-)for(y=110;y>0;y-);void main() /主函數(shù)uchar a,i,j;for(j=0;j<3;j+) /寄偶交替P1=0x55; /點(diǎn)亮小燈delay(300); /延時(shí)300毫秒P1=0xaa;delay(300); /延時(shí)300毫秒for(j=0;j<3;j+) /流水燈a=0xfe;for(i=0;i<8;i+)P1=a; /點(diǎn)亮小燈delay(300); /延時(shí)300毫秒a=_crol_(a,1);P1=0xff;for(j=0;j<3;j+) /從兩邊往中間流P1=0x7e; /點(diǎn)亮小燈delay(300); /
30、延時(shí)300毫秒P1=0xbd;delay(300); /延時(shí)300毫秒P1=0xdb; /點(diǎn)亮小燈delay(300); /延時(shí)300毫秒P1=0xe7;delay(300); /延時(shí)300毫秒P1=0xff;for(j=0;j<3;j+) /從中間往兩邊流P1=0xe7; /點(diǎn)亮小燈delay(300); /延時(shí)300毫秒P1=0xdb;delay(300); /延時(shí)300毫秒P1=0xbd; /點(diǎn)亮小燈delay(300); /延時(shí)300毫秒P1=0x7e;delay(300); /延時(shí)300毫秒P1=0xff;for(j=0;j<6;j+) /全部閃爍P1=P1; /點(diǎn)亮小燈
31、delay(300); /延時(shí)300毫秒P1=0xff;while(1);Lesson31 /* 利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。?*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit P1_0=P10;uchar tt;void main() /主函數(shù)TMOD=0x01;/設(shè)置定時(shí)器0為工
32、作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/開(kāi)總中斷ET0=1;/開(kāi)定時(shí)器0中斷TR0=1;/啟動(dòng)定時(shí)器0while(1);/等待中斷產(chǎn)生void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(tt=20)tt=0;P1_0=P1_0;2 /* 利用定時(shí)/計(jì)數(shù)器T1產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)發(fā)光二極管,使8個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為10次/秒(8個(gè)燈依次亮一遍為一個(gè)周期),循環(huán)。設(shè)晶振頻率為12MHz。*/*/#inclu
33、de<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit P1_0=P10;uchar tt,a;void main() /主函數(shù)TMOD=0x01;/設(shè)置定時(shí)器0為工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/開(kāi)總中斷ET0=1;/開(kāi)定時(shí)器0中斷TR0=1;/啟動(dòng)定時(shí)器0a=0xfe;while(1);/等待中斷產(chǎn)生v
34、oid timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(tt=2)tt=0;P1=a;a=_crol_(a,1);3 /* 同時(shí)用兩個(gè)定時(shí)器控制蜂鳴器發(fā)聲,定時(shí)器0控制頻率,定時(shí)器1控制同個(gè)頻率持續(xù)的時(shí)間,間隔2s依次輸出1,10,50,100,200,400,800,1k(hz)的方波?設(shè)晶振頻率為12MHz。*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsi
35、gned int /宏定義#define uchar unsigned char /宏定義sbit beep=P23;uchar tt;uint fre,flag;void main() /主函數(shù)fre=50000;beep=0;TMOD=0x11;/設(shè)置定時(shí)器0,定時(shí)器1為工作方式1TH0=(65536-fre)/256;TL0=(65536-fre)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;/開(kāi)總中斷ET0=1;/開(kāi)定時(shí)器0中斷ET1=1;TR1=1;TR0=1;/啟動(dòng)定時(shí)器0while(1);/等待中斷產(chǎn)生void tim
36、er0() interrupt 1 /定時(shí)器0中斷TR0=0; /進(jìn)中斷后先把定時(shí)器0中斷關(guān)閉,防止內(nèi)部程序過(guò)多而造成中斷丟失TH0=(65536-fre)/256;TL0=(65536-fre)%256;tt+;if(flag<40) /以下幾個(gè)if分別用來(lái)選取不同的頻率if(tt=10)tt=0;fre=50000;beep=beep;if(flag>=40&&flag<80)tt=0;fre=50000;beep=beep;if(flag>=80&&flag<120)tt=0;fre=10000;beep=beep;if(fl
37、ag>=120&&flag<160)tt=0;fre=5000;beep=beep;if(flag>=160&&flag<200)tt=0;fre=2500;beep=beep;if(flag>=200&&flag<240)tt=0;fre=1250;beep=beep;if(flag>=240&&flag<280)tt=0;fre=625;beep=beep;if(flag>=280&&flag<320)tt=0;fre=312;beep=beep;if
38、(flag>=320&&flag<360)tt=0;fre=156;beep=beep;TR0=1;void timer1() interrupt 3 /定時(shí)器1中斷用來(lái)產(chǎn)生2秒時(shí)間定時(shí)TH1=(65536-50000)/256;TL1=(65536-50000)%256;flag+;if(flag=360) flag=0; fre=50000; 4 /* 用定時(shí)器以間隔500MS在6位數(shù)碼管上依次顯示0、1、2、3.C、D、E、F,重復(fù)。設(shè)時(shí)鐘頻率為12M*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intri
39、ns.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit dula=P26; /數(shù)碼管段選鎖存端sbit wela=P27; /數(shù)碼管位選鎖存端uchar num,tt;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void main()num=0;tt=0;TMOD=0x01;/設(shè)置定時(shí)器0為工作方式1TH0=(65536-
40、50000)/256;TL0=(65536-50000)%256;EA=1;/開(kāi)總中斷ET0=1;/開(kāi)定時(shí)器0中斷TR0=1;/啟動(dòng)定時(shí)器0dula=1;P0=0x3f; /給段開(kāi)始送顯示0。dula=0;/關(guān)閉段選鎖存端,防止開(kāi)始時(shí)出現(xiàn)亂碼。wela=1;/11101010P0=0xc0; / 打開(kāi)六個(gè)數(shù)碼管位選wela=0;while(1)if(tt=10) /每進(jìn)入10次中斷即為500ms,執(zhí)行一次顯示變化。 tt=0;num+;if(num=16)num=0;dula=1;P0=tablenum;dula=0;void exter0() interrupt 1 / 定時(shí)器0中斷TH0=
41、(65536-50000)/256;TL0=(65536-50000)%256;tt+;Lesson41 /* 利用動(dòng)態(tài)掃描方法在六位數(shù)碼管上顯示出穩(wěn)定的654321.時(shí)鐘頻率為11.0592M*/*/#include<reg52.h> /52單片機(jī)頭文件#include <intrins.h> /包含有左右循環(huán)移位子函數(shù)的庫(kù)#define uint unsigned int /宏定義#define uchar unsigned char /宏定義sbit dula=P26; /數(shù)碼管段選鎖存端sbit wela=P27; /數(shù)碼管位選鎖存端uchar code tab
42、le= /數(shù)碼管顯示編碼0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void display(uchar,uchar,uchar,uchar,uchar,uchar); /函數(shù)聲明void delay(uint);void main()while(1)display(6,5,4,3,2,1); /始終顯示void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six) dula=1;P0=tableone; /送段數(shù)據(jù)dula=0;P0=0xff;/送位數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存后段選
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉(cāng)儲(chǔ)物流信息化管理與運(yùn)輸服務(wù)合同
- 跨國(guó)公司境內(nèi)股權(quán)轉(zhuǎn)讓及稅務(wù)籌劃協(xié)議
- 生態(tài)柴油購(gòu)銷合同范本與規(guī)范
- 成都租賃合同(含租客租后押金退還)
- 民宿民宿風(fēng)格改造裝修合同
- 互聯(lián)網(wǎng)保險(xiǎn)保本投資協(xié)議
- 北京二手房交易稅費(fèi)減免咨詢與代理合同
- 餐飲店拆伙協(xié)議及員工安置合同
- 時(shí)尚購(gòu)物廣場(chǎng)門面房租賃與品牌合作合同
- 腫瘤的影像學(xué)診斷
- AI技術(shù)賦能中小學(xué)教學(xué)模式創(chuàng)新與實(shí)踐研究
- 山西焦煤集團(tuán)招聘筆試題庫(kù)2025
- 2025汾西礦業(yè)井下操作技能人員招聘300人(山西)筆試參考題庫(kù)附帶答案詳解析
- 健康吃肉課件
- 《國(guó)家糧食和物資儲(chǔ)備局垂直管理系統(tǒng)重大生產(chǎn)安全事故隱患判定標(biāo)準(zhǔn)(試行)》解讀與培訓(xùn)
- 2025至2030年中國(guó)速凍豆角行業(yè)投資前景及策略咨詢報(bào)告
- (2025)交管12123駕駛證學(xué)法減分題庫(kù)含答案大全
- 學(xué)校食堂合同范本模板
- 2025年衛(wèi)生類事業(yè)單位(醫(yī)學(xué)基礎(chǔ)知識(shí))公開(kāi)招聘必刷題庫(kù)(300題)
- 淫羊藿甙項(xiàng)目可行性研究報(bào)告模板范文(立項(xiàng)備案項(xiàng)目申請(qǐng))
- 下水改造合同協(xié)議
評(píng)論
0/150
提交評(píng)論