当前位置:首页 » 网站资讯 » 单片机设计有哪些免费的网站
扩展阅读
用户体验网站怎么样 2024-05-03 23:19:52
fast路由器关了无线网络 2024-05-03 23:14:58

单片机设计有哪些免费的网站

发布时间: 2023-02-05 06:39:09

Ⅰ 单片机视频教程哪里可以免费看

“凡亿课堂”这是一个学习电子设计视频教程网站,里面也有很多单片机视频,希望能帮到您 你也可以网络下。

Ⅱ 请问哪个网站有单片机毕业设计和毕业论文如题 谢谢了

单片机毕业设计可以去优秀毕业设计网的单片机栏目看看, 里面有很多优秀的单片机毕业论文,包含任务书、开题报告、中期检查表、毕业论文说明书、图纸、电路图、程序,内容很详细也很专业,应该可以帮到你的。 .。。

Ⅲ 单片机类的毕业设计或者课程设计,哪个网站的资料可以去参考或者学习的呢,大家推荐一下呢

51黑电子论坛毕设狗(这是卖单片机毕设的),CDSN论坛,电子发烧友论坛,学生毕业作品网站 (各种毕设),还有很多,其实你拿着你的毕设或者课设题目在网络搜一下就能找到很多的已经完成的。

Ⅳ 有什么比较好的方便的单片机学习网站

IC/PDF查询 http://www.21icsearch.com
电子元器件查询 http://www.chinadz.com/
IC/PDF查询 http://www.ic37.com/
器件手册 http://www.datasheet5.com/

电子技术文章资源下载类
今日电子 http://www.epc.com.cn
中国电子资源网:http://www.ec66.com
中国电子进修网 http://www.studydz.com
电子设计技术网: http://www.ednchina.com
21IC http://www.21IC.COM
电子工程专辑: http://www.eetchina.com
国际电子商情: http://www.esmchina.com
北极星电子技术网http://www.bjx.com.cn
大虾电子网 http://www.daxia.com/
ET电子技术网 http://www.et-dz.com
老古开发网 http://www.laogu.com
我爱研发网 http://www.52rd.com/
变频技术应用 http://www.chinabianpin.com/
网易电器 http://co.163.com/index_dq.htm
中国IT技术门户 http://develop.csai.cn/
无线电 http://www.radio.com.cn/
电子爱好者 http://www.etuni.com/
PCB信息网 http://web.pcbinfo.net/
中国PCB技术网 http://www.pcbtech.net/

电子论坛
电子论坛 http://www.ecbbs.com/
21IC社区 http://bbs.21ic.com
综合电子论坛 http://www.avrw.com/bbs/
电子产品世界论坛 http://forum.eepw.com.cn
中电网技术论坛 http://bbs.eccn.com/
中国电子进修论坛:http://bbs.studydz.com
光电论坛 http://www.oecr.com/bbs/
大虾电子论坛 http://www.daxia.com/bibis/
电子工程世界论坛 http://bbs.eeworld.com.cn
国际电子技术论坛 http://bbs.elec.cc/
伟纳单片机论坛 http://www.willar.com/forum.asp
中国PCB论坛 http://www.pcbbbs.com/index.htm
家电论坛 http://www.jd-bbs.com
广播论坛 http://bbs.leowood.net
EDA专业论坛 http://www.edacn.net/bbs/
研发BBS http://www.52rd.com/bbs/


电子工程博客
中国电子工程博客 http://www.mcublog.com/blog
21IC博客 http://blog.21ic.com
工控博客 http://blog.gkong.com/
电源网博客 http://www.dianyuan.com/blog/
EDA博客 http://www.ednchina.com/blog
中国电子网博客 http://blog.electron.cn
电子人博客 http://www.dianziren.com
中国子设计网博客 http://www.cediy.com
中电网博客 http://blog.eccn.com/
进修博客 http://www.studydz.com/html/blog.html
工控博客 http://blog.gkong.com

电路图
电子电路图网: http://www.cndzz.com
电路图 http://circuit.eeworld.com.cn/

单片机类
单片机平凡网 http://www.mcustudio.com
单片机 http://www.8951.com/
AVR单片机 http://www.avrvi.com/
周立功单片机 http://www.zlgmcu.com/home.asp
晶控电子 http://www.hificat.com/
PIC学习网: http://www.pic16.com

嵌入式技术网 http://www.icembed.com/
DSP专业资讯网 http://dsp.blueidea.com/

