導航:首頁 > 操作系統 > 基於單片機的課程設計題目

基於單片機的課程設計題目

發布時間:2023-07-25 11:59:08

『壹』 幫我設計單片機課程設計實驗,用c語言程序寫,題目是:搶答器,要求製作一個四人搶答器,4個燈跑馬循環

#define PlayerKey1_IO (P0.1)
#define PlayerKey2_IO (P0.2)
#define PlayerKey3_IO (P0.3)
#define PlayerKey4_IO (P0.4)
#define PlayerLED1_IO (P1.1)
#define PlayerLED2_IO (P1.2)
#define PlayerLED3_IO (P1.3)
#define PlayerLED4_IO (P1.4)
#define BuzzerEnable_IO (P1.5)
void SysInit(void)
{
//設置Key_io為上拉輸入
//設置LED_io為通用輸出
//設置BuzzerEnable_io為通用輸出
}
unsigned char KeyScan(void)
{
if (PlayerKey1_IO == 0) return 1;
if (PlayerKey2_IO == 0) return 2;
if (PlayerKey3_IO == 0) return 3;
if (PlayerKey4_IO == 0) return 4;
return 0;
}
void Delay_Ms(unsigned char Nms)
{
volatile unsigned short tempcnt;
while (Nms--)
for (tempcnt = 0; tempcnt < 500; tempcnt++);//按照相應的參數配置計數上限,此處設為500
}
void main(void)
{
unsigned char MarqueeStep=0;
unsigned char KeyValue=0;
SysInit();
while (1)
{
Delay_Ms(400);
KeyValue = KeyScan(); //無按鍵去抖
if (KeyValue == 0)
{
MarqueeStep++;
if (MarqueeStep > 4) MarqueeStep = 0;
BuzzerEnable_IO = 0; // 按鍵取消停止蜂鳴器發聲
}
else
{
MarqueeStep = KeyValue;
BuzzerEnable_IO = 1; //蜂鳴器發聲
}
PlayerLED1_IO = 0;
PlayerLED2_IO = 0;
PlayerLED3_IO = 0;
PlayerLED4_IO = 0;
if (MarqueeStep == 0)
PlayerLED1_IO = 1;
else if (MarqueeStep == 1)
PlayerLED2_IO = 1;
else if (MarqueeStep == 2)
PlayerLED3_IO = 1;
else if (MarqueeStep == 3)
PlayerLED4_IO = 1;
}
}
基礎框架是這樣。

『貳』 跪求單片機課程設計 要完全呦

題 目:單片機課程設計報告
目 錄
一、設計目的
二、程設計具體要求
三、單片機發展簡史
四、8051單片機系統簡介
五、8051單片機內部定時器/計數器簡介
六、程序電路
七、程序流程
八、程序代碼
九實驗總結-要求寫出完整的論文以及心得體會
十參考資料及小結
原 文 : 一.目的
1. 進一步熟悉和掌握8051單片機的結構及工作原理。
2. 掌握單片機的介面技術及相關外圍晶元的外特性,控制方法。
3. 通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。
4. 通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。
5. 通過完成一個包括電路設計和程序開發的完整過程,使學生了解開發一單片機應用系統的全過程,為今後從事相應打下基礎。
二.課程設計的體要求
a) 原理圖設計。
1. 原理圖設計要符合項目的工作原理,連線要正確,端了要不得有標號。
2. 圖中所使用的元器件要合理選用,電阻,電容等器件的參數要正確標明。
3. 原理圖要完整,CPU,外圍器件,擴器介面,輸入/輸出裝置要一應俱全。
b) 程序調計
1. 根據要求,將總體項能分解成若干個子功能模塊,每個功能模塊完成一個特定的功能。
2. 根據總體要求及分解的功能模塊,確定各功能模塊之間的關系,設直出完整的程序流程圖。
c) 程序調試將設計完的程序輸入,匯編,排除語法錯誤,生成*OBJ文件。
1. 按所設計的原理圖,在實驗平台上連線,檢查無誤。
2. 將匯編後生成的*OBJ文件傳送到實驗裝置的,執行該程序,檢查該程序、是否達到設計要求,若未達到,修改程序,直到達到要求為止,
d) 說明書
1. 原理圖設計說明
簡要說明設計目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。
2. 程序設計說明
對程序設計總體功能及結構進行說明,對各子模塊的功能以及各子模塊之間的關系作較詳細的描述。
3. 畫出工作原理圖,程序流程圖並給出程序清單。
目前,單片機已廣泛應用到圖民經濟建設和日常生活的許多領域,成為測控技術現代化必不可少的重要工具。下面介紹一本單片機課程設計的好書,介紹了很多實例有興趣者可以去買哦,價格不貴【圖書目錄】 - 8051單片機課程設計實訓教材
第1章 緒論
1.1 課程設計所需硬體工具
1.2 專題製作所需軟體使用工具
1.3 8051程序開發測試平台
1.4 使用免費匯編編譯
1.5 89CXX燒錄模擬器操作實例
1.6 自製8051微電腦單板IO51
1.7 IO51操作實例
1.8 以Windows98 工作模式結合DOS模式來執行
第2章 8051單片機課程設計中的基本軟硬體設計
2.1 8051各種基本的硬體設計
2.2 工作指示燈LED
2.3 8051延遲時間計算
2.4 基本按鍵設計
2.5 建立8051通信介面
2.6 簡易8051調試界面
2.7 壓電喇叭測試
2.8 鍵盤掃描
2.9 掃描控制七段顯示器
2.10 LCD介面控制
2.11 8051定時器模式的工作
2.12 定時器模式0測試
2.13 定時器模式1測試
2.14 定時器模式2測試
2.15 以定時器產生各種頻率的聲音
2.16 以定時器演奏—段旋律
第3章 帶單片機的LCD時鍾
第4章 定時鬧鈴
第5章 定時鬧鈴LCD
第6章 音樂倒數定時器
第7章 密碼鎖控制
第8章 可存儲式電子琴
第9章 8051八音盒
第10章 紅外線遙控器研究
10.1 紅外線遙控器動作原理
10.2 如何觀察紅外線遙控器信號
10.3 紅外線遙控器解碼功能說明
第11章 紅外線家電遙控
第12章 8051伺服機控制
12.1 伺服機工作原理及改裝
第1.3章 8051伺服車控制
13.1 功能說明
13.2 伺服車組裝及實驗
第14章 紅外線遙控伺服車
14.1 功能說明
14.2 遙控伺服車組裝及實驗
14.3 控制電路
14.4 控製程序
第15章 無線電家電遙控
15.1 功能說明
15.2 遙控編碼解碼控制
第16章 8051聲控設計
16.1 聲控基本知識介紹
16.2 系統組成
16.3 聲控模塊介紹
16.4 基本控制電路
16.5 基本控製程序
16.6 聲控課題設計

