您当前的位置:首页 > 互联网教程

求好的51单片机学习网站

发布时间:2025-05-20 06:44:21    发布人:远客网络

求好的51单片机学习网站

一、求好的51单片机学习网站

强烈推荐之一:小刚之家:bes.8u8.com

(这是一个非常不错的网站,从廉价的编程器,到KILE的汉化版,再到种类齐全的免费学习和应用软件和资料,可见站长的良苦用心。我的编程器就是在这里买的,非常不错!)

强烈推荐之二:单片机爱好者://www.mcufan.com

强烈推荐之三:单片机学习网:www.mcustudy.com

(以上这两个有不少学习资料供浏览和下载。)

强烈推荐之四:电子制作实验室:www.xie-gang.com

(这里有单片机学习的网上教程,连载哟!)

强烈推荐之五: 51单片机://www.mcu51.com

(这可是大名鼎鼎的哟!她的论坛在单片机世界的影响就象HELLOCQ在HAM中的影响一样。)

强烈推荐之六:哦,没有了!:D:D:D

衷心祝愿单片机爱好者及学习者们马到成功!!!(我也是正在学习中的菜鸟哟!;))

二、51单片机编程求指导。。。

1、嘿嘿楼上的老兄给出的程序也不对呀看上去挺工整的,错误好几出啊,是得不到正确结果的。

2、其实算法很简单,只要熟悉一下单片机的加法指令和循环移位指令,自己就可以编写出来。

3、就是使用指针连续对20H开始的连续4个单字节二进制数相加,结果存入31H单元,要考虑进位,(进位部分存入31H单元)

4、求平均值就是对和除4,可以使用循环右移指令每移一次相当于除2总共2次就行了。

5、2楼上的错误:使用指令 ADD A,31H求的和在累加器A里,并没有存入31H

6、 RRC A;带进位循环右移完成一次除2

7、同样没有将结果回送给31H单元(保存)

8、呵呵满意就选满意回答(想要正确程序可以发消息给我)

三、51单片机C语言编程

// 51单片机C语言编程,这个时钟+秒表可以参考一下。

uchar code select[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*****************函数声明***********************/

void display(uchar,uchar,uchar);

/*****************主函数*************************/

while(s==1)//s是状态标志,当s=0时,闹钟取消。s=1时,设定闹钟时间(也是通过调时,调分函数);

{//s=2时,闹钟工作,时间与设定时刻一致时,闹钟响(一分钟后自动关闭,可手动关闭)。再次切换,s=0.

keyscan();//s状态切换(0-》1-》2-》0)通过外部中断1实现。

display(hour1,minu1,sec1);//闹钟时刻显示

display(hour0,minu0,sec0);//时钟表显示

while(k)/*k是秒表状态(0-》1-》2-》0)通过外部中断0实现。0秒表关;1秒表从零计时;2秒表停,显示计时时间*/

display(hour,minu,sec);//秒表显示

/*****************初始化函数***********************/

TMOD=0x11;//定时器0,1工作于方式1;赋初值

/*****************定时器0中断*************/

void timer0_int() interrupt 1//秒表

/*************外部中断0中断函数************/

/*************外部中断1中断函数************/

/*************定时器1中断****************/

void timer1_int() interrupt 3//控制时钟工作

if(hour1==hour0&& minu0==minu1)

/*************键盘扫描****************/

/*************显示函数****************/

void display(uchar hour,uchar minu,uchar sec)

/*************闹钟函数****************/

/*************延时函数****************/