Ⅳ 哪位高手可以指点给小可一个学习51单片机的网站啊

单片机学习站:http://www.c51.cn/Article/index.html
51单片机学习资料区:http://www.c51.cn/Article/mcuwljc/Index.html
各类单片机编程仿真软件:http://www.c51.cn/soft/ShowClass.asp?ClassID=43

Ⅵ 请问比较好的单片机论坛是哪个

电子工程师之家,里面还有好多程序的,我刚开始学单片机就一直在里面,而且全是高手的。。。

Ⅶ 想突击单片机课程 推荐几个学习单片机的链接或者学习网站

如果是学汇编语言的话,可以在网上搜索《小甲鱼汇编》视屏!

Ⅷ 用C语言编写单片机的程序有什么好的学习这类东西的网站推荐几个

我以前倒是做过,不过程序还有点问题,调时间的时候容易过界,但正常走时候就正常了。开发环境用的IAR,单片机用f149,显示用的1602的四线模式。
你自己看着改程序吧,其实我也是51上移植过去的。

悲剧了,帖不下了.我帖在我博客里了啊,自己去找吧.
主程序
__________________________分隔线____________________________________

#include <msp430x14x.h>
#include "ds1302.h"
#include "LCD1602x4_mps.h"

#define DS1302_SECOND 0x81 //时钟芯片的寄存器位置,存放时间
#define DS1302_MINUTE 0x83
#define DS1302_HOUR 0x85
#define DS1302_WEEK 0x8b
#define DS1302_DAY 0x87
#define DS1302_MONTH 0x89
#define DS1302_YEAR 0x8d

unsigned char DateString[11],TimeString[9],week_value[2],TempBuffer[7]; //
char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;
char done,count,temp,flag,up_flag,down_flag;
//unsigned int temp_value=0,temp_max=0;temp_min=0; //温度值

void DateToStr(void) //将时间年,月,日,星期数据转换成液晶显示字符串,放到数组里DateString[]
{ unsigned char Year,Month,Day,Week;
Year=rtc_getyear();
Month=rtc_getmon();
Day=rtc_getdate();
Week=rtc_getday();

if(hide_year<2) //这里的if,else语句都是判断位闪烁,<2显示数据,>2就不显示,输出字符串为 2007/07/22
{
DateString[0] = '2';
DateString[1] = '0';
DateString[2] = Year/10 + '0';
DateString[3] = Year%10 + '0';
}
else
{
DateString[0] = ' ';
DateString[1] = ' ';
DateString[2] = ' ';
DateString[3] = ' ';
}
DateString[4] = '/';
if(hide_month<2)
{
DateString[5] = Month/10 + '0';
DateString[6] = Month%10 + '0';
}
else
{
DateString[5] = ' ';
DateString[6] = ' ';
}
DateString[7] = '/';
if(hide_day<2)
{
DateString[8] = Day/10 + '0';
DateString[9] = Day%10 + '0';
}
else
{
DateString[8] = ' ';
DateString[9] = ' ';
}
if(hide_week<2)
{
week_value[0] = Week%10 + '0'; //星期的数据另外放到 week_value[]数组里,跟年,月,日的分开存放,因为等一下要在最后显示
}
else
{
week_value[0] = ' ';
}
week_value[1] = '\0';

DateString[10] = '\0'; //字符串末尾加 '\0' ,判断结束字符
}

void TimeToStr(void) //将时,分,秒数据转换成液晶显示字符放到数组 TimeString[];
{ unsigned char Hour,Minute,Second;
Hour=rtc_gethour();
Minute=rtc_getmin();
Second=rtc_getsec();
if(hide_hour<2)
{
TimeString[0] = Hour/10 + '0';
TimeString[1] = Hour%10 + '0';
}
else
{
TimeString[0] = ' ';
TimeString[1] = ' ';
}
TimeString[2] = ':';
if(hide_min<2)
{
TimeString[3] = Minute/10 + '0';
TimeString[4] = Minute%10 + '0';
}
else
{
TimeString[3] = ' ';
TimeString[4] = ' ';
}
TimeString[5] = ':';
if(hide_sec<2)
{
TimeString[6] = Second/10 + '0';
TimeString[7] = Second%10 + '0';
}
else
{
TimeString[6] = ' ';
TimeString[7] = ' ';
}
DateString[8] = '\0';
}

