這一顆,我們學(xué)習(xí)外中斷的用法。也就是外部IO的中斷INT0,和INT1。對應(yīng)的引腳是P32和P33。在我們的電路圖中,P32也就是接在K1的引腳。所以當(dāng)我們按下P32接到地的時候,可以觸發(fā)一個INT0中斷,當(dāng)然,必須預(yù)先初始化才
嘀聲報警信號輸出試驗我們將學(xué)習(xí)如何控制蜂鳴器的聲音輸出,這一課我們只輸出一個頻率的聲音,之后幾課我們將逐步輸出更為復(fù)雜的音樂聲,你甚至可以自己輸入一個樂譜,直接播放出來。蜂鳴器有有源和無源的幾種。也稱
利用LCD1602實現(xiàn)數(shù)字和英文字符的顯示實驗原理圖實驗程序#include#include#include#include#include#define busy 0x80 //用于檢測LCD 狀態(tài)字中的Busy 標(biāo)識#define RSaddr 0x1000#define RWaddr 0x2000#define CSadd
在單片機中,常用到數(shù)字與字符的方法,在C中都是使用itoa函數(shù),C51也有這個函數(shù),但是,8051的RAM是很有限的,所以盡量避免使用int型,常用的是unsigned char。當(dāng)需要轉(zhuǎn)換成字符串時用itoa的話,還是有點浪費。還是自
微處理器一般用于特定環(huán)境和特定用途,出于成本、功耗和體積的考慮,一般都要求盡量節(jié)省使用資源,并且,由于微處理器硬件一般都不支持有符號數(shù)、浮點數(shù)的運算,且運算位有限,因此,分配變量時必須仔細(xì)。另外要說明的
DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)
/*******鋸齒波程序*******/#include "reg51.h"#include#define DOUT XBYTE[0x7fff]void delay(unsigned char x){ unsigned char y;for(y=x;y>0;y--);}void DAconvert(unsigned char k){ DOUT=k;delay(15);}void juc
1.#i nclude<>指要在編輯器設(shè)定目錄下,#i nclude""指的是在當(dāng)前工程目錄下。2.要調(diào)用另一個文件中的函數(shù),要把這個函數(shù)文件放到當(dāng)前工程目錄下,并且在工程中添加此文件。3.命名中不能有-,比如:byq-ee會認(rèn)為是錯誤的
這是1302的C文件,1302.h文件在后來面#include"1302.h"code unsigned char write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分時日月周年 最低位讀寫位code unsigned char read_rtc_address[7]={0x
1.某單片機系統(tǒng)的P2口接一數(shù)模轉(zhuǎn)換器DAC0832輸出模擬量,現(xiàn)在要求從DAC0832輸出連續(xù)的三角波,實現(xiàn)的方法是從P2口連續(xù)輸出按照三角波變化的數(shù)值,從0開始逐漸增大,到某一最大值后逐漸減小,直到0,然后再從0逐漸增大
在LCD1602上面顯示"I LOVE MCU!"和"I LOVE MCU!"#include //#define uchar unsigned char;sbit RS = P1^2; //位定義,液晶的數(shù)據(jù)/命令選擇sbit RW = P1^1; //位定義,液晶的讀寫選擇sbit EN = P1^0; //位定義,液晶使
/*=========================================================1602液晶顯示的實驗例子-------------------------------------------------| DB4-----P0.4 | RW-------P2.1| DB5-----P0.5 | RS-------P2.2| DB6-----
文件:lcd_1602.h#ifndef _LCD1602_TRAVELER_H_#define _LCD1602_TRAVELER_H_/*************************待配置項*******************************/#define DATA_LCD P0 //液晶與MCU 數(shù)據(jù)口sbit RS_LCD = P2^5; // 液
今天在調(diào)1602顯示的時候又費了點小周折,由于平常我們一般是對液晶進(jìn)行寫操作,所以在有的開發(fā)板上這個引腳直接是接地的,今天自己用杜邦線連了個1602忽略了這個問題,后來接地就好了。數(shù)據(jù)傳輸?shù)乃木€接法和八線接法
標(biāo)準(zhǔn)的C語言中沒有空語句。但在單片機的C語言編程中,經(jīng)常需要用幾個空指令產(chǎn)生短延時的效果。這在匯編語言中很容易實現(xiàn),寫幾個nop就行了。在keil C51中,直接調(diào)用庫函數(shù):#include // 聲明了void _nop_(void);_nop
#include#include#include "Delay.h"sbit DS18b20_DataPort=P1^7; //引腳選擇bit DS18b20_reset(void) //返回0-有設(shè)備連接1-無設(shè)備連接{unsigned char i;bit RstFlag;RstFlag=1;DS18b20_DataPort=0;delay_us(600);//
寫這個8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發(fā)現(xiàn)自己對C語言有些基本知識點和編程規(guī)范有很多不懂的地方,有些是自己以前的編程習(xí)慣不好,有些就是基礎(chǔ)知識不扎實的表現(xiàn),所以總結(jié)出來。一
一般說1T 4T 6T 12T的單片機是指的什么?標(biāo)準(zhǔn)51是12T的,就是說12個時鐘周期(晶振周期,例如12M的,周期是1/12M,單位秒),機器做一個指令周期,剛好就是1/12M*12=1uS,常見指令例如nop就是一個周期,剛好1uS,其他的
AVR單片機延時程序:1.毫秒級的延時 延時1ms;void delay_1ms(void){unsigned int i;for(i=1;i<(unsigned int)(xtal*143-2);i++);}在上式中,xtal為晶振頻率,單位為MHz. AVR 延時程序當(dāng)晶振頻率為8M時,延時函數(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é)變