#include #include unsigned moveright(unsigned value, int n);unsigned moveleft(unsigned value, int n);main(){unsigned a;int n;SCON = 0x50;TMOD |= 0x20;TH1 = 0xf3;TR1 = 1;TI = 1;printf("請(qǐng)數(shù)入一個(gè)8進(jìn)制數(shù)
1、將要生成庫(kù)文件的代碼新建一個(gè)工程,比如LibExample,然后把代碼加到其中,在Option for target中的Output里選擇Create Library,編譯通過(guò)生成庫(kù)文件。如下2圖2、將生成的庫(kù)文件(LibExample.lib)拷貝到新項(xiàng)目(H
C51 中的變量定義 C51可支持圖5-1所列的數(shù)據(jù)類(lèi)型,但80C51單片機(jī)的CPU是一個(gè)8位微控制器。用8位字節(jié)(如:char和unsigned char)的操作比用整數(shù)或長(zhǎng)整數(shù)類(lèi)型的操作更有效。對(duì)于C這樣的高級(jí)語(yǔ)言,不管使用什么樣的數(shù)據(jù)
在Keil C51 中使用printf ,首先需要重新實(shí)現(xiàn) putchar(char c)函數(shù)。此函數(shù)在charputchar(charc){ES=0;SBUF=c;while(TI==0);TI=0;ES=1;return0;}我們先分析一下上面這個(gè)程序哈,關(guān)閉串口中斷發(fā)送單字節(jié)數(shù)據(jù)等待發(fā)送完
一、全局變量和局部變量全局變量和局部變量的區(qū)別在于作用域的不同。此外還有靜態(tài)全局變量和靜態(tài)局部變量。全局變量作用域?yàn)槿?,在一個(gè)源文件中定義,其他的源文件也可以應(yīng)用。在其他的源文件中使用extern加以聲明
C51的指針,試驗(yàn),===結(jié)果:成功/*********************************************************************//* 試指針,假設(shè)TL0存在20H,TH0存在21H,下一個(gè)TL0存在22H,TH0存在23H, 共存4組。計(jì)算這4組數(shù)據(jù)的4次
一 課題目標(biāo)本課題是用51系列單片機(jī)來(lái)實(shí)現(xiàn)頻率計(jì),并利用LCD1602液晶顯示器來(lái)顯示所測(cè)頻率值。二 課題分析LCD頻率計(jì)是利用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的數(shù)字測(cè)量?jī)x器。根據(jù)定義,頻率就是在1s內(nèi)信號(hào)變化的周期數(shù)。在
◆測(cè)試代碼:#includevoid main(void){TMOD = 0x01;//定時(shí)器T0 工作方式1 16位定時(shí)TH0=0x3c;//50ms65536-50000usTL0=0xb0;ET0 = 1;//允許定時(shí)器T0中斷EA = 1;//開(kāi)啟總中斷斷點(diǎn):TR0 = 1;//啟動(dòng)定時(shí)器,可以隨便放置^_^
/*************晶體為11.0592M,波特率9600bps***************學(xué)習(xí)型紅外線遙控程序*******/#include void Ewen(void);void Ewds(void);void Delay(void);void Irda(void);void Study(void);void Output(unsigned int
#include#define uint unsigned int#defineuchar unsigned charsbit beep = P1^5;uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,
第一節(jié) 絕對(duì)地址訪問(wèn)C51提供了三種訪問(wèn)絕對(duì)地址的方法:1. 絕對(duì)宏:在程序中,用“#include”即可使用其中定義的宏來(lái)訪問(wèn)絕對(duì)地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD具體使用可看一看ab
Accessing Absolute Memory Locations絕對(duì)存儲(chǔ)器訪問(wèn)C編程語(yǔ)言并不支持明確地提定一個(gè)靜態(tài)或全部變量的存儲(chǔ)位置。有三種方法可以明確地參考存儲(chǔ)器位置:(1)絕對(duì)存儲(chǔ)器訪問(wèn)宏(2)連接器位置控制(3)關(guān)鍵字_at_Abs
ps2key.c/*============================================================使用1602液晶顯示和PS/2鍵盤(pán)的示例 明浩 2004/2-------------------------------------------------http://www.cdle.net http://bbs.cdle.n
方法有很多的,給你一個(gè),你可以調(diào)試一下,你可以通過(guò)不同的晶振去計(jì)算定時(shí)器初值,如果你懂定時(shí)器這部分很好調(diào)通的#includesbit p1_0=P1^0;int i; //全局變量void timing(void)//晶振為3.6864M{ TMOD|=0x01; /
一.相關(guān)換算1、1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(納秒)=10^12ps(皮秒)=10^15fs(飛秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒)2、物質(zhì)在1秒內(nèi)完成周期性變化的次數(shù)叫做頻率,常用f表示?! ∥锢碇蓄l率的單位
Function Declarations函數(shù)聲明Cx51對(duì)標(biāo)準(zhǔn)C進(jìn)行了一定的擴(kuò)展,使用這些擴(kuò)展可以:(1)把一個(gè)函數(shù)聲明為一個(gè)中斷過(guò)程(2)選擇使用的寄存器組(3)選擇存儲(chǔ)器模式(4)聲時(shí)可重入(5)聲明外部函數(shù)在函數(shù)聲中包含這些
//鍵盤(pán)掃描處理,無(wú)按鍵返回0,有按鍵返回鍵值,鍵值對(duì)應(yīng)于keycode[]下標(biāo)值。8條(以P2為例)口線24按鍵 //鍵盤(pán)碼也可定義為局部數(shù)組變量 unsigned char code keycode[]= {0x00,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0
Register Usage寄存器應(yīng)用匯編程序可以在改變當(dāng)前寄存器組中所有寄存器和ACC,B,DPTR以及PSW中的內(nèi)容。當(dāng)在匯編程序中調(diào)用C函數(shù)時(shí),要注意這些寄存器都有可能被C函數(shù)改變。Overlaying Segments段覆蓋如果程序在連接
C51強(qiáng)大功能及其高效率的重要體現(xiàn)之一在于其豐富的可直接調(diào)用的庫(kù)函數(shù),多使用庫(kù)函數(shù)使程序代碼簡(jiǎn)單,結(jié)構(gòu)清晰,易于調(diào)試和維護(hù),下面介紹C51的庫(kù)函數(shù)系統(tǒng)。第一節(jié) 本征庫(kù)函數(shù)(intrinsic routines)和非本征證庫(kù)函數(shù)C
#ifndef _DELAY_51_H_#define _DELAY_51_H_#include #define uint unsigned int#define uchar unsigned char//nus延時(shí)void delay_nus( uchar n );//nms延時(shí)void delay_nms( uchar n );//2us延時(shí)void delay_2us( ucha