关于C51中的CONST。。。(没用过单片机编程的不用解答了)到底系统分配内存了么,与define的区别。。 c51单片机编程中,怎么检测按键?

\u5728C51\u4e2d\u600e\u6837\u624d\u80fd\u907f\u514d\u7cfb\u7edf\u5206\u914d\u4f7f\u7528\u7531at\u5b9a\u4e49\u7684\u53d8\u91cf\u5185\u5b58

1\u3001\u5b9a\u4e49\u4e00\u4e2a\u5e38\u91cf\u4e00\u822c\u53ef\u7528EQU\u4f2a\u6307\u4ee4\u6765\u5b9e\u73b0 \u4e00\u822c\u4f7f\u7528\u683c\u5f0f\uff1a \u7b26\u53f7\u540d EQU \u8868\u8fbe\u5f0f \u5982\uff1a NUMBER EQU 200H ; \u7ed9\u7f13\u51b2\u533a\u7684\u957f\u5ea6\u53d6\u4e00\u4e2a\u7b26\u53f7\u540d STRING EQU \u201cMy Strings" LEN EQU NUMBER+22\u3001\u5b9a\u4e49\u53d8\u91cf \u6c47\u7f16\u8bed\u8a00\u5728\u6570\u636e\u6bb5\u4f7f\u7528\u6570\u636e\u5b9a\u4e49\u4f2a\u6307\u4ee4\u5b9a\u4e49\u53d8\u91cf\uff0c\u5bf9\u6570\u636e\u5b9a\u4e49\u4f2a\u6307\u4ee4\u8bf4\u660e\u5982\u4e0b\uff1a \uff081\uff09db\uff08(byte\uff0c\u5b57\u8282\uff0c\u4e00\u5b57\u8282\u5bbd\uff09 \uff082\uff09dw\uff08word\uff0c\u5b57\uff0c\u4e24\u5b57\u8282\u5bbd\uff09 \uff083\uff09dd\uff08double word\uff0c\u53cc\u5b57\uff0c\u56db\u5b57\u8282\u5bbd\uff09 \u793a\u4f8b\u5982\u4e0b\uff1a BUF0 DB 1 ;\u5b9a\u4e49\u4e00\u4e2a\u5b57\u8282\u578b\u53d8\u91cf\uff0c\u540d\u79f0\u662fBUF0\uff0c\u521d\u59cb\u503c\u662f1 BUF1 DB "2" ;\u5b9a\u4e49\u4e00\u4e2a\u5b57\u7b26\u578b\u53d8\u91cf\uff0c\u540d\u79f0\u662fBUF1\uff0c\u521d\u59cb\u503c\u662f"2" BUF2 DW 10H ;\u5b9a\u4e49\u4e00\u4e2a\u5b57\u578b\u53d8\u91cf\uff0c\u540d\u79f0\u662fBUF2\uff0c\u521d\u59cb\u503c\u662f10H3\u3001\u5206\u914d\u5185\u5b58 \u53ef\u5728\u5728\u524d\u9762\u5b9a\u4e49\u53d8\u91cf\u7684\u57fa\u7840\u4e0a\u5229\u7528DUP\u4f2a\u6307\u4ee4\u6765\u5206\u914d\u5185\u5b58 \u5982\uff1a MEM1 DW 5 DUP(20) ; \u5206\u914d20\u4e2a\u5b57\u957f\u5ea6\u7a7a\u95f4\uff0c\u6bcf\u4e2a\u5b57\u7684\u521d\u59cb\u5316\u4e3a5.

while (K1!=0)//K1\u6ca1\u6709\u88ab\u6309\u4e0b\u6267\u884c\u5faa\u73af{d1=0;d2=1;delay();d1=1;d2=0;delay();}

我编程的时候用const的地方用的不多
一般如果要申明一个语句或者一个变量都用#define

你说的const我看到C++里面提到过
说到const是用来维护系统的稳定性的
防止你定义一个变量后在其他地方又被不小心修改了
相当于你定义的这个变量是一个只读的变量

我的理解是:const如果要用应该是用来定义程序代码段里面的内容
比方说你定义一个数码管的显示的数组可以用const
因为这个数组的内容只是用来调用的,不需要用来修改

