1、EQU 指令用于將一個數(shù)值或寄存器名賦給一個指定的符號名。格式: 符號名 EQU 表達式符號名 EQU 寄存器名表達式必須是一個簡單再定位表達式。用 EQU 指令賦值以后的字符名,可以用作數(shù)據(jù)地址、代碼地址、位地址或者直接當做一個立即數(shù)使用。比如:s equ bx+simov cx,[s]那么上面兩句代碼相當于如下指[詳細]
10. If debugging is the process of removing software bugs, then programming must be the process of putting them in. – Edsger Dijkstra如果調試程序是移除臭蟲(軟件缺陷)的過程,那編寫程序就是把臭蟲放進來的過程。—— 迪杰斯特拉09. The first 90% of the code accounts for the[詳細]
大家知道,大家用MCU寫程序的時候,只有移位的語句,沒有循環(huán)移位的語句。那么如何實現(xiàn)循環(huán)移位呢,詳見下述: 循環(huán)移位區(qū)別于一般移位的是移位時沒有數(shù)位的丟失。循環(huán)左移時,用從左邊移出的位填充字的右端,而循環(huán)右移時,用從右邊移出的位填充字的左側。這種情況在系統(tǒng)程序中時有使用,在一些控制程[詳細]
80C51上的C語言編程 C51的特色:(1)學習過C語言的同學在對單片機有了基本了解之后,就可以開始試著寫一兩個基于單片機的C語言的程序了。C51語言繼承了ANSI C 的絕大部分的特性,基本的語法相同,同學們上手會比較快。但是,由于C51語言是對硬件進行控制的編程語言,其本身又在硬件結構上有所擴展以增強C語言[詳細]
關于程序的執(zhí)行,以前想的不多,沒有意識到一個程序在運行時,從哪里讀指令,數(shù)據(jù)又寫在哪里。從單片機上知道,在上電的那一刻,MCU的程序指針PC會被初始化為上電復位時的地址,從哪個地址處讀取將要執(zhí)行的指令,由此程序在MCU上開始執(zhí)行(當然在調用程序的 main之前,還有一系列其他的的初始化要做,如堆棧的初[詳細]
已知51單片機,fosc=6MHz,試編寫程序,利用T0和P1.7產生如下圖所示的連續(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[詳細]
單片機中一個程序的運行過程分為取指令,分析指令和執(zhí)行指令幾個步驟。取指令的任務是:根據(jù)程序計數(shù)器PC中的值從程序存儲器讀出現(xiàn)行指令,送到指令寄存器。分析指令階段的任務是:將指令寄存器中的指令操作碼取出后進行譯碼,分析其指令性質。如指令要求操作數(shù),則尋找操作數(shù)地址。計算機執(zhí)行程序的過程實際[詳細]
2位16進制轉10進制,用除以10求商跟余數(shù)的方法,即可。4位16進制數(shù)呢?DIV指令只可以對2位16進制數(shù)進行除法運算啊,求高手解答。例如把TH1 TL1的數(shù)值轉成十進制, 分別存入R4 R3 R2 R1 R0。;------------------------------------------------------------------下面把這段轉換程序,寫成子程序的結構,便于網(wǎng)[詳細]
程序 :/*** 讀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;// 定義開關. 低電平有效.sbit K1 = P3^2;sbit K2 = P3^5;void main( void ){while([詳細]
C51編程經驗三則在單片機的開發(fā)應用中,已逐漸開始引入高級語言,C語言就是其中的一種。用慣了匯編的人,總覺得高級語言“可控性”不好,不如匯編那樣隨心所欲。以下是筆者在C51編程中的幾點經驗,希望對初學C51者有所幫助。一、C51熱啟動代碼的編制工業(yè)控制計算機,往往設有看門狗電路,看[詳細]
單片機執(zhí)行程序的過程,實際上就是執(zhí)行我們所編制程序的過程。即逐條指令的過程。計算機每執(zhí)行一條指令都可分為三個階段進行。即取指令-----分析指令-----執(zhí)行指令。取指令的任務是:根據(jù)程序計數(shù)器PC中的值從程序存儲器讀出現(xiàn)行指令,送到指令寄存器。分析指令階段的任務是:將指令寄存器中的指令操作碼取出[詳細]
1. 動手編碼之前,你需要對要編碼實現(xiàn)的解決方案有一個正式的或粗略的設計。永遠不要在沒有任何設計的前提下就開始編碼,除非所編代碼不重要。2. 優(yōu)秀的代碼文檔跟編程語言知識一樣重要。在代碼源文件中,為每個主要的代碼段添加注釋,解釋代碼的基本邏輯。最好注明程序的構建和修改日期,以及修改的原[詳細]
/* 名稱:用 ADC0808 控制 PWM 輸出說明:使用數(shù)模轉換芯片 ADC0808,通過調節(jié)可變電阻 RV1 來調節(jié)脈沖寬度,運行程序時,通過虛擬示波器觀察占空比的變化。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit CLK=P2^4; [詳細]
最近做畢業(yè)設計,需要用按鍵來觸發(fā)外部中斷。實驗的時候是正常的,但是換了個核心板以及用上自己做的PCB電路板后,出現(xiàn)了一些問題。問題如下:要求:將連接按鍵的IO口配置為上拉輸入,按鍵一端接IO口,一端接地,即當按鍵按下后,該IO口會產生一個下降沿,觸發(fā)下降沿中斷。問題:將相應的IO口配置好后,測了引[詳細]
按一下按鍵燈就亮,延時 10s 后自動滅。在亮燈期間再按一下鍵,燈立即就滅。用定時器及中斷實現(xiàn)。題目鏈接:http://zhidao.baidu.com/question/1302357964153805259.html提問者采納 2013-12-09 13:47LED EQU P3.3KEY EQU P3.7ORG 0000HLJMP STARTORG 000BHLJMP T0_INTORG 0030H;------------------------------[詳細]
/* 名稱:單片機與 PC 通信說明:單片機可接收 PC 發(fā)送的數(shù)字字符,按下單片機的K1 鍵后,單片機可向 PC 發(fā)送字符串。在 Proteus 環(huán)境下完成本 實 驗 時 , 需 要 安 裝 Virtual Serial Port Driver 和[詳細]
/* 名稱:ADC0809 數(shù)模轉換與顯示說明:ADC0809 采樣通道 3 輸入的模擬量,轉換后的結果顯示在數(shù)碼管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//各數(shù)字的數(shù)碼管段碼(共陰)uchar code DSY_CODE[詳細]
1、EQU 指令用于將一個數(shù)值或寄存器名賦給一個指定的符號名。格式: 符號名 EQU 表達式符號名 EQU 寄存器名表達式必須是一個簡單再定位表達式。用 EQU 指令賦值以后的字符名,可以用作數(shù)據(jù)地址、代碼地址、位地址或者直接當做一個立即數(shù)使用。比如:s equ bx+simov cx,[s]那么上面兩句代碼相當于如下指令:mov[詳細]
在單片機中,常用到數(shù)字與字符的方法,在C中都是使用itoa函數(shù),C51也有這個函數(shù),但是,8051的RAM是很有限的,所以盡量避免使用int型,常用的是unsigned char。當需要轉換成字符串時用itoa的話,還是有點浪費。還是自力更生,自己寫了一個,代碼如下:typedef unsigned char BYTE;BYTE * ByteToStr(BYTE n){BYT[詳細]
掃碼關注我們
0755-82591179
郵箱:ivy@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09
Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved. 粵ICP備14043402號-4