⑴ 杜洋老师,自从出了《爱上单片机》之后,有没出过关于如何学习ARM的书!
1,楼主,你首先要学习C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。
2,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。
3,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,编译环境、编程软件KEIL。
5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很激动,这时你真正学会了单片机,你成功了!!!!!。
6,单片机C语言举例:
sbit SPEAK = P1^5; //IO口定义为蜂鸣器控制
如果蜂鸣器正极接电源,SPEAK =0;蜂鸣器就会响,你看就是这么简单。
unsiggne char temp;//定义TEMP为单字节变量。
sfr PORTA P1;//将P1口定义为PORTA
7,当你过渡到ARM时,你就要学习LINUX和WINCE这两个最基本的操作系统运用在单片机上。
8,同样的理,你也要买ARM2410/2440为代表的开发板,慢慢按照说明书一步一步地操作,练习,不停地做实验,就学会。
9,当然,你得打一份工作,关于我上所说的,开始工资不要要求太高,等你做完几个项目后,你真正学会了,才跟老板或上司提,这样继续或或另寻高就才有资本。
10,你也抽点时间看看《郭天祥十天学会单片机和c语言编》一书,巩固一下理论知识。
总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。
⑵ 杜洋单片机制作DY12864日历,安装后LCD为蓝屏,而且去掉单片机,还是蓝屏。检查了,焊接应该没
屏线定义与程序应该对应的,建议你应该网一个或先截取驱动12864的程序,单做一个工程,待屏可以正常驱动了在考虑其他的显示功能,就是先不考虑其他的,先把屏玩明白了再说吧,还有就是仔细查看接线正确不。
⑶ 毕业设计我想用单片机做一个电子琴,程序最好是c语言编写的,那个好心人可以帮我提供点资料,要钱的免进!
www.doyoung.net
上有好多,要的话我还有流程图
/*********************************************************************************************
程序名:DoToy系列作品MidTouch21电子琴程序
编写人:杜洋
编写时间:2009年6月3日
硬件支持:STC11L60XE外部12MHZ晶振电源3V
接口说明:详见《DoToy_MidTouch21电路原理图》
修改日志:
NO.1-20090603_17.54完成电子琴21键的测试(20090603_1备)
NO.2-20090604_01.29改为第二次新板的硬件电路(20090604_2备)
/*********************************************************************************************
说明:
用STC11Fxx单片机I/O接口的高阻态输入功能,扫描I/O接口电平。
手指将VCC线和I/O接口线半连接,产生高电平信号。
/*********************************************************************************************/
voidINIT(void);
#include<STC11Fxx.H>
/*********************************************************************************************/
sbitSPEAKER=P1^0;//扬声器,低使能
sbitLED=P3^0;//LED正极,强推
sbitLED2=P3^1;//LED负极
sbitKEY11=P2^0;
sbitKEY12=P2^1;
sbitKEY13=P2^2;
sbitKEY14=P2^3;
sbitKEY15=P2^4;
sbitKEY16=P2^5;
sbitKEY17=P2^6;
sbitKEY21=P2^7;
sbitKEY22=P4^4;
sbitKEY23=P4^5;
sbitKEY24=P4^6;
sbitKEY25=P0^7;
sbitKEY26=P0^6;
sbitKEY27=P0^5;
sbitKEY31=P0^4;
sbitKEY32=P0^3;
sbitKEY33=P0^2;
sbitKEY34=P0^1;
sbitKEY35=P0^0;
sbitKEY36=P3^3;
sbitKEY37=P3^2;
/*********************************************************************************************/
unsignedcharMUSIC;
unsignedcharSTH0,STL0;
unsignedintcodetab[]={//音阶表
63628,63835,64021,64103,64260,64400,64524,//低音1-7
64580,64684,64777,64820,64898,64968,65030,//中音1-7
65058,65110,65157,65178,65217,65252,65283//高音1-7
};
/*********************************************************************************************/
voiddelay1ms(unsignedinta){//1ms延时程序(12MHz10倍于51单片机速度时)
unsignedinti;
while(--a!=0){
for(i=0;i<600;i++);
}
}/***************************************************************************************/
voidINIT(void){//初始化程序
TMOD=0x11;
ET0=1;
ET1=1;
EA=1;
P0M1=0xff;//I/O接口工作方式
P0M0=0x00;//P0全为高阻输入
P1M1=0xfe;//P1.0为准双向,其他为高阻输入
P1M0=0x00;
P2M1=0xff;//P2全为高阻输入
P2M0=0x00;
P3M1=0xfc;//P3.0为强推,其他为标准双向
P3M0=0x01;
P4M1=0xff;//P4全为高阻输入
P4M0=0x00;
P4SW=0xff;
LED=1;
LED2=0;
SPEAKER=0;
}
/***************************************************************************************/
voidmain(void){
INIT();//初始化
while(1){
if(KEY37==1){delay1ms(20);if(KEY37==1){MUSIC=20;}}//高音B(37)
if(KEY36==1){delay1ms(20);if(KEY36==1){MUSIC=19;}}
if(KEY35==1){delay1ms(20);if(KEY35==1){MUSIC=18;}}
if(KEY34==1){delay1ms(20);if(KEY34==1){MUSIC=17;}}
if(KEY33==1){delay1ms(20);if(KEY33==1){MUSIC=16;}}
if(KEY32==1){delay1ms(20);if(KEY32==1){MUSIC=15;}}
if(KEY31==1){delay1ms(20);if(KEY31==1){MUSIC=14;}}
//3
if(KEY27==1){delay1ms(20);if(KEY27==1){MUSIC=13;}}
if(KEY26==1){delay1ms(20);if(KEY26==1){MUSIC=12;}}
if(KEY25==1){delay1ms(20);if(KEY25==1){MUSIC=11;}}
if(KEY24==1){delay1ms(20);if(KEY24==1){MUSIC=10;}}
if(KEY23==1){delay1ms(20);if(KEY23==1){MUSIC=9;}}
if(KEY22==1){delay1ms(20);if(KEY22==1){MUSIC=8;}}
if(KEY21==1){delay1ms(20);if(KEY21==1){MUSIC=7;}}
//2
if(KEY17==1){delay1ms(20);if(KEY17==1){MUSIC=6;}}
if(KEY16==1){delay1ms(20);if(KEY16==1){MUSIC=5;}}
if(KEY15==1){delay1ms(20);if(KEY15==1){MUSIC=4;}}
if(KEY14==1){delay1ms(20);if(KEY14==1){MUSIC=3;}}
if(KEY13==1){delay1ms(20);if(KEY13==1){MUSIC=2;}}
if(KEY12==1){delay1ms(20);if(KEY12==1){MUSIC=1;}}
if(KEY11==1){delay1ms(20);if(KEY11==1){MUSIC=0;}}
//1
if(MUSIC!=0xff){//如果有音阶数值(非0XFF时)
STH0=tab[MUSIC]/256;//将音阶的频率值装入定时器T0
STL0=tab[MUSIC]%256;
TR0=1;//启动定时器
MUSIC=0xff;//清除寄存器
}else{//否则
SPEAKER=1;//关扬声器
LED=1;
TR0=0;//关定时器
}
}
}
/***************************************************************************************/
voidt0(void)interrupt1using0{//定时器0产生音频
TH0=STH0;
TL0=STL0;
SPEAKER=~SPEAKER;//取反频率产生音调
LED=SPEAKER;//LED同频闪烁
}
/***************************************************************************************/
/*************************************************************
*杜洋工作室www.DoYoung.net
/*************************************************************/
⑷ 最近想做自己的单片机系统,应该买些什么东西
这个注意不知道是谁先提出来的,用面包板做单片机实验,我是从《爱上单片机》作者杜洋书上看到的,而且也做了实验了,还真不错,适合初学者。
针对这个你需要买这几样东西(假设你已经有电脑了):面包板一块,面包板接线一堆(几十根),单片机一片(推荐用STC的),晶振(11.0592MHZ)一只,磁片电容(30P)两只,省略复位电路了。发光二极管十几只,电阻十几只(200欧)。下载线一条,可以是USB转串口,最好是USB转TTL(这根线含有TXD,RXD通信口,还有5V和3V电源)。另外最好买一个装三节电池的电池盒,便于脱机展示你的作品。
⑸ 杜洋工作室单片机怎么样
挺好的。根据查询网上相关信息显示,杜洋工作室单片机使用的人很多,针对不同的人有不同的需求,由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用。
⑹ 51单片机c语言学习哪本书讲的比较详细,适合入门的看呢
你可以看看《爱上单片机》(杜洋着),超简单的哦。
如果你不想买书,你可以下载《单片机编程魔法学校》,或者硬件的《单片机入门制作专辑》(其实就是从书里面截取的片段)
还可以购买视频,你到www.doyoung.net看看
其实没必要买一块开发板,也不必要自己做一块
完全可以用面包板搭建,无需焊接,拆装方便,而且真正能理解硬件电路,让自己动手实践,例如第一次试验只需要用三个元器件单片机(推荐用STC12C5A60S52,也是51内核的,完全通用,但是功能丰富,千万不要用AT89S51,以后你就会知道,比如说以后用到ADC数模转换,PWM输出,STC就都集成好了,而AT就需要一个个用芯片外扩)LED灯、电池盒三个元件,而不需要面对连电路都不熟悉的开发板。详见视频“用面包板入门单片机”:
http://www.doyoung.net/video/BREAD_1/index.html
学习C语言可以配合着《单片机入门制作专辑》(网页最后可以下载光盘及文章):
http://www.doyoung.net/articles/0711_MCU_entry_album/index.html
《单片机编程魔法学校》(最后也有下载):
http://www.doyoung.net/articles/0711_MCU_entry_album/index.html
推荐书籍:《爱上单片机》
⑺ 学习c51有什么好的网站。。拜托了
www.doyoung.net
这是杜洋的网站,上面“教学”一栏里面有很多文章和视频,例如视频用面包板入门单片机,这种方法不用焊接,拆解方便,入门简单。还有《单片机编程魔法学校》《单片机入门制作专辑》这样的免费文章,还都在《无线电》上刊登过。首页上许多精简设计,制作只需十来分钟,但是不乏趣味。
(里面介绍的STC系列单片机是51系列的高级型,完全和51单片机通用,却速度更快,功能更多)