當前位置:首頁 » 課程大全 » 單片機課程設計緒論

單片機課程設計緒論

發布時間: 2021-03-05 05:40:23

㈠ 跪求!!!單片機課程設計程序編寫

題目:單片機課程設計報告目錄一、設計目的二、程設計具體要求三、單片機發展簡史四、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.38051程序開發測試平台1.4使用免費匯編編譯器1.589CXX燒錄模擬器操作實例1.6自製8051微電腦單板IO511.7IO51操作實例1.8以Windows98工作模式結合DOS模式來執行第2章8051單片機課程設計中的基本軟硬體設計2.18051各種基本的硬體設計2.2工作指示燈LED2.38051延遲時間計算2.4基本按鍵設計2.5建立8051通信介面2.6簡易8051調試界面2.7壓電喇叭測試2.8鍵盤掃描2.9掃描控制七段顯示器2.10LCD介面控制2.118051定時器模式的工作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如何使用KEIL8051開發系統匯編和編譯程序及調試附錄IEPM89890XX燒錄模擬器特性附錄J1051805110控制板特性附錄KVCMM聲控模塊特性附錄LIO51控制板完整電路圖附錄M需要從網站下載的相關資料的使用說明附錄N硬體介面板版權聲明及如何訂購附錄A簡易穩壓電源製作附錄B本書實驗所需軟硬體工具及零件附錄C8051內部控制寄存器介紹附錄D8051指令集附錄E如何自製8051單板附錄F課程設計報告參考內容附錄GIO51控制板窗口版驅動程序使用說明

㈡ 單片機課程設計實例教程的序言

隨著就業壓力的日趨嚴峻,大學生的動手能力、實踐能力和綜合素質越來越受到學校和用人單位的重視。在大學學習期間,課程設計無疑是培養和鍛煉動手能力、實踐能力和綜合素質的一個重要環節,它是對學生學習知識的一次綜合實踐,是對老師教學、學生學習的一次檢驗。因此選擇項目實例非常關鍵,選擇項目大了,學生在規定的時間內做不完;選擇項目小了,又達不到課程設計的效果。針對這種情況,作者在多年單片機課程設計項目教學實踐的基礎上,同時結合實際工程應用,精心選擇了20個項目。
本書根據高職高專院校人才培養的指導思想和教學要求編寫,其特點如下。
1.採用經典機型本書以當今最流行、應用最普遍的AT89S51系列單片機為核心,項目採用匯編語言或C語言編寫,緊密結合實際工程應用,增強了實用性、操作性和可讀性,全書結構清晰、內容新穎、文字簡練。
2.強化三基、精選實例在編寫過程中,編者認真總結多年的教學經驗,同時博採眾長,吸取了其他書籍的精華,強調基本概念、基本原理、基本分析方法的論述,採用教、學、做相結合的教學模式,既能使學生掌握好基礎,又能啟發學生思考,培養動手能力。同時精選項目實例(書中實例提供了Proteus ISIS軟體模擬),將知識點融入實例中,便於激發學生的學習興趣。

㈢ 單片機課程設計報告

是我在文庫上發的那篇嗎?《單片機課程設計》零件計數器的那個作者嗎

㈣ 單片機課程設計

註:假設你的燈L1,L2,L3,L4陰極分別連p1.0,p1.1,p1.2,p1.3,陽極接電源
ORG 0
AJMP MAIN
MAIN:
NEXT:
MOV A,#0FEH
S2: MOV R1,#5
S1: MOV P1,A
ACALL DELAY
PUSH ACC
MOV A,#0FFH
MOV P1,A
ACALL DELAY
POP ACC
DJNZ R1,S1
RL A
JNZ ACC.4,NEXT
SJMP S2
DELAY:
MOV TMOD,#01H
MOV R0,#10
LOOP:
CLR TF0
MOV TH0,#0B1H
MOV TL0,#0E0H
SETB TR0
JNC TF0,$
CLR TR0
DJNZ R0,LOOP
RET
END

㈤ 單片機課程設計

名稱 : 單片機報警系統(原創) 晶振 : 6MHz 作者 : dsu5566 日期 : 2011年11月15日 備注 : 轉載請註明出去 專 參考程屬序http://hi..com/dsu5566/blog/item/1d698cccd627fa0000e928a7.html 電路



㈥ 單片機課程設計,急求!!!

#defineLCD1602_FLAG
#defineLCD1602_PORTP0
#include<reg51.h>
#include<stddef.h>
#defineucharunsignedchar

sbitlcd1602_rs=P2^0;
sbitlcd1602_e=P2^2;
sbitlcd1602_rw=P2^1;
sbitlcd1602_busy=P0^7;

ucharstr[]="ThisisKeyTest";
ucharkeyval,keystr[16];

voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}

/*
************************************
*函數名稱:lcd1602_CheckBusy()
*函數功能:狀態查詢
************************************
*/

voidlcd1602_CheckBusy()
{
do
{
lcd1602_busy=1;
lcd1602_rs=0;
lcd1602_rw=1;
lcd1602_e=0;
lcd1602_e=1;
}
while(lcd1602_busy);
}