void show_time() //液晶显示程序
{
TimeToStr(); //时间数据转换液晶字符
DateToStr(); //日期数据转换液晶字符
// ReadTemp(); //开启温度采集程序
// temp_to_str(); //温度数据转换成液晶字符
LCD_PutStr(TempBuffer,25); //显示温度
LCD_PutStr(DateString,0); //显示日期
LCD_PutStr(week_value,15); //显示星期
LCD_PutStr(" Week",10); //在液晶上显示 字母 week
LCD_PutStr(TimeString,16); //显示时间
}
////////////////////////////////////////////////////////////////////////////

void outkey() //跳出调整模式,返回默认显示
{ unsigned char Second;
if (!(P1IN&BIT0))
{
count=0;
hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;
Second=dataread(DS1302_SECOND);
datawrite(0x8e,0x00); //写入允许
datawrite(0x80,Second&0x7f);
datawrite(0x8E,0x80); //禁止写入
done=0;//temp_max=0;sund=1;
while(!(P1IN&BIT0));
delay_nms(2);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Upkey()//升序按键
{
if(!(P1IN&BIT1))
{
switch(count)
{case 1:
temp=dataread(DS1302_SECOND); //读取秒数
temp=temp+1; //秒数加1
up_flag=1; //数据调整后更新标志
if((temp&0x7f)>0x59) //超过59秒,清零
temp=0;
break;
case 2:
temp=dataread(DS1302_MINUTE); //读取分数
temp=temp+1; //分数加1
up_flag=1;
if(temp>0x59) //超过59分,清零
temp=0;
break;
case 3:
temp=dataread(DS1302_HOUR); //读取小时数
temp=temp+1; //小时数加1
up_flag=1;
if(temp>0x23) //超过23小时,清零
temp=0;
break;
case 4:
temp=dataread(DS1302_WEEK); //读取星期数
temp=temp+1; //星期数加1
up_flag=1;
if(temp>0x7)
temp=1;
break;
case 5:
temp=dataread(DS1302_DAY); //读取日数
temp=temp+1; //日数加1
up_flag=1;
if(temp>0x31)
temp=1;
break;
case 6:
temp=dataread(DS1302_MONTH); //读取月数
temp=temp+1; //月数加1
up_flag=1;
if(temp>0x12)
temp=1;
break;
case 7:
temp=dataread(DS1302_YEAR); //读取年数
temp=temp+1; //年数加1
up_flag=1;
if(temp>0x99)
temp=0;
break;
default:break;
}

while(!(P1IN&BIT1));
delay_nms(2);
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Downkey()//降序按键
{
if(!(P1IN&BIT2))
{
switch(count)
{case 1:
temp=dataread(DS1302_SECOND); //读取秒数
temp=temp-1; //秒数减1
down_flag=1; //数据调整后更新标志
if((temp&0x7f)>0x59) //小于0秒,返回59秒
temp=0x59;
break;
case 2:
temp=dataread(DS1302_MINUTE); //读取分数
temp=temp-1; //分数减1
down_flag=1;
if(temp>0x59)
temp=0x59; //小于0秒,返回59秒
break;
case 3:
temp=dataread(DS1302_HOUR); //读取小时数
temp=temp-1; //小时数减1
down_flag=1;
if(temp==0x00)
temp=0x23;
break;
case 4:
temp=dataread(DS1302_WEEK); //读取星期数
temp=temp-1; //星期数减1
down_flag=1;
if(temp==0x00)
temp=0x07;
break;
case 5:
temp=dataread(DS1302_DAY); //读取日数
temp=temp-1; //日数减1
down_flag=1;
if(temp==0x00)
temp=0x31;
break;
case 6:
temp=dataread(DS1302_MONTH); //读取月数
temp=temp-1; //月数减1
down_flag=1;
if(temp==0x00)
temp=0x12;
break;
case 7:
temp=dataread(DS1302_YEAR); //读取年数
temp=temp-1; //年数减1
down_flag=1;
if(temp>0x99)
temp=0x99;
break;
default:break;
}

while(!(P1IN&BIT2));
delay_nms(2);
}
}

void Setkey()//模式选择按键
{
if(!(P1IN&BIT3))
{
count=count+1; //Setkey按一次,count就加1
done=1; //进入调整模式
while(!(P1IN&BIT3));
delay_nms(2);
}

}

void keydone()//按键功能执行
{ unsigned char Second;
if(flag==0) //关闭时钟,停止计时
{ datawrite(0x8e,0x00); //写入允许
temp=dataread(DS1302_SECOND);
datawrite(0x80,temp|0x80);
datawrite(0x8e,0x80); //禁止写入
flag=1;
}
Setkey(); //扫描模式切换按键
switch(count)
{
case 1:do //count=2,调整秒
{
outkey(); //扫描跳出按钮
Upkey(); //扫描加按钮
Downkey(); //扫描减按钮
if(up_flag==1||down_flag==1) //数据更新,重新写入新的数据
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x80,temp|0x80); //写入新的秒数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}

hide_sec++; //位闪计数
if(hide_sec>3)
hide_sec=0;
show_time(); //液晶显示数据
}while(count==2);break;
case 2:do //count=3,调整分
{
hide_sec=0;
outkey();
Upkey();
Downkey();
if(temp>0x60)
temp=0;
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x82,temp); //写入新的分数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_min++;
if(hide_min>3)
hide_min=0;
show_time();
}while(count==3);break;
case 3:do //count=4,调整小时
{
hide_min=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x84,temp); //写入新的小时数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_hour++;
if(hide_hour>3)
hide_hour=0;
show_time();
}while(count==4);break;
case 4:do //count=5,调整星期
{
hide_hour=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x8a,temp); //写入新的星期数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_week++;
if(hide_week>3)
hide_week=0;
show_time();
}while(count==5);break;
case 5:do //count=6,调整日
{
hide_week=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x86,temp); //写入新的日数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_day++;
if(hide_day>3)
hide_day=0;
show_time();
}while(count==6);break;
case 6:do //count=7,调整月
{
hide_day=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x88,temp); //写入新的月数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_month++;
if(hide_month>3)
hide_month=0;
show_time();
}while(count==7);break;
case 7:do //count=8,调整年
{
hide_month=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
datawrite(0x8e,0x00); //写入允许
datawrite(0x8c,temp); //写入新的年数
datawrite(0x8e,0x80); //禁止写入
up_flag=0;
down_flag=0;
}
hide_year++;
if(hide_year>3)
hide_year=0;
show_time();
}while(count==8);break;
case 8: count=0;hide_year=0; //count8, 跳出调整模式,返回默认显示状态
Second=dataread(0x80);
datawrite(0x8e,0x00); //写入允许
datawrite(0x80,Second&0x7f);
datawrite(0x8E,0x80); //禁止写入
done=0; //temp_max=0;sund=1;
break; //count=7,开启中断,标志位置0并退出
default:break;

}

}
////////////////////////////////////////////////////////////////////////////

