/* 名稱:INT0 中斷計數(shù)說明:每次按下計數(shù)鍵時觸發(fā)INT0 中斷,中斷程序累加計數(shù),計數(shù)值顯示在 3 只數(shù)碼管上,按下清零鍵時數(shù)碼管清零*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//0~9 的段碼uchar&[詳細]
/* 名稱:繼電器控制照明設(shè)備說明:按下 K1 燈點亮,再次按下時燈熄滅*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; sbit RELAY=P2^4;//延時void DelayMS(uint ms){uchar[詳細]
1)h文件作用1 方便開發(fā):包含一些文件需要的共同的常量,結(jié)構(gòu),類型定義,函數(shù),變量申明;2 提供接口:對一個軟件包來說可以提供一個給外界的接口(例如: stdio.h)。2)h文件里應(yīng)該有什么常量,結(jié)構(gòu),類型定義,函數(shù),變量申明。3)h文件不應(yīng)該有什么變量定義, 函數(shù)定義。4)extern問題對于變量需要extern;對于函數(shù)不[詳細]
/* 名稱:開關(guān)控制報警器說明:用 K1 開關(guān)控制報警器,程序控制 P1.0 輸出兩種不同頻率的聲音,模擬很逼真的報警效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit SPK=P1^0;sbit K1=P1^7;&n[詳細]
在MCS-51單片機應(yīng)用系統(tǒng)中,一般應(yīng)設(shè)計循環(huán)程序、查表程序、散轉(zhuǎn)程序、數(shù)值轉(zhuǎn)換程序、復(fù)電運算程序等。還要有一些與外圍芯片、外圍設(shè)備有關(guān)的應(yīng)用程序,如顯示鍵盤、打印、采樣等。前者,可參考一些子程序庫;對于后者,要根據(jù)不同的硬件電路和系統(tǒng)要求進行設(shè)計。 [詳細]
PIC的編程是比較簡單的,但是對于初學(xué)者來說還是有些概念不太容易理解,從而影響編程。例如,PIC單片機初學(xué)者在編寫程序時就比較容易在BANK設(shè)置和PC操作上出錯。1、 BANK設(shè)置錯誤:先來看一段程序:includePORTDB EQU 20H……STARTmovlw b‘11110000’movwf PORTDBclrf TRISD[詳細]
在C51中,如何訪問DATA空間、PDATA空間、XDATA空間、CODE空間某個確定地址單元?答:用指針定義的訪問存儲器的宏使用時需要用預(yù)處理命令把該頭文件包含到文件中,形式為:#include 。(1)按字節(jié)訪問存儲器宏的形式宏名[地址](2)按整型數(shù)訪問存儲器宏的形式宏名[下標(biāo)] [詳細]
寫這個8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發(fā)現(xiàn)自己對C語言有些基本知識點和編程規(guī)范有很多不懂的地方,有些是自己以前的編程習(xí)慣不好,有些就是基礎(chǔ)知識不扎實的表現(xiàn),所以總結(jié)出來。一、.H文件與.C文件的關(guān)系:迄今為止,寫過的程序都是一些很簡單的程序,從來沒有想到要自己寫[詳細]
常用的參數(shù)傳遞方法有:(1)用工作寄存器或累加器傳遞參數(shù)(2)用指針寄存器傳遞參數(shù)(3)用堆棧的方法傳遞參數(shù)(4)程序段參數(shù)傳遞方法 [詳細]
1、在某程序中需要定義如下變量:(1)定義數(shù)碼管的顯示0~9的共陰極顯示代碼(0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07, 0x7f, 0x6f)數(shù)組dis_code,將其定義在CODE區(qū)。(2)定義定時器/計數(shù)器0的賦計數(shù)值的高、低字節(jié)變量TL0_L和TH0_H,將其定義在DATA去區(qū)的0x30、0x31處。(3)定義長度為20的無符號字符型數(shù)組da[詳細]
1)auto這個關(guān)鍵字用于聲明變量的生存期為自動,即將不在任何類、結(jié)構(gòu)、枚舉、聯(lián)合和函數(shù)中定義的變量視為全局變量,而在函數(shù)中定義的變量視為局部變量。這個關(guān)鍵字不怎么多寫,因為所有的變量默認就是auto的。(2)register這個關(guān)鍵字命令編譯器盡可能的將變量存在CPU內(nèi)部寄存器中而不是通過內(nèi)存尋址訪問以提高[詳細]
在C51中,函數(shù)返回值傳遞的規(guī)則是什么?答:(1)調(diào)用時參數(shù)的傳遞分三種情況:少于等于3個參數(shù)時通過寄存器傳遞(寄存器不夠用時通過存儲區(qū)傳遞),多于3個時有一部分通過存儲區(qū)傳遞,對于重入函數(shù)參數(shù)通過堆棧傳遞。通過寄存器傳遞速度最快。(2)函數(shù)返回值的傳遞當(dāng)函數(shù)有返回值時,其傳遞都是通過寄存器 [詳細]
/* 名稱:閃爍的 LED說明:LED 按設(shè)定的時間間隔閃爍*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延時void DelayMS(uint x){uchar i;while(x--){for(i=0;i<[詳細]
如何在C51文件和匯編語言文件中相互調(diào)用對方文件中的函數(shù)?答:匯編語言文件中對于函數(shù)的調(diào)用方法,與調(diào)用匯編語言中的函數(shù)一樣,如:LCALL DISPLAY在C語言文件中調(diào)用匯編語言中的函數(shù),必須先聲明再調(diào)用。聲明格式如下:extern 返回值類型 函數(shù)名(參數(shù)表);例如: extern unsigned char right_shift ( char,[詳細]
1. 無論什么時候我們都要以實際應(yīng)用的角度去考慮程序的編寫。2. 無論什么時候都不要讓CPU白白浪費等待,尤其是延時(超過1MS)這樣的地方。3.設(shè)計相應(yīng)驅(qū)動電路時候,應(yīng)該仔細閱讀芯片的數(shù)據(jù)手冊,了解每個引腳的驅(qū)動能力,以及整個芯片的驅(qū)動能力。4.最重要的是,如何去釋放CPU(如果是led每500ms閃爍一次,那么[詳細]
1 簡 述所有的中檔系列PIC單片機,PORTB端口最高的4個引腳(RB7~RB4)在設(shè)為輸入模式時,當(dāng)輸入電平由高到低或由低到高發(fā)生變化時,可以讓單片機產(chǎn)生中斷。這就是通常所說的引腳狀態(tài)變化中斷。在設(shè)計引腳中斷程序時,有三個需要特別注意的地方。一是,在清除P0RTB中斷標(biāo)志位RBIF之前,必須安排一條必不可少的,[詳細]
1.編寫一C51函數(shù),把從鍵盤輸入的5位十進制數(shù)數(shù)轉(zhuǎn)換成一個無符號整型數(shù)(假設(shè)未超出整型數(shù)范圍)。設(shè)從鍵盤輸入的數(shù)存放在一無符號數(shù)組中,低位數(shù)為低下標(biāo)元素。unsigned char data key_buffer[5];unsigned int trans_int(void){ unsigned char data i; unsigned in[詳細]
/* 名稱:8 只 LED 左右來回點亮說明:程序利用循環(huán)移位函數(shù)_crol_和_cror_形成來回滾動的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延時void DelayMS(uin[詳細]
(1)這兩天一直在受一個問題的干擾,那就是做單片機串口通信的時候,有些數(shù)據(jù)總是傳得不對:當(dāng)顯示0~f這些數(shù)字的時候,顯示沒有錯誤,而顯示其它8位數(shù)據(jù)的時候都錯了,發(fā)送11(16進制)時,到單片機上居然是49(十進制),這顯然是不對的,一直懷疑是程序的問題,反復(fù)地檢查和修改之前編的一個數(shù)碼管動態(tài)顯示子程序[詳細]
掃碼關(guān)注我們
0755-82591179
郵箱:ivy@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09
Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved. 粵ICP備14043402號-4