A. 单片机的疑惑
我觉得还是焊一个吧,因为买一个有时候真的并不合心意,自已想要的它没有,自已不想要的它装了上去,再说尺寸也不合意.总有一种老大全的感觉.
如果已经有点经验,你可以做点难的系统,继续积累点实用知识,
自已焊系统还有一个设计的知识环节在里面,购买就只有应用了.
建议1,做个无线防盗的监控系统吧,实现:定时进入监控状态,拨电话进入监控状态(市面上的产品都没有这两个功能的).2,做个电梯或简易机械手吧.
B. 学PIC单片机需要学什么软件
需要:
1、MPLAB IDE,这个是所有PIC单片机的开发平台,目前最高版本是8.83,这个软件是免费的,可以到MICROCHIP公司网站上下载;
2、PICC,这个是PIC 16系列单片机的C编译器,建议直接学C,所以要用它,这个是收费软件,但网上可以找到的最高版本破解版,版本是9.8,上网可以找到;
3、PROTEUS,这个是目前世界上最好的单片机的仿真软件,因为大多数人没有实验条件,用这个最好,这个也是收费软件,网上可以找到破解片,目前最高版本是7.8;
4、要买相应的书,没有书你会学得很辛苦,建议你买北航出版社的《PIC16系列单片机C程序设计与PROTEUS仿真》,这本书介绍上面的所有东东,有很多实例,包括线路图和程序。
C. 如何用最少的单片机端口驱动多个数码管
最好的办法是用串转并的芯片如74HC164或595,只要二根线就可以驱动多个数码管,且是静态的,程序也方便编制,不用象动态显示那样不停地刷新。、
附图是用PIC16单片机驱动6个数码管的PROTEUS仿真的情况,实物也运行了,没问题。理论上可以驱动无穷多个数码管,实际上用十几二十个没问题。
北航《PIC16系列单片机C程序设计与PROTEUS仿真》书中有这个完整的线路图和程序,附光盘中有所有的线路图和程序代码。
D. 想学习51单片机 有什么好得 比较基础得书介绍
你要是学51单片机,那么楼上说的(1)北航出版的单片机原理确实是本好书,我还要推荐 求实科技出版的好书 (2)单片机应用系统开发实例导航 还有人民邮电出版社的(3)例说8051 (1) 是基本原理 (2)(3)是一些程序应用例子(包括电路图) 还有我建议你学pic系列的单片机,因为这种单片机,设计简洁,我个人认为它的内部构造就是像你说的“简明扼要” 你可以在网上找一下关于它的一些介绍,或者问我也行 如果你学pic系列的单片机 那我就推荐几本好书 第一阶段: (1)北航出版社的 pic单片机入门与实战(初学的时候看,一直看到第5章,等到该看第6章的时候换书,我觉得这本书前5章经典的不能再经典,从第6章开始垃圾的不能在垃圾) (2)求实科技的 PIC单片机典型模块设计实例导航[有一些程序应用例子(包括电路图)] 第二阶段(第一阶段看完后再买下面这些): (3)PIC单片机实用教程--提高篇(经典啊,个人认为) (4)PIC单片机实用教程--基础篇 (虽是基础篇,但不要忽视,有定时器等章节) 第三阶段: 不用买书了,接项目了,自己挣钱了 关于语言:是辨证的, 汇编:最接近硬件,用它编程序,可以在编程的时候,更加深对单片机内部结构的了解,而且汇编的实时性好,但是可读性差,程序长,对编程者的汇编语言的水平有较高的要求 C语言:编程较容易,程序短,可读性强,看实时性没有汇编好,控制硬件也不想汇编那么接近硬件 本人认为:二者皆有好的一方面,我建议先用汇编,汇编掌握了很好的时候再用c语言,最终达到用c嵌套汇编的编程风格。 对于那些一开始就用C的,本人绝对不支持,个人认为那是不可取的一条死路。
E. PIC单片机 4M晶振 产生1秒延迟的原理
可以用任何定时器陆档,如TMR0,设置它基本延时时间为50ms,延时20次就是1s了!
因为你用的是4M晶振,指令周期为1us,TMR0的延时50ms延时常数计算如下:
先计算TMR0的分频系数K:
50000=256*1*K,K=195.3,取K=256(只能取略大的计算值,不能四舍五入!),这是的1是指令周期,下周
再计算TMR0的延时常数X:
5000=(256-X)*1*K,K用256代入,得X=61.
程序设计时用一个累计TMR0中断次数的变量T0_N,每早芦乱中断一次哗激T0_N+1,并判断其值>=20时就是1秒了。
注意,TMR0中断时要清TMR0IF,并要重新对TMR0赋初值61。
F. pic单片机串行通信收发字符串的问题!高分求助!
我把你的程序做了些修改,并在PROTEUS中仿真,是正确的,图中的上面是仿真的发送,我输入了“HowAreYou?"并按回车键,单片机收到回车后,先输出"OK!!!"及回车,再把收到的数回送出去。
这里加了宏定义。有些内容请见北航的《PIC16系列单片机C程序设计与PROTEUS仿真》一书。
#include<pic.h>
__CONFIG(0x3F31);
#defineucharunsignedchar
#defineuintunsignedint
//宏定义,发送一个数,并等等发送完毕
#defineSEND_ONE(A)
TXREG=A;
while(!TRMT)
bitFLAG=0; //标志位,如收到回车字符,此位为1
ucharN=0; //接收数据累计
ucharDD[20]; //接收数据存放在此
constucharDD1[7]="OK!!!"; //虽然只有6个字符,但要用7个单元,最后一个为结束字符,const表示存放在程序存储器中的常数
voidinit(void);
voidinterruptISR(void);
voidmain()
{ uchari;
init();
while(1)
{ if(FLAG)
{ for(i=0;i<6;i++) //先发送“OK!!!”
{ SEND_ONE(DD1[i]);
}
SEND_ONE(0x0D); //发送一个回车
for(i=0;i<N;i++)
{ SEND_ONE(DD[i]);
}
FLAG=N=0; //重新清0,为下次接收做准备
}
};
}
voidinit()
{
TRISC=0xff; //这里要把高二位设置这输入,但在以下的串口使能后,系统自动将RC6变成通信输出
TXSTA=0x24;
RCSTA=0x90;
SPBRG=25; //9600波特率
GIE=1;
PEIE=1;
RCIE=1; //打开中断
}
voidinterruptISR(void)
{
if(RCIE&&RCIF) //不必清RCIF,因为接收数据后RCIF自动清0
{ DD[N]=RCREG;
if(DD[N]==0x0D)
FLAG=1; //如果收到回车,标志位置1
N++;
if(N>=20)
N=0; //如果接收数据数超出,从0存放
}
}
G. 求用PIC单片机语言编写一段crc8校验码的程序 (求大神指点,要是有注释就更好了)
可以参考北航的《PIC16系列单片机C程序设计与PROTEUS仿真》一书,里面有8位的和16位的CRC程序,是用PICC编的,8位的好象在第6章的一线式温度传感器那一节。