/*
***************************************
*函數名稱:lcd1602_WriteCmd()
*函數功能:寫命令
*入口參數:命令字
*出口參數:無
***************************************
*/

voidlcd1602_WriteCmd(constucharcmd)
{
lcd1602_CheckBusy();
lcd1602_rs=0;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=cmd;
lcd1602_e=0;
}

/*
*******************************************
*函數名稱:lcd1602_WriteData()
*函數功能:寫數據
*入口參數:c--待寫數據
*出口參數:無
*********************************************
*/

voidlcd1602_WriteData(constucharc)
{
lcd1602_CheckBusy();
lcd1602_rs=1;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=c;
lcd1602_e=0;
}

/*
***********************************************
*函數名稱:lcd1602_Init()
*函數功能:初始化LCD
*入口參數:無
*出口參數:無
***********************************************
*/

voidlcd1602_Init()
{
lcd1602_WriteCmd(0x38); //顯示模式為8位2行5*7點陣
lcd1602_WriteCmd(0x0c);//displayenable,flagenable,flashenable,
lcd1602_WriteCmd(0x06);//flagmovetoright,screendon'tmove
lcd1602_WriteCmd(0x01);//clearscreen
}

/*
************************************************
*函數名稱:lcd1602_Display()
*函數功能:字元顯示
*入口參數:ptr--字元或字元串指針
*出口參數:無
*說明:用戶可通過以下方式來調用:
*1)lcd1602_Display("Hello,world!");
*2)INT8U存儲類型txt[]="要顯示的字元串";
*或者INT8U存儲類型txt[]={'t','x','t',..,''};
*INT8U*ptr;
*ptr=&txt;
*lcd1602_Display(ptr);
*或lcd1602_Display(txt);
*或lcd1602_Display(&txt);
************************************************
*/

voidlcd1602_Display(constuchar*ptr,ucharline)
{
uchardatai=0;
uchar*dataq;

q=ptr;
switch(line)
{
case0:
lcd1602_WriteCmd(0x80);
while(q!=NULL&&(*q!='')&&i<16)
{
lcd1602_WriteData(*q);
q++;
i++;
}
break;
case1:
lcd1602_WriteCmd(0xc0);
while(q!=NULL&&(*q!='')&&i<16)
{
lcd1602_WriteData(*q);
q++;
i++;
}
break;
}
}