void rtcinit ()
{
rtc_wp(0);
rtc_stop(0);
rtc_charger(1,1);
}

void sysinit ()
{ WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P4OUT = 0xff;
P4DIR = 0xff;
P5OUT = 0x0f;
P5DIR = 0xf0;
P6OUT = 0xfc;
P6DIR = 0xfc;
}

void main ()
{ unsigned char temp;
sysinit ();
rtcinit ();
LCD_init(); //液晶初始化
_EINT();
while (1)
{
while(done==1)
keydone(); //进入调整模式
while(done==0)
{
temp=rtc_getsec();
delay_nms(10);
if(temp!=rtc_getsec())
show_time(); //液晶显示数据
flag=0;
Setkey(); //扫描各功能键
}

}

}

Ⅸ 求好的51单片机学习网站

强烈推荐之一: 小刚之家:bes.8u8.com
(这是一个非常不错的网站,从廉价的编程器,到KILE的汉化版,再到种类齐全的免费学习和应用软件和资料,可见站长的良苦用心。我的编程器就是在这里买的,非常不错!)
强烈推荐之二: 单片机爱好者://www.mcufan.com
强烈推荐之三: 单片机学习网:www.mcustudy.com
(以上这两个有不少学习资料供浏览和下载。)
强烈推荐之四: 电子制作实验室:www.xie-gang.com
(这里有单片机学习的网上教程,连载哟!)
强烈推荐之五: 51单片机://www.mcu51.com
(这可是大名鼎鼎的哟!她的论坛在单片机世界的影响就象HELLOCQ在HAM中的影响一样。)
强烈推荐之六: 哦,没有了! :D :D :D
衷心祝愿单片机爱好者及学习者们马到成功!!!(我也是正在学习中的菜鸟哟! ;) )