单片机c语言三种经典程序结构,单片机C语言程序的结构和设计精选.docx
單片機C語言程序的結(jié)構(gòu)和設(shè)計精選
實驗五 單片機C語言程序的結(jié)構(gòu)和設(shè)計一、實驗目的1. 掌握單片機C語言的程序結(jié)構(gòu);2. 掌握單片機C語言程序的編寫和調(diào)試方法;3. 掌握MSP430FG2553基本I/O控制方法;4. 掌握單片機對外部接口電路的控制方法。二、實驗任務(wù)1. 練習調(diào)試程序(1)硬件連接圖(2)原程序存在的問題① 實驗要求將L1~L8連接到P2OUT端口上,所以程序中的端口應(yīng)該采用P2OUT;② 由于程序中用到了P2OUT所有端口作為輸出,所以應(yīng)該首先將P2設(shè)置為GPIO;③ 實驗要求八個LED等應(yīng)該在亮和滅之間進行循環(huán),所以應(yīng)該在原程序中加入主循環(huán);④ 在延時函數(shù)delay()中,延時時間不夠,所以不能夠看出燈的閃爍,應(yīng)該將循環(huán)的時間延長;(3)修改后的程序:#include "io430.h"void delay( );int main ( void ){ WDTCTL = WDTPW + WDTHOLD;//關(guān)閉看門狗 P2SEL=0; P2SEL2=0; P2DIR=0xff;//設(shè)置端口1為輸出 P2OUT=0xff; for(;;) { P2OUT=~P2OUT;//將端口1的值取反后輸出 delay( ); //調(diào)用函數(shù)延時 }}void delay( ) //延時函數(shù){ unsigned int j;for (j=0;j<0xffff;j++); }(3)程序調(diào)試方法總結(jié)程序調(diào)試時主要使用逐步調(diào)試的方法,通過F10和F11使程序逐步運行,有必要時通過view觀測register寄存器的相關(guān)值的變化,通過觀察每一步運行之后相關(guān)寄存器的變化,可以初步判斷對應(yīng)程序運行的正確與否,還可以通過設(shè)置斷點的方式進行局部調(diào)試。對于幾個不同調(diào)試按鈕的使用方法總結(jié)如下:GO屬于連續(xù)執(zhí)行,在調(diào)試過程中通常與斷點同時使用,用于程序的長距離跳轉(zhuǎn);step over用于逐步運行程序,但是不會運行到子程序的內(nèi)部,如本例子中的delay函數(shù),用此按鈕時不會運行到delay內(nèi)部;而step into則可以進入子函數(shù)內(nèi)部,通常用來調(diào)試子函數(shù),在調(diào)試子函數(shù)過程中若想跳出子函數(shù)可以使用step out;合理地使用這些指令可以高效的調(diào)試程序。2. 控制發(fā)光二極管的顯示變化(1)硬件連接圖(2)C語言程序#include "io430.h"void delay();void action_1();void action_2();const unsigned char LED_blink1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};const unsigned char LED_blink2[4]={0xdb,0xe7,0x7e,0xbd};int main( void ){ // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P2SEL=0; //將P2端口設(shè)置為GPIO P2SEL2=0; P2DIR=0xff; //方向設(shè)定 for(;;) //主循環(huán) { action_1();//子函數(shù)調(diào)用 action_2(); }}void delay() //延時函數(shù){ int i; for(i=0;i<0xffff;i++);}void action_1() //規(guī)律一動作函數(shù){ int j; for(j=0;j<=7;j++) { delay(); P2OUT=~LED_blink1[j]; //使輸出端口按照表中顯示 }}void action_2() //規(guī)律二動作函數(shù){ int k; for(k=0;k<4;k++) { delay(); P2OUT=LED_blink2[k]; //使輸出端口按照表中顯示 }}由于本程序比較簡單,并且在上面程序后面附有注釋,故不再說明程序的運行原理。(3)思考若要使用P1端口控制8個發(fā)光二極管,則實驗板上的連線方面需要將L1~L8分別用跳線連接至P1.0~P1.7,在程序方面只需要將原程序中用到的P2端口均換成P1端口即可。3. 用按鍵控制發(fā)光二極管的顯示變化(1)硬件連接圖(2)程序設(shè)計思路首先由于在上一個任務(wù)中已經(jīng)實現(xiàn)了兩種顯示方式的循環(huán)顯示,所以為實現(xiàn)該任務(wù),只需要在上一個任務(wù)的程序中加入按鍵控制即可。通過兩個將兩個P1引腳設(shè)置成輸入引腳并與按鍵相連用來檢測按鍵,在上個任務(wù)中的程序中,由于兩個動作方式是循環(huán)進行的,所以只
總結(jié)
以上是生活随笔為你收集整理的单片机c语言三种经典程序结构,单片机C语言程序的结构和设计精选.docx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工预-java1
- 下一篇: 工预-Typora(A)