版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)應(yīng)用技術(shù)上機(jī)試題題目一:用外中斷0控制P1口8位LED循環(huán)點(diǎn)亮,即按下一次按鍵,點(diǎn)亮一個(gè)燈,再按下按鍵左移一位點(diǎn)亮,如此循環(huán)。設(shè)計(jì)并仿真出結(jié)果。題目二:自行設(shè)計(jì)出一組數(shù)據(jù),并讓P2口的8位LED按照設(shè)計(jì)的這組數(shù)據(jù)順序進(jìn)行花樣點(diǎn)亮,間隔0.2秒,仿真出結(jié)果。題目三:自行設(shè)計(jì)一個(gè)按鍵上具有三個(gè)功能,即第一次按下按鍵時(shí),第一個(gè)燈點(diǎn)亮;第二次按下按鍵,第二個(gè)燈點(diǎn)亮;第三次按下按鍵,第三個(gè)燈點(diǎn)亮;第四次按下按鍵,又是第一個(gè)燈點(diǎn)亮,如此循環(huán),仿真出結(jié)果。題目四:用P2口作輸出口,接一位LED數(shù)碼管,編寫程序,使數(shù)碼管循環(huán)顯示09這十個(gè)數(shù),并用定時(shí)器T0實(shí)現(xiàn)數(shù)碼管顯示間隔0.5秒,設(shè)計(jì)并仿真出結(jié)果。題
2、目五:用P2口作輸出口,接一個(gè)8位的數(shù)碼管排,采用動態(tài)顯示的方法,編寫程序,是這個(gè)數(shù)碼管排同時(shí)顯示07這八個(gè)數(shù),設(shè)計(jì)并仿真出結(jié)果。題目六:用單片機(jī)U1通過串行口TXD端將一段流水燈控制碼以串行口工作方式一發(fā)送至單片機(jī)U2的RXD,U2再利用該段控制碼流水點(diǎn)亮其P1口上的8位LED。設(shè)計(jì)并編寫程序,其中發(fā)送程序已知,根據(jù)發(fā)送程序編寫出接收程序,仿真出結(jié)果。數(shù)據(jù)發(fā)送程序:#include<reg51.h> /包含單片機(jī)寄存器的頭文件Unsigned char code Tab =0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F;/流水燈控制碼,該數(shù)組被定義
3、為全局變量/*函數(shù)功能:向PC發(fā)送一個(gè)字節(jié)數(shù)據(jù)*/void Send(unsigned char dat) SBUF=dat; while(TI=0) ; TI=0;/*函數(shù)功能:延時(shí)約150ms*/ void delay(void) unsigned char m,n; for(m=0;m<200;m+) for(n=0;n<250;n+) ; /*函數(shù)功能:主函數(shù)*/void main(void) unsigned char i; TMOD=0x20; /TMOD=0010 0000B,定時(shí)器T1工作于方式2 SCON=0x40; /SCON=0100 0000B,串口工作方式
4、1 PCON=0x00; /PCON=0000 0000B,波特率9600 TH1=0xfd; /根據(jù)規(guī)定給定時(shí)器T1賦初值 TL1=0xfd; /根據(jù)規(guī)定給定時(shí)器T1賦初值 TR1=1; /啟動定時(shí)器T1 while(1) for(i=0;i<8;i+) /模擬檢測數(shù)據(jù) Send(Tabi); /發(fā)送數(shù)據(jù)i delay(); /每150ms發(fā)送一次檢測數(shù)據(jù) 題目7數(shù)碼管顯示4*4鍵盤矩陣按鍵,編程實(shí)現(xiàn)數(shù)碼管顯示按鍵的鍵值0F。采用AT89S51單片機(jī)最小系統(tǒng),P3口外接矩陣式鍵盤接口電路,P1口外接共陰型七段數(shù)碼管,如圖所示。電路中共有16個(gè)按鍵,按4×4的矩陣式排列,鍵號依
5、次為0F。單片機(jī)的P3.0P3.3為輸出口,連接4條列線;P3.4P3.7為輸入口,連接4條行線。將下列程序補(bǔ)充完整,并仿真出結(jié)果。#include <reg51.h> #define uchar unsigned char#define uint unsigned intuchar key;unsigned char code disp_code=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code key_code=0xee,
6、0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7, 0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 ;void delayms(uint ms) uchar t; while(ms-) for(t = 0; t < 120; t+); uchar keyscan() /鍵盤掃描程序 uchar scan1,scan2,keycode,j; P3=0xf0; scan1=P3; if(scan1&0xf0)!=0xf0) /判鍵是否按下 delayms(30); /延時(shí)30ms scan1=P3; (?)void keydown(
7、) /判斷是否有鍵按下 P3=0x0f; if(P3&0x0f)!=0x0f) keyscan(); P0=disp_codekey; /在數(shù)碼管上顯示鍵值 main() P0 = 0xbf; P3 = 0xff; while(1) keydown(); 題目8采用AT89S51單片機(jī),利用定時(shí)/計(jì)數(shù)器T0通過P1.1引腳輸出周期為25Hz的方波。同時(shí)進(jìn)行測量,信號從P3.5引腳輸入,P0、 P2口做輸出口,接一個(gè)8位LED數(shù)碼管,編寫程序,測出從P3.5引腳輸入的方波信號的頻率并顯示出來。補(bǔ)充下列程序并仿真出結(jié)果。#include<reg51.h> #include &l
8、t;stdio.h>#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff; /定義數(shù)組存放顯示數(shù)據(jù)的編碼uchar display_data8=0,0,0,0,0,0,0,0; /定義數(shù)組存放顯示數(shù)據(jù)的各位uchar c1,b1; sbit P1_1=P11; void delay(void) /延時(shí) uchar i; for(i=500;i>0;i-);void display() /顯示程序 uchar i,k; k=0x01; f
9、or(i=0;i<8;i+) P2=0; P0=display_codedisplay_datai; P2=k; k=k<<1;delay(); P2=0;void convert() /轉(zhuǎn)換程序( ?)void timer1(void) interrupt 3 /定時(shí)器1中斷服務(wù)程序 c1+; void timer0(void) interrupt 1 /定時(shí)器0中斷服務(wù)程序 TH0=0xb1; /裝入時(shí)間常數(shù)TL0=0xe0;P1_1=!P1_1;/P1.1取反,從P1.1引腳輸出25Hz的方波信號,通過導(dǎo)線連接/到P3.5引腳輸入,以方便調(diào)試程序。若使用其它信號源,則去
10、掉即可。if (b1=49)convert();c1=0;/將計(jì)數(shù)值清零b1=0;TH1=0;TL1=0;else b1+;void main(void) /主函數(shù)P0_1=0;c1=0;b1=0;TH1=0;TL1=0;TMOD=0x51;TH0=0Xb1;TL0=0Xe0;IE=0x8a;TCON=0x50;while(1)display();題目9用AT89S51單片機(jī)芯片和D/A轉(zhuǎn)換器DAC0832組成系統(tǒng),通過程序設(shè)計(jì),控制實(shí)現(xiàn)簡易波形發(fā)生器,能根據(jù)需要,通過按鍵選擇輸出三角波、方波、鋸齒波三種波形,并顯示到示波器上。補(bǔ)充下列程序并仿真出結(jié)果。#include <reg51.h
11、>#define uchar unsigned char#define uint unsigned int#define DAC0832 P2 /將DAC0832定義為P2口;#define ALL 65536 /將ALL定義為65536;#define Fosc 12000000 /頻率為12Muchar TH_0,TL_0,flag1,flag=0;uint FREQ=100,num; /起始頻率設(shè)定為100HZfloat temp; /*端口設(shè)置*/sbit cs=P36;sbit change=P32; /*初始化函數(shù)*/void init() TMOD=0X01; /設(shè)定工作模
12、式 1 temp=ALL-Fosc/12.0/FREQ; /定時(shí)器初值計(jì)算 TH_0=(uint)temp/256; TL_0=(uint)temp%256; EA=1; /開總中斷 EX0=1; /開外部中斷 IT0=1; /設(shè)定下降沿有效工作方式 ET0=1; /設(shè)定定時(shí)器工作在定時(shí)方式 TR0=1; /開定時(shí)器中斷/*切換波形函數(shù)*/void changefreq(void) ? /*三角波發(fā)生函數(shù)*/void sanjiaobo(void) for(num=0;num<255;num+) cs=0;DAC0832=num;cs=1; for(num=255;num>0;-n
13、um) cs=0;DAC0832=num;cs=1; /*方波發(fā)生函數(shù)*/void fangbo(void) cs=0;DAC0832=0XFF;cs=1; for(num=0;num<255;num+); cs=0;DAC0832=0X00;cs=1; for(num=255;num>0;num-); /*鋸齒波發(fā)生函數(shù)*/void juchibo(void) cs=0;DAC0832=+num;cs=1; /*外部中斷服務(wù)函數(shù)*/void ext0() interrupt 0 changefreq(); /引用頻率改變函數(shù) /*定時(shí)器中斷函數(shù)*/void timer0() in
14、terrupt 1 ? /*主函數(shù)*/void main() init(); while(1); 題目10用AT89S51作為控制核心,外接8×8矩陣式LED,編寫程序,使8×8矩陣式LED循環(huán)顯示,時(shí)間間隔為1s。補(bǔ)充下列程序并仿真出結(jié)果。#include “reg51.h”#define uchar unsigned charunsigned char code tab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code dispcode38= ?;unsigned int count; / 定義計(jì)數(shù)變量
15、uchar ta, tb; void main(void) TMOD=0x01; / 設(shè)定定時(shí)器0工作方式1, 處于定時(shí)狀態(tài) TH0=(65536-2000)/256; TL0=(65536-2000)%256; TR0=1; / 啟動定時(shí)器0 ET0=1; / 開放定時(shí)器0 中斷 EA=1; / 允許全局中斷 while(1) ; void t0(void) interrupt 1 using 0 ? 題目11用AT89S51作為控制核心,設(shè)計(jì)一個(gè)12翻一減1計(jì)數(shù)的程序,要求將下列程序補(bǔ)充完整,自行設(shè)計(jì)硬件電路圖,并仿真出最終結(jié)果,即數(shù)碼管先顯示12間隔一定的時(shí)間減一顯示數(shù)字,直到顯示出0,
16、又回到12再開始顯示。#include <reg51.h>#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;uchar time=12,0,0,0; /定義計(jì)數(shù)初值void delay(void) /延時(shí)uchar i;for(i=250;i>0;i-); void display() /顯示程序?void calc() /計(jì)數(shù)程序time0-;if(time0=0)time0
17、=12;void main(void) /主函數(shù)uchar i;while(1)for(i=0;i<250;i+)display(); /先顯示calc(); /再計(jì)算題目十二用AT89S51單片機(jī)作為控制核心,利用定時(shí)/計(jì)數(shù)器T0中斷方式,工作在工作方式0狀態(tài)下,通過P1.0引腳輸出周期為2ms的方波,自行設(shè)計(jì)硬件電路圖,并設(shè)計(jì)出源程序,仿真出結(jié)果。題目十三用AT89S51單片機(jī)作為控制核心,設(shè)計(jì)一個(gè)簡易數(shù)字電子時(shí)鐘,將下列程序補(bǔ)充完整,并作出仿真。#include<reg51.h> /頭文件#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90; /存放顯示數(shù)字的編碼uchar time=0,0,0,0; /定義數(shù)組,存放小時(shí)、分、秒的計(jì)數(shù)值 void delay05ms(void) /延時(shí)程序 uchar i; for(i=250;i>0;i-); void display()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年餐飲配送行業(yè)食品安全責(zé)任合同3篇
- 二零二五版綜合安全解決方案與保安勞務(wù)合同2篇
- 二零二五版搬家服務(wù)與物流數(shù)據(jù)共享合同樣本3篇
- 二零二五版房地產(chǎn)代理銷售合同示范文本解讀3篇
- 二零二五年度水上樂園供水及排水系統(tǒng)承包合同2篇
- 二零二五版影視制作合同:規(guī)定電影制作的流程與投資分配3篇
- 二零二五年度食堂物流配送服務(wù)合同2篇
- 二零二五年特種車輛銷售與操作培訓(xùn)服務(wù)合同3篇
- 二零二五版體育場館承包經(jīng)營合同模板2篇
- 二零二五版寶鋼職工社會保障配套合同3篇
- 2024年水利工程高級工程師理論考試題庫(濃縮400題)
- 淋巴瘤病理診斷基礎(chǔ)和進(jìn)展周小鴿
- 增強(qiáng)現(xiàn)實(shí)技術(shù)在藝術(shù)教育中的應(yīng)用
- TD/T 1060-2021 自然資源分等定級通則(正式版)
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀
- 倉庫智能化建設(shè)方案
- 海外市場開拓計(jì)劃
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
- 幼兒數(shù)學(xué)益智圖形連線題100題(含完整答案)
- 七上-動點(diǎn)、動角問題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
評論
0/150
提交評論