const既然也是用来定义变量的,而且是定义只读变量的
当然在系统中要占用内存了
事实上,你在你的单片机的程序中加一个比方说:、
const int PI=3.14;
你编译后你的data的大小要加2.
而define是一个宏定义
应该是起到声明的作用
你用define声明一个语句
他不占据内存空间
不信你自己就试试。

个人理解,如果有误,请多多指教。

和标准的C没有什么区别,const只不过说这个指针或者存储空间的数据不能被写,只能读,一般加了const有点code的意思!

const一般也和你当前变量或者指针的存放空间有关系 比如说你用的data, pdata还是xdata空间,得要看你局的代码是怎么写的!

#define是一个macro其实就是一个preprocesser,引用的时候编译器会把它做替换处理。

C51里面const可能最多的就是来修饰外部地址 比如说你可以定义一个片外地址常数。
unsigned char *const WR_ADDR= 0x4000;

引用的时候就直接 WR_ADDR[offset] = ***;或者variable = WR_ADDR[offset]

  • 51鍗曠墖鏈16璺祦姘寸伅鎬庝箞鐢–璇█鍐,骞舵眰姣忎釜姝ラ鐨勮瑙
    绛旓細unsigned char b; //鍦C51 缂栫▼涓洜鍐呭瓨鏈夐檺灏藉彲鑳芥敞鎰忓彉閲忕被鍨嬬殑浣跨敤 //灏藉彲鑳戒娇鐢ㄥ皯瀛楄妭鐨勭被鍨,鍦ㄥぇ鍨嬬殑绋嬪簭涓緢 鍙楃敤 do{ for (b=0; b<32; b++) { for(a=0; a<30000; a++); //寤舵椂涓娈垫椂闂 P1 = design[b]; //璇诲凡瀹氫箟鐨勮姳鏍锋暟鎹苟鍐欒姳鏍锋暟鎹埌P1 鍙 } }while(1); } 绋嬪簭涓殑鑺辨牱...
  • ...浣嗘槸鐢╬rotues浠跨湡,灏辨案涔呭惊鐜簡 #include<reg51.h> const...
    绛旓細杩欑鎯呭喌鏄▼搴忚窇椋烇紝杩欐槸鍚勪腑鍗曠墖鏈鸿嚜韬喅瀹氱殑銆傛湁鐨勫崟鐗囨満绋嬪簭鍐呭鏋滄病鏈夊惊鐜▼搴忥紝閭e畠浼氫粠澶存墽琛屽埌鏈鍚庯紝鐒跺悗杩斿洖鏈寮濮嬬户缁墽琛屻備竴鐩撮噸澶嶃傝屾湁鐨勫崟鐗囨満鍐嶆墽琛屼竴娆′箣鍚庯紝灏变細鍋滄銆傛湁鐨勫垯鏄墽琛屽畬鍚庡彲鑳戒細杩涘叆鏃犲簭杩愯鐘舵侊紝灏卞彧涓嶇煡閬撶▼搴忚窇鍝噷鍘讳簡锛 鎵浠ワ紝鍦ㄥ啓鍗曠墖鏈虹▼搴忕殑鏃跺欙紝鏈濂芥槸鍔犱笂while...
  • C璇█涓殑鈥渃ode鈥濇槸浠涔堟剰鎬濆晩
    绛旓細code鏄痥eil C51閲岄潰鐨鍏抽敭瀛楋紝涓鑸敤浜庡畾涔夊父閲忔暟缁勶紝鎰忔濇槸鍛婅瘔缂栬瘧璇存妸杩欎釜鏁扮粍鏀惧湪ROM瀛樺偍銆俢ode鐨勪綔鐢ㄦ槸鍛婅瘔鍗曠墖鏈猴紝瀹氫箟鐨勬暟鎹鏀惧湪ROM锛堢▼搴忓瓨鍌ㄥ尯锛夐噷闈紝鍐欏叆鍚庡氨涓嶈兘鍐嶆洿鏀广傚洜涓篊璇█涓病鍔炴硶璇︾粏鎻忚堪瀛樺叆鐨勬槸ROM杩樻槸RAM锛堝瘎瀛樺櫒锛夛紝鎵浠ュ湪杞欢涓坊鍔犱簡杩欎竴涓鍙ヨ捣鍒颁唬鏇挎眹缂栨寚浠ょ殑浣滅敤锛屽搴旂殑...
  • 鍗曠墖鏈虹殑闂
    绛旓細鍗曠墖鏈C51鏁板瓧棰戠巼璁$▼搴/*** //澶存枃浠堕儴鍒,鏂囦欢鍚:plj.h /***...extern const uchar NoCur=1; //鏈夋樉绀烘棤鍏夋爣 extern const uchar CurNoFlash=2; //鏈夊厜鏍囦絾涓嶉棯鐑 extern const uchar CurFlash...if(xPos>=15) //濡傛灉XPOS涓殑鍊兼湭鍒15(鍙樉绀虹殑鏈澶氫綅) break; } } void SetCur(uchar ...
  • 鍗曠墖鏈篊 绋嬪簭涓畾涔夌殑鏁扮粍瀛楄妭杩囧ぇ璇ユ庝箞鍔
    绛旓細C51涓嶅厑璁稿鏁扮粍鐨勫ぇ灏忎綔鍔ㄦ佸畾涔夛紝鍗虫暟缁勫ぇ灏忎笉渚濊禆浜庣▼搴忚繍琛屻傛暟缁勫垵濮嬪寲鐨勬椂鍊欙紝澶у皬蹇呴』宸插畾涔夌被鍨嬨傝繖涓湪C++鏍囧噯涓湁鎻忚堪銆俢onst鐨勫彉閲忎笉涓瀹氭槸宸插畾涔夌殑锛屽悜浣犱笂闈鐨刢onst int m=n;闇瑕佺湅n鏃跺欏湪缂栬瘧闃舵鏄惁鏄凡瀹氫箟鐨勩傛暟缁勪笅鏍囨渶濂戒笉瑕佺敤鏈煡鏁版嵁鐨勫彉閲忋
  • 鍗曠墖鏈c51,鏁扮爜绠℃樉绀1.锝9.鐨刢璇█绋嬪簭鎬庝箞缂?
    绛旓細include "reg52.h"const char code shu[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void main(void){ TMOD=0x11; TH0=0x3c; TL0=0xb0; ET0=1; TR0=1; EA=1; while(1) { ; }}dingshiqi1()interrupt 1{ static unsigned ...
  • C51濡備綍瀹氫箟瀛楃涓插父閲?鍏跺瓨鍌ㄥ湪鍝瀛樺偍鍣ㄤ腑?
    绛旓細const char RAM ,ROM閮借
  • Keil MDK 閮芥湁鍝簺鍏抽敭瀛?
    绛旓細Keil C51 鍩烘湰鍏抽敭瀛楋細涓銆佺敱ANSI鏍囧噯瀹氫箟鐨勫叡32涓:auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static 浜屻並eil Cx51 鎵╁睍鐨勫叧閿瓧锛•...
  • C51绋嬪簭姹傝В!!!
    绛旓細鏁扮粍A銆怤銆涓殑鍊煎簲璇ュ氨鏄瘂}涓殑绗琋涓笺備綘璇寸殑鎯呭喌,temp=5,BCD[5]=4銆
  • c51搴撳嚱鏁颁腑鏁扮粍鎺掑簭鐨勫嚱鏁板悧?涓轰綍娌℃湁qsort鐨勫嚱鏁板師鍨?
    绛旓細鑷繁鍐欎竴浠 瀵逛竴缁存暟缁勭殑鎺掑簭瀹炰緥锛堜粠灏忓埌澶ф帓搴忥級锛歩nclude <stdio.h> include <stdlib.h> int comp( const void *a, const void * b){ return *(int *)a-*(int *)b;} int main(){ int *array;int n;scanf("%d",&n);array = (int *) malloc ( n * sizeof(int));int i ...
  • 扩展阅读:1688平台官网 ... couns门禁官网 ... 58官网首页 ... www.968777.cn ... ymc色谱柱c18 ... c5下载app ... ccstoys官方网站 ... www.9377.cn ... 真人电子游戏平台app ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网