ucharkbscan(void)
{
unsignedcharsccode,recode;
P3=0x0f;//發0掃描,列線輸入
if((P3&0x0f)!=0x0f)//有鍵按下
{
delay(20);//延時去抖動
if((P3&0x0f)!=0x0f)
{
sccode=0xef;//逐行掃描初值
while((sccode&0x01)!=0)
{
P3=sccode;
if((P3&0x0f)!=0x0f)
{
recode=(P3&0x0f)|0xf0;
while((P3&0x0f)!=0x0f);//等待鍵抬起
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return0;//無鍵按下,返回0
}
uchargetkey(void)
{
ucharkey;
key=kbscan();
if(key==0){keyval=0xff;return(0);}
switch(key)
{
case0x11:keyval=7;break;
case0x12:keyval=4;break;
case0x14:keyval=1;break;
case0x18:keyval=10;break;
case0x21:keyval=8;break;
case0x22:keyval=5;break;
case0x24:keyval=2;break;
case0x28:keyval=0;break;
case0x41:keyval=9;break;
case0x42:keyval=6;break;
case0x44:keyval=3;break;
case0x48:keyval=11;break;
case0x81:keyval=12;break;
case0x82:keyval=13;break;
case0x84:keyval=14;break;
case0x88:keyval=15;break;
default:keyval=0xff;break;
}
if(keyval!=0xff)return(1);
elsereturn(0);
}


main()
{
ucharnum;
lcd1602_Init();
lcd1602_Display(str,0);
while(1)
{
if(getkey())
{
if(keyval<10)keystr[num]=keyval+0x30;
elsekeystr[num]=keyval-10+'A';
lcd1602_Display(keystr,1);
num++;
num%=16;
}

}
}

㈦ 單片機課程設計

P1口接一個數碼管,一個按鍵可以接在P3.2作外部中斷。

㈧ 51單片機課程設計報告前言怎麼寫

參考相關畢業設計的前言部分就可以了
懂事電子設計
Vgz

㈨ 單片機課程設計功能

單片機的外部結構:1.DIP40雙列直插;52.P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)3.電源VCC(PIN40)和地線GND(PIN20);4.高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)5.內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6.程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)7.P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1單片機內部I/O部件:(所為學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務)1.四個8位通用I/O埠,對應引腳P0、P1、P2和P3;2.兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)3.一個串列通信介面;(SCON,SBUF)4.一個中斷控制器;(IE,IP)針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。C語言編程基礎:1.十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。2.如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。3.++var表示對變數var先增一;var—表示對變數後減一。4.x|=0x0f;表示為x=x|0x0f;5.TMOD=(TMOD&0xf0)|0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。6.While(1);表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P1.32.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P1_3=1;//給P1_3賦值1,引腳P1.3就能輸出高電平VCC5.While(1);//死循環,相當LOOP:gotoLOOP;6.}注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。在某引腳輸出低電平的編程方法:(比如P2.7引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P2.72.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P2_7=0;//給P2_7賦值0,引腳P2.7就能輸出低電平GND5.While(1);//死循環,相當LOOP:gotoLOOP;6.}在某引腳輸出方波編程方法:(比如P3.1引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P3.12.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.While(1)//非零表示真,如果為真則執行下面循環體的語句5.{6.P3_1=1;//給P3_1賦值1,引腳P3.1就能輸出高電平VCC7.P3_1=0;//給P3_1賦值0,引腳P3.1就能輸出低電平GND8.}//由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波9.}將某引腳的輸入電平取反後,從另一個引腳輸出:(比如P0.4=NOT(P1.1))代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.12.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P1_1=1;//初始化。P1.1作為輸入,必須輸出高電平5.While(1)//非零表示真,如果為真則執行下面循環體的語句6.{7.if(P1_1==1)//讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC8.{P0_4=0;}//給P0_4賦值0,引腳P0.4就能輸出低電平GND2008-11-2110:57回復chen33chen10位粉絲2樓9.else//否則P1.1輸入為低電平GND10.//{P0_4=0;}//給P0_4賦值0,引腳P0.4就能輸出低電平GND11.{P0_4=1;}//給P0_4賦值1,引腳P0.4就能輸出高電平VCC12.}//由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平13.}將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:(比如P2=NOT(P3))代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P32.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P3=0xff;//初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平5.While(1)//非零表示真,如果為真則執行下面循環體的語句6.{//取反的方法是異或1,而不取反的方法則是異或07.P2=P3^0x0f//讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出8.}//由於一直為真,所以不斷將P3取反輸出到P29.}注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。第一節:單數碼管按鍵顯示單片機最小系統的硬體原理接線圖:1.接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2.接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF3.接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理4.接配置:EA(PIN31)。說明原因。發光二極的控制:單片機I/O輸出將一發光二極體LED的正極(陽極)接P1.1,LED的負極(陰極)接地GND。只要P1.1輸出高電平VCC,LED就正向導通(導通時LED上的壓降大於1V),有電流流過LED,至發LED發亮。實際上由於P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過LED的電流小於(5V-1V)/10K=0.4mA。只要P1.1輸出低電平GND,實際小於0.3V,LED就不能導通,結果LED不亮。開關雙鍵的輸入:輸入先輸出高一個按鍵KEY_ON接在P1.6與GND之間,另一個按鍵KEY_OFF接P1.7與GND之間,按KEY_ON後LED亮,按KEY_OFF後LED滅。同時按下LED半亮,LED保持後松開鍵的狀態,即ON亮OFF滅。代碼1.#include2.#defineLEDP1^1//用符號LED代替P1_13.#defineKEY_ONP1^6//用符號KEY_ON代替P1_64.#defineKEY_OFFP1^7//用符號KEY_OFF代替P1_75.voidmain(void)//單片機復位後的執行入口,void表示空,無輸入參數,無返回值6.{7.KEY_ON=1;//作為輸入,首先輸出高,接下KEY_ON,P1.6則接地為0,否則輸入為18.KEY_OFF=1;//作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為19.While(1)//永遠為真,所以永遠循環執行如下括弧內所有語句10.{11.if(KEY_ON==0)LED=1;//是KEY_ON接下,所示P1.1輸出高,LED亮12.if(KEY_OFF==0)LED=0;//是KEY_OFF接下,所示P1.1輸出低,LED滅13.}//松開鍵後,都不給LED賦值,所以LED保持最後按鍵狀態。14.//同時按下時,LED不斷亮滅,各佔一半時間,交替頻率很快,由於人眼慣性,看上去為半亮態15.}數碼管的接法和驅動原理一支七段數碼管實際由8個發光二極體構成,其中7個組形構成數字8的七段筆畫,所以稱為七段數碼管,而餘下的1個發光二極體作為小數點。作為習慣,分別給8個發光二極體標上記號:a,b,c,d,e,f,g,h。對應8的頂上一畫,按順時針方向排,中間一畫為g,小數點為h。我們通常又將各二極與一個位元組的8位對應,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相應8個發光二極體正好與單片機一個埠Pn的8個引腳連接,這樣單片機就可以通過引腳輸出高低電平控制8個發光二極的亮與滅,從而顯示各種數字和符號;對應位元組,引腳接法為:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。如果將8個發光二極體的負極(陰極)內接在一起,作為數碼管的一個引腳,這種數碼管則被稱為共陰數碼管,共同的引腳則稱為共陰極,8個正極則為段極。否則,如果是將正極(陽極)內接在一起引出的,則稱為共陽數碼管,共同的引腳則稱為共陽極,8個負極則為段極。以單支共陰數碼管為例,可將段極接到某埠Pn,共陰極接GND,則可編寫出對應十六進制碼的七段碼表位元組數據

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919