51单片机C程序 51单片机C语言程序

51\u5355\u7247\u673ac\u7a0b\u5e8f\uff01

\u6b63\u786e\u7684\u8868\u8fbe\u5f0f\u5e94\u8be5\u662f\uff1aP0=number[a[0]];
\u8fd9\u5e94\u8be5\u662f\u4eceP0\u53e3\u8f93\u51fa\u6570\u7801\u7ba1\u663e\u793a\u7684\u6bb5\u7801\u6570\u7ec4\uff0c\u800cnumber[ i ]\u662f\u4e2a\u6570\u7ec4\u5373\u4e3a\u6bb5\u7801\u8868\uff0c\u800ca[ i ] \u4e5f\u662f\u4e00\u4e2a\u6570\u7ec4\uff0c\u662f\u4e0e\u6570\u7801\u7ba1\u76f8\u5bf9\u5e94\u7684\u7f13\u51b2\u533a\uff0c\u800ca[0]\u662f\u4fdd\u5b58\u7b2c\u4e00\u4e2a\u6570\u7801\u7ba1\u663e\u793a\u7684\u6570\u636e\uff0c\u4f8b\u5982a[0]=2; \u610f\u601d\u662f\u7b2c\u4e00\u4e2a\u6570\u7801\u7ba1\u8981\u663e\u793a2\uff0c\u628a2\u4ee3\u5165\u6bb5\u7801\u8868\u4e3anumber[2]; \u5f97\u52302\u7684\u6bb5\u7801\uff0c\u4eceP0\u53e3\u8f93\u51fa\uff0c\u5373\u53ef\u5b9e\u73b0\u7b2c\u4e00\u4e2a\u6570\u7801\u7ba1\u663e\u793a2\u4e86\u3002

\u8fd9\u4e2a\u5f88\u7b80\u5355\uff0c\u53ef\u4ee5\u5229\u7528\u5355\u7247\u673a\u7684\u5b9a\u65f6\u5668\u6765\u5b8c\u6210

\u5f53\u6709\u8109\u51b2\u8f93\u5165\u7684\u65f6\u5019\uff0c\u542f\u52a8\u5b9a\u65f6\u5668\uff0c\u5e76\u5bf9\u5b9a\u65f6\u5668\u7684\u8ba1\u6570\u503c\u8fdb\u884c\u6e05\u96f6

\u6bcf\u4e00\u6b21\u8109\u51b2\u8f93\u5165\u90fd\u6e05\u96f6\u8ba1\u6570\u503c\uff0c\u5f53\u8109\u51b2\u6d88\u5931\u540e\uff0c\u5b9a\u65f6\u5668\u7684\u8ba1\u6570\u503c\u8fbe\u5230\u6307\u5b9a\u65f6\u95f4\u5219\u5173\u95ed

\u5173\u95ed\u7684\u540c\u65f6\uff0c\u8c03\u7528\u5176\u5b83\u51fd\u6570\uff0c\u4f8b\u5982\u4f60\u7684\u7ee7\u7535\u5668\u63a7\u5236

\u9700\u8981\u8bf4\u660e\u7684\u662f\uff0c\u6211\u4f7f\u7528\u7684\u5f00\u53d1\u677f\u548c\u4f60\u7684\u4e0d\u89c1\u5f97\u4e00\u6837\uff0c\u6240\u4ee5\u7aef\u53e3\u7684\u4f7f\u7528\u53ea\u80fd\u4f60\u81ea\u5df1\u4fee\u6539\u4e86

\u4f46\u7a0b\u5e8f\u5df2\u7ecf\u7ecf\u8fc7\u786c\u4ef6\u6d4b\u8bd5\u6210\u529f\uff0c\u8bf7\u653e\u5fc3\u4f7f\u7528\uff0c\u5982\u679c\u6ee1\u610f\u8bb0\u5f97\u91c7\u7eb3\u54e6