附錄H 如何使用KEIL 8051開發系統匯編和編譯程序及調試
附錄I EPM89 890XX燒錄模擬器特性
附錄J 1051 8051 10控制板特性
附錄K VCMM聲控模塊特性
附錄L IO51控制板完整電路圖
附錄M 需要從網站下載的相關資料的使用說明
附錄N 硬體介面板版權聲明及如何訂購
附錄A 簡易穩壓電源製作
附錄B 本書實驗所需軟硬體工具及零件
附錄C 8051內部控制寄存器介紹
附錄D 8051指令集
附錄E 如何自製8051單板
附錄F 課程設計報告參考內容
附錄G IO51控制板窗口版驅動程序使用說明

『叄』 懇求各位高手:幫忙看一下這個單片機課設題目唄。題目為 ADC0808轉換 謝謝!謝謝!

27. ADC0809A/D轉換器基本應用技術
1. 基本知識
ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接介面。
(1). ADC0809的內部邏輯結構

由上圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與解碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用於鎖存A/D轉換完的數字量,當OE端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。
(2). 引腳結構
IN0-IN7:8條模擬量輸入通道
ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與解碼器將A,B,C三條地址線的地址信號進行鎖存,經解碼後被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用於選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。
C B A 選擇的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
數字量輸出及控制線:11條
ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用於控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0為數字量輸出線。
CLK為時鍾輸入信號線。因ADC0809的內部沒有時鍾電路,所需時鍾信號必須由外界提供,通常使用頻率為500KHZ,
VREF(+),VREF(-)為參考電壓輸入。
2. ADC0809應用說明
(1). ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。
(2). 初始化時,使ST和OE信號全為低電平。
(3). 送要轉換的哪一通道的地址到A,B,C埠上。
(4). 在ST端給出一個至少有100ns寬的正脈沖信號。
(5). 是否轉換完畢,我們根據EOC信號來判斷。
(6). 當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。
3. 實驗任務
如下圖所示,從ADC0809的通道IN3輸入0-5V之間的模擬量,通過ADC0809轉換成數字量在數碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。
4. 電路原理圖

