/* 名稱:數(shù)碼管顯示 4X4 矩陣鍵盤按鍵號說明:按下任意鍵時,數(shù)碼管都會顯示其鍵的序號,掃描程序首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行附加不同的值,從而得到按鍵的序號。*/#include<reg51.h>#define uchar unsigned char#define uint u[詳細(xì)]
/* 名稱:播放音樂說明:程序運行時播放生日快樂歌, 未使用定時器中斷,所有頻率完全用延時實現(xiàn)*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P3^7;//生日快樂歌的音符頻率表,不同頻率由不同的延時來決定uchar[詳細(xì)]
/* 名稱:INT0 及 INT1 中斷計數(shù)說明:每次按下第 1 個計數(shù)鍵時,第 1 組計數(shù)值累加并顯示在右邊 3 只數(shù)碼管上, 每次按下第 2 個計數(shù)鍵時,第2 組計數(shù)值累加并顯示在左邊 3 只數(shù)碼管上,后兩個按鍵分別清零。*/#incl[詳細(xì)]
/* 名稱:按鍵發(fā)音說明:按下不同的按鍵會是 SOUNDER 發(fā)出不同頻率的聲音。本例使用延時函數(shù)實現(xiàn)不同頻率的聲音輸出,以后也可使用定時器*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P3^7;sbit [詳細(xì)]
子程序調(diào)用時,主程序應(yīng)該先把有關(guān)參數(shù)放到某些事先約定的位置,這個放置參數(shù)的過程就是子程序的參數(shù)傳遞。 子程序在運行時,可以從約定位置得到有關(guān)參數(shù);同樣,子程序在運行結(jié)束前,也應(yīng)當(dāng)把運算結(jié)果送回到約定位置;子程序結(jié)束運行,返回主程序后,主程序?qū)募s定的位置上得到所需要的參數(shù)結(jié)果. [詳細(xì)]
/* 名稱:甲機(jī)發(fā)送控制命令字符說明:甲單片機(jī)負(fù)責(zé)向外發(fā)送控制命令字符“A”、“B”、“C”,或者停止發(fā)送,乙機(jī)根據(jù)所接收到的字符完成 LED1 閃爍、LED2 閃爍、雙閃爍、或停止閃爍。*/#include<reg51.h>#define uchar unsigned char#define uint unsign[詳細(xì)]
/* 名稱:甲機(jī)串口程序說明:甲機(jī)向乙機(jī)發(fā)送控制命令字符,甲機(jī)同時接收乙機(jī)發(fā)送的數(shù)字,并顯示在數(shù)碼管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P1^0; sbit LED2=P1^3;sbit&[詳細(xì)]
子程序與中斷服務(wù)程序在功能上有相近之處。對于子程序,它的調(diào)用安排是由主程序設(shè)定的,它的現(xiàn)場不一定加以保護(hù),可以按照實際情況靈活處理。 [詳細(xì)]
/* 名稱:單片機(jī)向主機(jī)發(fā)送字符串說明:單片機(jī)按一定的時間間隔向主機(jī)發(fā)送字符串,發(fā)送內(nèi)容在虛擬終端顯示。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//延時void DelayMS(uint ms){ &nbs[詳細(xì)]
1、EQU 指令用于將一個數(shù)值或寄存器名賦給一個指定的符號名。格式: 符號名 EQU 表達(dá)式符號名 EQU 寄存器名表達(dá)式必須是一個簡單再定位表達(dá)式。用 EQU 指令賦值以后的字符名,可以用作數(shù)據(jù)地址、代碼地址、位地址或者直接當(dāng)做一個立即數(shù)使用。比如:s equ bx+simov cx,[s]那么上面兩句代碼相當(dāng)于如下指[詳細(xì)]
10. If debugging is the process of removing software bugs, then programming must be the process of putting them in. – Edsger Dijkstra如果調(diào)試程序是移除臭蟲(軟件缺陷)的過程,那編寫程序就是把臭蟲放進(jìn)來的過程。—— 迪杰斯特拉09. The first 90% of the code accounts for the[詳細(xì)]
大家知道,大家用MCU寫程序的時候,只有移位的語句,沒有循環(huán)移位的語句。那么如何實現(xiàn)循環(huán)移位呢,詳見下述: 循環(huán)移位區(qū)別于一般移位的是移位時沒有數(shù)位的丟失。循環(huán)左移時,用從左邊移出的位填充字的右端,而循環(huán)右移時,用從右邊移出的位填充字的左側(cè)。這種情況在系統(tǒng)程序中時有使用,在一些控制程[詳細(xì)]
80C51上的C語言編程 C51的特色:(1)學(xué)習(xí)過C語言的同學(xué)在對單片機(jī)有了基本了解之后,就可以開始試著寫一兩個基于單片機(jī)的C語言的程序了。C51語言繼承了ANSI C 的絕大部分的特性,基本的語法相同,同學(xué)們上手會比較快。但是,由于C51語言是對硬件進(jìn)行控制的編程語言,其本身又在硬件結(jié)構(gòu)上有所擴(kuò)展以增強(qiáng)C語言[詳細(xì)]
關(guān)于程序的執(zhí)行,以前想的不多,沒有意識到一個程序在運行時,從哪里讀指令,數(shù)據(jù)又寫在哪里。從單片機(jī)上知道,在上電的那一刻,MCU的程序指針PC會被初始化為上電復(fù)位時的地址,從哪個地址處讀取將要執(zhí)行的指令,由此程序在MCU上開始執(zhí)行(當(dāng)然在調(diào)用程序的 main之前,還有一系列其他的的初始化要做,如堆棧的初[詳細(xì)]
已知51單片機(jī),fosc=6MHz,試編寫程序,利用T0和P1.7產(chǎn)生如下圖所示的連續(xù)矩形脈沖。參考程序:org 0000hljmp mainorg 000bhljmp int_t0org 0030hmain: mov tmod,#00000010bmov ie,#10000010bmov th0,#0echmov tl0,#4chclr p1.7setb tr0sjmp $int_t0: jb p1.7,loopmov th0,#4chsetb p1.7reti[詳細(xì)]
單片機(jī)中一個程序的運行過程分為取指令,分析指令和執(zhí)行指令幾個步驟。取指令的任務(wù)是:根據(jù)程序計數(shù)器PC中的值從程序存儲器讀出現(xiàn)行指令,送到指令寄存器。分析指令階段的任務(wù)是:將指令寄存器中的指令操作碼取出后進(jìn)行譯碼,分析其指令性質(zhì)。如指令要求操作數(shù),則尋找操作數(shù)地址。計算機(jī)執(zhí)行程序的過程實際[詳細(xì)]
2位16進(jìn)制轉(zhuǎn)10進(jìn)制,用除以10求商跟余數(shù)的方法,即可。4位16進(jìn)制數(shù)呢?DIV指令只可以對2位16進(jìn)制數(shù)進(jìn)行除法運算啊,求高手解答。例如把TH1 TL1的數(shù)值轉(zhuǎn)成十進(jìn)制, 分別存入R4 R3 R2 R1 R0。;------------------------------------------------------------------下面把這段轉(zhuǎn)換程序,寫成子程序的結(jié)構(gòu),便于網(wǎng)[詳細(xì)]
程序 :/*** 讀IO, 用按鈕控制點燈.*/#include #include // 10個LEDsbit P10 = P1^0;sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;sbit P14 = P1^4;sbit P15 = P1^5;sbit P16 = P1^6;sbit P17 = P1^7;// 定義開關(guān). 低電平有效.sbit K1 = P3^2;sbit K2 = P3^5;void main( void ){while([詳細(xì)]
掃碼關(guān)注我們
0755-82591179
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08
Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved. 粵ICP備14043402號-4