freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與制作_(編輯修改稿)

2025-08-14 20:08 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 經(jīng)以上定義后, A1 就可當(dāng)作位地址來(lái)使用。 MOV C, A1 程序設(shè)計(jì)實(shí)例; 程序 1:求符號(hào)函數(shù)。 ??????201Y 000???XXX當(dāng)當(dāng)當(dāng) 設(shè) X、 Y 分別為 30H、 31H 單元。 分析:由設(shè)計(jì)要求可以看出,程序有三條路徑需要選擇,因此需要采用分支程序設(shè)計(jì),其流程圖如圖 21 所示。 24 圖 21 符號(hào)函數(shù)流程圖 程序如下: ORG 20xxH X EQU 30H Y EQU 31H MOV A, X JZ LOOP0 ; A 為 0 值,轉(zhuǎn) LOOP0 JB , LOOP1 ;最高位為 1,為負(fù)數(shù) MOV A, 01H ; A← 1 SJMP LOOP0 LOOP1:MOV A, 02H ; A← 2 LOOP0: MOV Y, A ; Y← A SJMP $ END 程序 2:在內(nèi)部 RAM 的 42H 開始的連續(xù)單元中存放一組 8 位無(wú)符號(hào)數(shù),該數(shù)組長(zhǎng)度 n( n≤ 3DH)存放在 41H 中,找出這組數(shù)中的最大數(shù),并將其存入內(nèi)部 RAM 的 40H 單元中。 分析:可以先將第一個(gè)數(shù)組元素送 40H 單元內(nèi),然后將數(shù)組中的其它數(shù)依次與其比較,若大于 40H 中的值,則取代它再比較下一位。開始 0→ Y X=0? X0? 2→ Y 1→ Y 結(jié)束 Y Y N N 25 直到所有元素都比較完。此時(shí) 40H 單元中即為最大值。 程序: ORG 20xxH MOV R0, 42H MOV 40H,@R0 DEC 41H LOOP: INC R0 MOV A, @R0 CJNE A, 40H, COMP COMP: JC NEXT MOV 40H,A NEXT: DJNZ 41H,LOOP SJMP $ END 程序 3:編寫程序?qū)崿F(xiàn)延時(shí) 1min 分析:可利用 CPU 中每執(zhí)行一條指令都有固定的時(shí)序這一特征,令其重復(fù)執(zhí)行某些指令從而達(dá)到延時(shí)的目的。 程序: DELAY: MOV R7, 0E6H 1 LOOP1: MOV R6, 0FFH 1 LOOP2:MOV R5, 0FFH 1 LOOP3: NOP 1 NOP 1 DJNZ R6, LOOP3 2 DJNZ R6, LOOP2 2 DJNZ R7, LOOP1 2 RET 2 程序中: 內(nèi)循環(huán)一次所需機(jī)器周期數(shù) =( 1+1+2)個(gè) =4 個(gè)。 內(nèi)循環(huán)共循環(huán) 255 次的機(jī)器周期數(shù) =4 255 個(gè) =1020 個(gè)。 26 次外循環(huán)一次所需機(jī) 器周期數(shù) =( 4 255+1+2)個(gè) =1023 個(gè)。 次外循環(huán)共循環(huán) 255 次,所以該子程序總的機(jī)器周期數(shù) =( 2551023+1+2)個(gè) =260868 個(gè)。 外循環(huán)一次所需機(jī)器周期數(shù) =( 260868+1+2)個(gè) =260871 個(gè)。 外循環(huán)共循環(huán) 255 次,所以該子程序總的機(jī)器周期數(shù) =( 230260871+1+2)個(gè) =60,000,033 個(gè)。 因?yàn)橐粋€(gè)機(jī)器周期為 12 個(gè)時(shí)鐘周期,所以該子程序延時(shí)間 =260868 12/ oscf 。 程序 4:編寫一個(gè)循環(huán)閃爍燈程序,用 P1 口的 ~ 分別控制 8 個(gè)發(fā)光二極管的陰極,每次其中某個(gè)燈閃爍點(diǎn)亮 2次,依次進(jìn)行,循環(huán)不止。 程序: MOV A, 0FEH SHIFT: LCALL FLASH RR A SJMP SHIFT FLASH: MOV R2, 02H FLASH1:MOV P1, A LCALL DELAY MOV P1, 00H LCALL DELAY DJNZ R2, FLASH1 RET 思考題 : 題 1: 編寫一個(gè)循環(huán)閃爍燈程序,用 P1 口的 ~ 分別控制 8個(gè)發(fā)光二極管的陰極,每次其中兩個(gè)點(diǎn)亮,依次進(jìn)行,循環(huán)不止。 27 題 2: 編寫一個(gè)循環(huán)閃爍燈程序,用 P1 口的 ~ 分別控制 8個(gè)發(fā)光二極管的陰極,由兩邊向中間的燈依次點(diǎn)亮,循環(huán)不止。 題 3: 在內(nèi)部 RAM 的 42H 開始的連續(xù)單元中存放一組 8 位無(wú)符號(hào)數(shù),該數(shù)組長(zhǎng)度 n( n≤ 3DH)存放在 41H 中,找出這組數(shù)中的最小數(shù),并將其存入內(nèi)部 RAM 的 40H 單元中。 28 第三章 C51 及程序設(shè)計(jì) C 語(yǔ)言的重要知識(shí)點(diǎn) C 的數(shù)據(jù)類型 C 語(yǔ)言中數(shù)據(jù)有常量和變量之分,它們分別屬于以下這些類型。常量:在程序 運(yùn)行過(guò)程中,其值不能改變的量。如 ‘ a’、經(jīng) define PRICE 30 后, PRICE 為一常量,其值為 30。變量:其值可以改變的量。一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,如圖。 C 語(yǔ)言規(guī)定變量必須 先定義后使用 。標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成。且第一個(gè)字符必須為字母或下劃線。 習(xí)慣上,符號(hào)常量名用大寫,變量名用小寫,以示區(qū)別。 數(shù)據(jù)類型 定義 如 基本類型 整型 整形常量:即整常數(shù) 。 1 0x12 整形變量:定義符為 int、signed int、 Unsigned int、signed short int、 Unsigned short int、 long int、 Unsigned long int 字符型 字符型常量:用單撇號(hào)括起來(lái)的一個(gè)字符。 ‘ a’、‘?’ 字符串型常量:用雙撇號(hào)括起來(lái)的一個(gè)字符。 “ china”、“ ” 字符型變量:定義符為 char 3 a 變量名 變量值 存儲(chǔ)單元 29 實(shí)型 實(shí)型常量:分為十進(jìn)制小數(shù)形式和指數(shù)形式 123. 4123e3 實(shí)型變量:定義 符為 float、double、 long double 枚舉類型 構(gòu)造類型 數(shù)組類型 結(jié)構(gòu)體類型 共用體類型 指針類型 空類型 一、 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 C 的運(yùn)算符有以下幾類: 1.算術(shù)運(yùn)算符: ( + * / %) 2.關(guān)系運(yùn)算符: ( > < == = > = < = ! =) 3.邏輯運(yùn)算符: (! amp。amp。 ||) : (<< >> ~ | ∧(異或) amp。) 5.賦值運(yùn)算符: ( = ) 6.條件運(yùn)算符: (? :) 7.逗 號(hào)運(yùn)算符: ( , ) 8.指針運(yùn)算符: ( * amp。) 、自減運(yùn)算符: ( ++ ) 二、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 逗號(hào)表達(dá)式形式:表達(dá)式 1,表達(dá)式 2 C 語(yǔ)句 一、 C 語(yǔ)句可以分為以下 5類 30 1.控制語(yǔ)句: C 語(yǔ)言有 9 種控制語(yǔ)句,它們是:(~表示內(nèi)嵌的語(yǔ)句) (1).if~ else~ (2).for()~ (3).while()~ (4).do~ while() (5).continue (6).break 結(jié)束整個(gè)循環(huán) (7).switch 結(jié)束本次循環(huán) (8).goto (9).return 2.函數(shù)調(diào)用語(yǔ)句 如: printf(“ This is a C statement” ) 3.表達(dá)式語(yǔ)句 如:賦值語(yǔ)句 4.空語(yǔ)句 如: ; 二、數(shù)據(jù)的輸入輸出 C語(yǔ)言函數(shù)庫(kù)中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,它們是: putchar(輸出字符 ), getchar(輸入字符 ), printf(格式輸出 ), scanf(格式輸入 ),puts(輸出字符串 ), gets(輸入字符串。 三、選擇結(jié)構(gòu)程序設(shè)計(jì) 1. If 語(yǔ)句有三種形式 ①. If(表達(dá)式)語(yǔ)句 如: if(xy)printf(“ %d” ,x)。 ②. If(表達(dá)式) 語(yǔ)句 1 else 語(yǔ)句 2 如: if(xy)printf(“ %d” ,x)。 else printf(“ %d” ,y)。 31 ③. If(表達(dá)式 1) 語(yǔ)句 1 else if(表達(dá)式 2) 語(yǔ)句 2 else if(表達(dá)式 3) 語(yǔ)句 3 else 語(yǔ)句 n 2.條件運(yùn)算符: 格式: 表達(dá)式 1?表達(dá)式 2:表達(dá)式 3 如: max=( a b )? a : b 語(yǔ)句 格式: switch(表達(dá)式 ) {case 常量表達(dá)式 1:語(yǔ)句 1 case 常量表達(dá)式 2:語(yǔ)句 2 case 常量表達(dá)式 n:語(yǔ)句 n default :語(yǔ)句 n+1 } 四、循環(huán)控制語(yǔ)句 構(gòu)成循環(huán)語(yǔ)句的語(yǔ)句有: 1. Goto 語(yǔ)句和 if 語(yǔ)句構(gòu)成循環(huán); P107 語(yǔ)句 格式: while(表達(dá)式 ) 語(yǔ)句 P107 32 語(yǔ)句 格式: do 循環(huán)體語(yǔ)句 While (表達(dá)式 ); P109 語(yǔ)句 格式: for(循環(huán)變量賦值初值;循環(huán)條件;循環(huán)變量增值)語(yǔ)句 如: for(i=1。i=100。i++) sum=sum+i。 五、數(shù)組 一維數(shù)組定義方式:類型說(shuō)明符 數(shù)組名 [常量表達(dá)式 ]; 如: int a[10] 二維數(shù)組定義方式:類型說(shuō)明符 數(shù)組名 [常量表達(dá)式 ] [常量表達(dá)式 ]; 如: float a[2][3],b[3][3] 六、函數(shù) 一個(gè)較大的程序一般應(yīng)分為若干個(gè)程序模塊,每一個(gè)模塊用來(lái)實(shí)現(xiàn)一個(gè)特定功能。所有的高級(jí)語(yǔ)言中都有子程序這個(gè)概念,用子程序?qū)崿F(xiàn)模塊的功能。在 C 語(yǔ)言中,子程序的作用是由函數(shù)完成的。一個(gè) C程序可由一個(gè)主函數(shù)和若干個(gè)函數(shù)構(gòu)成。由主函數(shù)調(diào)用其它函數(shù),其他函數(shù)也可以互相 調(diào)用。同一個(gè)函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用任意多次。 在程序設(shè)計(jì)中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫(kù)中供公共選用。要善于利用函數(shù),以減少重復(fù)編寫程序段的工作量。 ?、一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)組成。 ?、一個(gè) C程序由一個(gè)或多個(gè)源程序文件組成。 ?、 C 程序的執(zhí)行從 main 函數(shù)開始。 ?、所有函數(shù)都是平行的,即在定義函數(shù)時(shí)是互相獨(dú)立,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù)。 ?、調(diào)用庫(kù)函數(shù)的方式為: include include ?、函數(shù)的調(diào)用方式為:把函數(shù)語(yǔ)句作 為一個(gè)語(yǔ)句, 如: float add(float x, float y)。 33 C51 與 C 的區(qū)別 一、如何調(diào)用單片機(jī)內(nèi)部資源 include 二、存儲(chǔ)區(qū)的描述 變量的聲明中還包括了對(duì)存儲(chǔ)類型的指定,即指定變量存放的位置。 存儲(chǔ)區(qū) 描述 DATA RAM 的低 128 字節(jié),可在一個(gè)周期內(nèi)直接尋址。由于為尋址最快,所以應(yīng)該把經(jīng)常使用的變量放在 DATA 區(qū)。例:unsigned char data system_status=0。char data inp[16]。 BDATA DATA 區(qū)可字節(jié),位混合尋址的 16 字節(jié)區(qū)。 IDATA RAM 區(qū)的高 128 字節(jié),必須采用間接尋址。 XDATA 外部存儲(chǔ)區(qū),使用 DPTR 間接尋址 PDATA 外部存儲(chǔ)區(qū)的 256 字節(jié),通過(guò) P0 口的地址對(duì)其尋址,使用指令 MOVX @Rn,需要兩個(gè)指令周期。 CODE 程序存儲(chǔ)區(qū)使用 DPTR 尋址,程序存儲(chǔ)區(qū)的數(shù)據(jù)是不可改變 的 。 如 固 化 表 格 的 聲 明 會(huì) 表 示 為 : uc code moto_back[]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}。 三、如何定義字 define uc unsigned char define ui unsigned int define hi ((655361500)/256) define lo ((655361500)%256) 四、如何定義位 sbit RS=P2^0。 34 sbit RW=P2^1。 sbit E=P2^2。 五、如何定義表格 uc code moto_back[]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}。 六、如何進(jìn)入中斷 中斷函數(shù)的完整語(yǔ)法及示例如下: 返回值 函數(shù) 名 interrupt n [using n]
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1