圖1.27.1
5. 系統板上硬體連線
(1). 把「單片機系統板」區域中的P1埠的P1.0-P1.7用8芯排線連接到「動態數碼顯示」區域中的A B C D E F G H埠上,作為數碼管的筆段驅動。
(2). 把「單片機系統板」區域中的P2埠的P2.0-P2.7用8芯排線連接到「動態數碼顯示」區域中的S1 S2 S3 S4 S5 S6 S7 S8埠上,作為數碼管的位段選擇。
(3). 把「單片機系統板」區域中的P0埠的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的D0D1D2D3D4D5D6D7埠上,A/D轉換完畢的數據輸入到單片機的P0埠
(4). 把「模數轉換模塊」區域中的VREF端子用導線連接到「電源模塊」區域中的VCC端子上;
(5). 把「模數轉換模塊」區域中的A2A1A0端子用導線連接到「單片機系統」區域中的P3.4P3.5P3.6端子上;
(6). 把「模數轉換模塊」區域中的ST端子用導線連接到「單片機系統」區域中的P3.0端子上;
(7). 把「模數轉換模塊」區域中的OE端子用導線連接到「單片機系統」區域中的P3.1端子上;
(8). 把「模數轉換模塊」區域中的EOC端子用導線連接到「單片機系統」區域中的P3.2端子上;
(9). 把「模數轉換模塊」區域中的CLK端子用導線連接到「分頻模塊」區域中的/4端子上;
(10). 把「分頻模塊」區域中的CK IN端子用導線連接到「單片機系統」區域中的ALE端子上;
(11). 把「模數轉換模塊」區域中的IN3端子用導線連接到「三路可調壓模塊」區域中的VR1端子上;
6. 程序設計內容
(1). 進行A/D轉換時,採用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數據通過P0埠讀入,經過數據處理之後在數碼管上顯示。
(2). 進行A/D轉換之前,要啟動轉換的方法:
ABC=110選擇第三通道
ST=0,ST=1,ST=0產生啟動轉換的正脈沖信號
7. 匯編源程序
CH EQU 30H
DPCNT EQU 31H
DPBUF EQU 33H
GDATA EQU 32H
ST BIT P3.0
OE BIT P3.1
EOC BIT P3.2

ORG 00H
LJMP START
ORG 0BH
LJMP T0X
ORG 30H
START: MOV CH,#0BCH
MOV DPCNT,#00H
MOV R1,#DPCNT
MOV R7,#5
MOV A,#10
MOV R0,#DPBUF
LOP: MOV @R0,A
INC R0
DJNZ R7,LOP
MOV @R0,#00H
INC R0
MOV @R0,#00H
INC R0
MOV @R0,#00H
MOV TMOD,#01H
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: CLR ST
SETB ST
CLR ST
WAIT: JNB EOC,WAIT
SETB OE
MOV GDATA,P0
CLR OE
MOV A,GDATA
MOV B,#100
DIV AB
MOV 33H,A
MOV A,B
MOV B,#10
DIV AB
MOV 34H,A
MOV 35H,B
SJMP WT
T0X: NOP
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#DPCD
MOV A,DPCNT
ADD A,#DPBUF
MOV R0,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
MOV DPTR,#DPBT
MOV A,DPCNT
MOVC A,@A+DPTR
MOV P2,A
INC DPCNT
MOV A,DPCNT
CJNE A,#8,NEXT
MOV DPCNT,#00H
NEXT: RETI
DPCD: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH,00H
DPBT: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
END

8. C語言源程序
#include <AT89X52.H>
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};
unsigned char dispcount;

sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
unsigned char channel=0xbc;//IN3
unsigned char getdata;

void main(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;

P3=channel;

while(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
dispbuf[2]=getdata/100;
getdata=getdata%10;
dispbuf[1]=getdata/10;
dispbuf[0]=getdata%10;
}
}

void t0(void) interrupt 1 using 0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}

『肆』 求基於單片機的畢業設計課題,稍微有點原理分析。

1、智能廣告燈

2、單片機控制電子賀卡

3、60秒倒計時

4、時鍾

5、八路搶答器

6、貨物計件器

7、數字溫度計

60秒倒計時的程序如下:

附件:KeilC下編寫源代碼

ORG00H

SJMPSTAR

ORG1BH

SJMPT1S

ORG30H

STAR:MOVR2,#60

MOVR4,#20

MOVIE,#88H

MOVTMOD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

SETBTR1

MOVA,R2

MOVB,#10

DIVAB

ACALLSEG7

MOVP1,A

MOVA,B

ACALLSEG7

MOVP2,A

SJMP$

T1S:MOVTH1,#3CH

MOVTL1,#0B0H

DJNZR4,T1S0

MOVR4,#20

DJNZR2,T1S1

CLRTR1

SJMPT1S1

T1S0:RETI

T1S1:MOVA,R2

MOVB,#10

DIVAB

ACALLSEG7

MOVP1,A

MOVA,B

ACALLSEG7

MOVP2,A

RETI

SEG7:INCA

MOVCA,@A+PC

RET

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

閱讀全文

與基於單片機的課程設計題目相關的資料

熱點內容
android滑動進度條 瀏覽:834
javagmt轉換 瀏覽:826
linux查看snmp 瀏覽:24
ug80車床編程 瀏覽:516
怎麼加速python計算素數 瀏覽:241
腰椎第五節壓縮性骨折 瀏覽:91
程序員開會的句子 瀏覽:993
用哪個app寫編程 瀏覽:645
android通訊錄增刪改查 瀏覽:730
車貸解壓過戶可以同時進行嗎 瀏覽:919
java面向對象編程題目 瀏覽:882
二次元壓縮包 瀏覽:700
stc模擬器編程器 瀏覽:155
伺服器銷售怎麼做好 瀏覽:87
什麼是com編程 瀏覽:849
演算法工程師最新資訊 瀏覽:611
郵政銀行卡怎麼在app簽約綁定 瀏覽:49
壓縮卷一直轉 瀏覽:978
初一編程小程序怎麼做 瀏覽:828
bt軟體文件夾名稱 瀏覽:159