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