/***************************************************************************/
#include //51\u5355\u7247\u673a\u901a\u7528\u5934\u6587\u4ef6
sbit P24=P1^0; sbit P25=P1^1; sbit P26=P1^2; sbit P27=P1^3;//\u6570\u7801\u7ba1\u4f4d\u9009\u7aef\u53e3
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//\u6570\u7801\u7ba1\u663e\u793a\u7f16\u7801
sbit k=P3^7; sbit KK=P1^4;//\u5b9a\u4e49\u6309\u952e\u548c\u7ee7\u7535\u5668\u7aef\u53e3
int t,n,s,fe=0;
/***************************************************************************/
void YS(int hs){int hk;for(;hs>0;hs--){for(hk=100;hk>0;hk--);}}//\u5ef6\u65f6\u51fd\u6570
/***************************************************************************/
void XS(int xs)//\u6570\u7801\u7ba1\u663e\u793a
{
char d1,d2,d3,d4;
d1=(xs/1)%10; d2=(xs/10)%10; d3=(xs/100)%10; d4=(xs/1000)%10;
P0=table[d1]; P27=0; YS(5); P27=1;
P0=table[d2]; P26=0; YS(5); P26=1;
P0=table[d3]; P25=0; YS(5); P25=1;
P0=table[d4]; P24=0; YS(5); P24=1;
}
/***************************************************************************/
void main(void)//\u4e3b\u51fd\u6570
{
TMOD=0x01; EA=1; ET0=1; KK=0;//\u5b9a\u65f6\u5668\u521d\u59cb\u5316
TH0=(65536-921)/256; TL0=(65536-921)%256;//\u5b9a\u65f6\u5668\u521d\u503c
while(1)
{
XS(t);//\u8c03\u7528\u6570\u7801\u7ba1\u663e\u793a\u51fd\u6570
if(k==0)//\u5982\u679c\u6309\u952e\u88ab\u6309\u4e0b
{
YS(10);//\u5ef6\u65f6\u53bb\u6296\u52a8
if(k==0)//\u5982\u679c\u662f\u6709\u6548\u6309\u952e
{
TR0=1;//\u542f\u52a8\u5b9a\u65f6\u5668\uff0c\u5f00\u59cb\u8ba1\u65f6
n=0;//\u6bcf\u6b21\u6309\u952e\u90fd\u6e05\u7a7a\u5b9a\u65f6\u8ba1\u6570
t++;//\u6309\u952e\u503c\u7d2f\u52a0\u4e00\u6b21
KK=1;//\u7ee7\u7535\u5668\u6253\u5f00
while(!k){XS(t);}//\u7b49\u5f85\u6309\u952e\u677e\u5f00\uff0c\u5e76\u8c03\u7528\u6570\u7801\u7ba1\u663e\u793a\uff0c\u907f\u514d\u9ed1\u5c4f
}
}
if(fe==1)//\u5982\u679c\u6ca1\u6309\u952e\u8f93\u5165
{
fe=0;t=0;//\u6e05\u7a7a\u6309\u952e\u8ba1\u6570\u503c\uff0c\u5e76\u8bbe\u7f6e\u6807\u8bc6\u7b26
KK=0;//\u7ee7\u7535\u5668\u5438\u5408
}
}
}
/***************************************************************************/
void int1() interrupt 1 //\u5b9a\u65f6\u5668\u4e2d\u65ad
{
TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;//n\u7b49\u4e8e100\u65f6\uff0c\u5219\u4e3a1\u79d2
if(n>1000){TR0=0;n=0;fe=1;}//\u5982\u679c\u8fbe\u5230\u6307\u5b9a\u65f6\u95f4\uff0c\u5219\u5173\u95ed\u5b9a\u65f6\u5668\uff0c\u5e76\u8bbe\u7f6e\u6807\u8bc6\u7b26
}
/***************************************************************************/

sfr P0M1 = 0X93; //这些是预定义寄存器的地址的
sfr P0M0 = 0X94; // 在编译过程中会把 POM1之类的东西变成这些地址
sfr P1M1 = 0X91; //mcu在运行中也是对这些地址操作的
sfr P1M0 = 0X92;
sfr P2M1 = 0X95;
sfr P2M0 = 0X96;
uchar CONT_1; //定义一个常量 作为计数器 使用,类型无符号整形数
P0M1 = 0; //将io口设置为推挽输出
P1M1 = 0; // 下面这些事定义了这些寄存器的初始值
P2M1 = 0; //以免第一次使用这些寄存器时出错
P0M0 = 0XFF;
P1M0 = 0XFF;
P2M0 = 0XFF;

前面几个sfr都是定义寄存器的地址,然后定义一个计数器CONT_1,接下来的就是给刚才定义的寄存器赋初值了。

都他强了,我菜鸟一个,来学习下

