第一步,要有C51編譯器文件(就是Keil目錄下的C51文件夾),可以通過安裝Keil uVison4 for C51來獲得(當(dāng)然不要忘記事后卸載),或者去已經(jīng)安裝好的電腦上復(fù)制一份。第二步,安裝Keil uVision4 for ARM,這個不解釋。
#includeunsigned char val;unsigned char i,j,k;sbit k1=P3^4;void delayms(int ms) // 1ms{unsigned char i,j;for(;ms>0;ms--)for(i=6;i>0;i--)for(j=82;j>0;j--);}void main(){val=0xff;while(1){if(k1==0){delay
interrupt 函數(shù)屬性當(dāng)包含在一個聲明中指定函數(shù)為一個中斷函數(shù)例如unsigned int interruptcnt;unsigned char second;void timer0 (void) interrupt 1 using 2{ if (++interruptcnt == 4000) { /* count to 4000 */
C51及C51和匯編的混合編程的資料都是從前輩那兒偷來的,先謝謝各位前輩的分享?。海┍娝苤?,c51在編程時很難掌握程序運(yùn)行的時間,所以編寫延時程序時很難做到很精確,解決的方式有插入?yún)R編語句,但總覺得匯編用起來
包含五個中斷源,兩級中斷優(yōu)先級,優(yōu)先級可編程設(shè)置,通過IP進(jìn)行設(shè)置:PX0(IP.0),外部中斷0優(yōu)先級設(shè)定位;PT0(IP.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級設(shè)定位;PT1(IP.3),定時/計數(shù)
Data Types數(shù)據(jù)類型數(shù)據(jù)類型位數(shù)字節(jié)數(shù)值域bit10-1Signed char81-128-+127Unsigned char810-255enum8/161or 2-128-+127 or -32768-+32767Signed short162-32768-+32767Unsigned short1620-65535Signed int162-32768-
1.在 C文件中要嵌入?yún)R編代碼片以如下方式加入?yún)R編代碼:#pragma ASM;Assembler Code Here#pragma ENDASM 2.在 Project窗口中包含匯編代碼的 C文件上右鍵,選擇“Options for ...”,點擊右邊的“Generate Assembl
3.2 STDIO.H:一般I/O函數(shù)C51編譯器包含字符I/O函數(shù),它們通過處理器的串行接口操作,為支持其它I/O機(jī)制,只需修改getkey()和putchar()函數(shù),其它所有I/O支持函數(shù)依賴這兩個模塊,不需要改動。在使用8051串行口之前,
Reentrant Functions可重入函數(shù)可重入函數(shù)可以被多個進(jìn)程同時調(diào)用。當(dāng)一個可重入函數(shù)執(zhí)時,其他的處理可以中斷這個函數(shù)的執(zhí)行,而開始執(zhí)行這同一重入函數(shù)。一般情況下,Cx51中的函數(shù)不能夠被同時多次調(diào)用或者是重入。
void X5045SpiOpen(void);//打開X5045片選void X5045SpiClose(void);//關(guān)閉X5045片選void X5045WriteEnable(void);//軟件使能X5045寫操作void X5045WriteDisable(void);//軟件禁止X5045寫操作unsigned char X5045Spi
/********************************************ht9200A/ht9170程序雙音多頻接收發(fā)射程序********************************************/sbit DATA= P3^7 ;sbit CLK= P3^6 ;sbit CE= P2^7 ;/***********************
#include "reg52.h"unsigned char Count;sbit _Speak =P1^5 ;unsigned char code SONG[] ={ //祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30
調(diào)試通過。#include #include #include #include #define uchar unsigned char#define uint unsigned int#define Fclk 11059200UL /*使用11.0592M體*/#define BitRate 9600UL /*波特率定義為9600*/#define DEBUG0sbi
/******************************************************************************************** * 功能:紅外解碼。 * 硬件條件:1.CPU型號:AT89S52 * 2.晶振:12.000MHz * 3.用跳線帽短接P2.3__SI2 * 用跳
//程序功能:日歷,時鐘,溫度顯示(測溫代碼暫沒加上,加上后程序?qū)⒊^4k,注意芯片型號選用),溫度傳感器采用18B20// 日歷與時鐘,溫度分時切換顯示,采用8位共陽數(shù)碼管// 數(shù)據(jù)輸出P1, 位碼驅(qū)動P2// 也可以采用12864LCD顯示
/* Module :Kbdmenu.cDate:------Usage:P10~P12 use to DownKey,UpKey,CRKey*/#i nclude#i nclude#define SIZE_OF_KEYBD_MENU 20 //菜單長度uchar KeyFuncIndex=0;//uchar KeyFuncIndexNew=0;void (*KeyFuncPtr)()
Keil c51號稱作為51系列單片機(jī)最好的開發(fā)環(huán)境,大家一定都很熟悉。它的一些普通的特性大家也都了解,(書上也都說有)如:因為51內(nèi)的RAM很小,C51的函數(shù)并不通過堆棧傳遞參數(shù)(重入函數(shù)除外),局部變量也不存儲在堆
這一講說說如何用取模軟件將圖形轉(zhuǎn)成數(shù)據(jù)吧,有很多人反復(fù)問我這個問題,我就再羅嗦下吧! 取字模的軟件有很多款。有的只能將文字轉(zhuǎn)成字模數(shù)據(jù),有的既可將文本文字轉(zhuǎn)字模也能將圖片轉(zhuǎn)成點陣數(shù)據(jù)。在這里我就介紹
1. Warning 280:’i’:unreferenced local variable說明局部變量i 在函數(shù)中未作任何的存取操作。解決方法消除函數(shù)中i 變量的宣告。2. Warning 206:’Music3’:missing function-prototype說明Music3( )函數(shù)未作宣告
;;///////////////////////////////////////////////////////////;;;;[匯編原創(chuàng)]c51超長時間延時程序1小時到1000...小時。;;19:44 2007-3-10;;;;6MHZ晶振為100ms;若晶振為12mhz時則50ms;進(jìn)入一次定時中斷;;;;你用定時