sfr P0M1 = 0X93;
sfr P0M0 = 0X94;
sfr P1M1 = 0X91;
sfr P1M0 = 0X92;
sfr P2M1 = 0X95;
sfr P2M0 = 0X96;
这一段是对通用IO的设置寄存器定义为好记的变量名。具体是什么寄存器你就得结合手册查一下,估计是设置IO口方向、内部上来电阻之类的,或者是配置给某些内部器件如PCA计数器、定时器、计数器等。
至于下面的应该是电磁波或者超声测距之类的算法!!
看起来不是很复杂。
你要是抄板子的话就得想办法知道原来用的什么MCU!再找到它的手册!
有兴趣的话可以研究一下!
[email protected]

  • 寰堢畝鐨51鍗曠墖鏈篊璇█娴佹按鐏绋嬪簭
    绛旓細1銆51鍗曠墖鏈篊璇█瀹炵幇寰幆8涓祦姘寸伅宸︾Щ涓夋锛屽悗鍙崇Щ涓夋銆備緥绋嬶細include<reg51.h> //51鍗曠墖鏈哄ご鏂囦欢#include <intrins.h> //鍖呭惈鏈夊乏鍙冲惊鐜Щ浣嶅瓙鍑芥暟鐨勫簱#define uint unsigned int //瀹忓畾涔#define uchar unsigned char //瀹忓畾涔塻bit beep=P2^3;void delay(uint z) //寤舵椂鍑芥暟,z...
  • 姹:濡備綍灏咰璇█绋嬪簭寮勮繘51鍗曠墖鏈?
    绛旓細C璇█鏄汉鑳界敤鐨勬枃瀛楄瑷锛鍗曠墖鏈鍙兘鐢ㄧ敱0鍜1缁勬垚鐨勬満鍣ㄨ瑷锛岃鎯冲崟鐗囨満杩愯C璇█锛屾嫝鍏辫涓夋锛1锛夊啓C璇█绋嬪簭銆2锛夌敤缂栬瘧杞欢缂栬瘧C绋嬪簭骞剁敓鎴恏ex浠g爜銆3锛夌敤涓嬭浇绾挎垨鐑у綍鍣ㄥ皢hex浠g爜鍐欏叆鍗曠墖鏈恒
  • 姹51鍗曠墖鏈鐢靛瓙閽熺殑C绋嬪簭浠g爜
    绛旓細2012-09-08 姹51鍗曠墖鏈虹簿鍑嗛椆閽焎璇█浠g爜! 1 2014-03-26 51鍗曠墖鏈 c璇█鍐欑殑鐢靛瓙鏃堕挓绋嬪簭 璇峰府蹇欐寚姝! 2014-12-22 姹備竴浠51 鍗曠墖鏈虹殑鏁板瓧鏃堕挓鐨凜璇█浠g爜 鍙互鐢ㄤ簬瓒呮兂-30... 1 2010-10-23 姹備竴涓51鍗曠墖鏈哄甫涓変釜闂归挓鐨勭數瀛愰挓c绋嬪簭? 1 2011-12-26 涓涓51鍗曠墖鏈虹數瀛愰挓绋嬪簭,姹傝缁嗙殑瑙i噴鍟婃ユユ...
  • 鍩轰簬51鍗曠墖鏈鎺у埗浜ら氱伅鐨勭數璺浘涓嶤璇█绋嬪簭
    绛旓細//绋嬪簭鍔熻兘:鍗楀寳涓鸿溅琛岄亾,寤舵椂60绉;涓滆タ鏂瑰悜涓轰汉琛岄亾,寤舵椂20绉,涓斿湪鏈鍚3绉掗粍鐏樉绀2绉掗挓鍐嶅疄鐜板垏鎹.//CPU璇存槑:AT89C51鍨鍗曠墖鏈; 24MHZ鏅朵綋鎸崱鍣 //瀹屾垚鏃堕棿:2009骞1鏈6鏃 //***// include<stdio.h> include<reg51.h> include<intrins.h> sfr p0 = 0x80;sfr p1 = 0x90;sfr p2...
  • 51鍗曠墖鏈绾㈠瑙g爜C绋嬪簭
    绛旓細鍗曠墖鏈洪噰鐢ㄥ閮ㄤ腑鏂璓3.3绠¤剼鍜岀孩澶栨帴鏀跺ご鐨勪俊鍙风嚎鐩歌繛锛屼腑鏂柟寮忎负杈规部瑙﹀彂鏂瑰紡銆傚苟鐢ㄥ畾鏃跺櫒0璁$畻涓柇鐨勯棿闅旀椂闂达紝鏉ュ尯鍒嗗墠瀵肩爜銆佷簩杩涘埗鐨勨1鈥濄佲0鈥濈爜銆傚苟灏8浣嶆搷浣滅爜鎻愬彇鍑烘潵鍦ㄦ暟鐮佺涓婃樉绀恒// 瑙g爜鍊煎湪Im[2]涓紝褰揑rOK=1鏃惰В鐮佹湁鏁堛 /* 51鍗曠墖鏈绾㈠閬ユ帶瑙g爜绋嬪簭 */ //鐢ㄩ仴鎺у櫒...
  • 涓轰粈涔C绋嬪簭鍙互鍦51鍗曠墖鏈涓婅繍琛?51鍗曠墖鏈轰笂鏈塁鐨勮繍琛岀幆澧冨拰鍑芥暟搴...
    绛旓細51鍗曠墖鏈涓婃病鏈塁鐨勮繍琛岀幆澧冨拰鍑芥暟搴擄紝浣犵敤鐨勬槸keil杞欢鍚э紝褰撲綘鎶c绋嬪簭缂栧啓鍒発eil涓悗锛岀紪璇戝悗灏变細鐢熸垚浜岃繘鍒朵唬鐮佷篃灏辨槸鏈哄櫒鐮侊紝鐒跺悗鐑ц繘鍗曠墖鏈轰腑杩愯锛屽崟鐗囨満鍙瘑鍒満鍣ㄧ爜鍛锛岃繕涓嶄細缁х画杩介棶锛屽懙鍛
  • 51鍗曠墖鏈姹傝繖涓椂閽熺殑c璇█绋嬪簭
    绛旓細浠ヤ笅鏄洓浣嶆暟鐮佺鍙皟鏃跺甫绉掗棯鐑佺殑c51鍗曠墖鏈鐢靛瓙閽绋嬪簭锛c璇█锛夈/*** 鏈▼搴忎腑,鏅舵尟涓12MHz, ***/ /*** 鏃堕棿鎺у埗閲囩敤瀹氭椂涓柇鎺у埗鏂瑰紡銆 ***/ /*** 妯″紡鍜屾椂闂磋皟鏁撮噰鐢ㄦ煡璇㈡柟寮忋 ***/ include<reg52.h> sbit P20=P2^0;//鍒嗕釜浣嶆帶鍒剁 sbit P21=P2^1;//鍒嗗崄浣嶆帶鍒剁 sbit P22=...
  • 51鍗曠墖鏈 璁╂暟鐮佺鑷姩鏄剧ず0鑷9鐨C绋嬪簭銆傛湁娌℃湁姣旇繖涓洿绠鍗曠殑...
    绛旓細鍙互閫氳繃浠g爜浼樺寲鐨勬柟寮忔潵绠鍖栦唬鐮併備竴銆佽缃欢鏃跺嚱鏁 寤舵椂鍑芥暟鍦鍗曠墖鏈涓湁鐫璁╃幇瀹炲欢鏃剁殑鑳藉姏锛屾湰绋嬪簭涓彲浠ラ氳繃閲囩敤for寰幆鏂瑰紡杩涜寤舵椂锛屽叿浣撲唬鐮佸涓嬶細void delay锛堬級锝 uinti锛宩锛沠or(i=100;i>0;i--)for(j=1000;j>0;j--);锝 浜屻佽缃暟鐮佺鏄剧ず鏁扮粍 鏁扮粍瀹氫箟绠鍗曪紝鑰屼笖璁块棶寰堟柟渚裤傛墍鏈...
  • 澶х,姹51鍗曠墖鏈鍋氱畝鏄撹绠楀櫒鐨勯偅涓猚璇█绋嬪簭
    绛旓細uchar key,keyval,c,temp;void Delay1ms(uint i) //1ms寤舵椂绋嬪簭 { uint j;for(;i>0;i--){ for(j=0;j<125;j++){;} } } void write_com(uchar com){ lcddata=com;rs=0;rw = 0;lcden=0;Delay1ms(10);lcden=1;Delay1ms(10);lcden=0;} void write_date(uchar date){ lcd...
  • 闇瑕佷竴涓狢璇█绋嬪簭銆51鍗曠墖鏈鎺у埗:鎸夐敭鎸変竴涓,寤惰繜1鍒嗛挓鍚庡紑鐏,鐏寒鍗...
    绛旓細濡傛灉瀵规椂闂磋姹備笉绮剧‘锛岀敤杞欢鏃跺嵆鍙俰nclude<reg52.h> define uchar unsigned char define uint unsigned int sbit s=P1^0;sbit led=P1^1;void delayms(uint i) //1ms寤舵椂绋嬪簭 { uchar j;for(;i>0;i--){ for(j=0;j<125;j++)//濡傛灉寤舵椂鏃堕棿璇樊杈冨ぇ锛屽彲鎸夋瘮渚嬫敼鍙125杩欎釜鏁 //鍙栧...
  • 扩展阅读:51单片机时钟c程序 ... 51单片机密码锁c程序 ... c51单片机按键程序 ... 51单片机最简单程序 ... 51单片机定时器c程序 ... 51单片机简单时钟程序 ... 51官网视频 ... 51单片机常见型号 ... 程序代码 ...

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