㈠ 跪求,单片机资料谁有啊,太感谢了!
5、李想老师51单片机视频教程网络网盘免费资源在线学习
链接: https://pan..com/s/1HO8fHKr2nhG9ziRMVcBXnQ
5、李想老师51单片机视频教程 4、单片机仿真实例程序500历 3、proteus视频使用教程 7、实战型单片机程序 8、单片机学习教案 8、单片机学习教案.zip 7、实战型单片机程序.rar PROTEUS整体演示.zip proteus 7视频教程.zip 4、单片机仿真实例程序500历.rar 天狼星单片机学习教程 霖锋 从零学习嵌入式 单片机视频教程 郭天祥 李想—《手把手教你学51单片机与Proteus从入门到精通》.zip 单片机征服你2.rar 单片机征服你1.rar
㈡ 手把手教你学会单片机,宋雪松老师的简易计算器,怎么用普中科技单片机实现怎么接线
/* S16 S12 S8 S4分别是123+
S15 S11 S7 S3分别是456-
S14 S10 S6 S2分别是789*
S13 S9 S5 S1分别是0 CLR = /
*/
/* 实现两个数的运算,每个数的位数至少可以八位 */
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rw=P2^5;
sbit rs=P2^6;
sbit e=P2^7;
sbit led=P3^7;
sbit beep=P2^0;
uint8 key,num;
uint8 fuhao;//定义具体的那个符号,是加减还是乘除。
uint8 flag; //定义有没有按下符号键,这个是统称
long a,b,c,d; //定义运算数据的第一个和第二个及等于的数变量
uint8 k; //定义小数点后面显示的位数
uint8 biao;
uint8 dat1[]={1,2,3,0x2b-0x30, 4,5,6,0x2d-0x30, 7,8,9,0x2a-0x30, 0,0x01-0x30,0x3d-0x30,0x2b-0x30 };//保存显示的数据
void delay(uint16 i)
{
while(i--);
}
void lcdwrc(uint8 c)
{
delay(1000);
rs=0;
rw=0;
e=0;
P0=c;
e=1;
delay(1000);
e=0;
}
void lcdwrd(uint8 dat)
{
delay(1000);
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
delay(1000);
e=0;
rs=0;
}
void lcdinit()
{
delay(1500);
lcdwrc(0x38);
delay(500);
lcdwrc(0x38);
delay(500);
lcdwrc(0x38);
delay(500);
lcdwrc(0x38);
lcdwrc(0x08);
lcdwrc(0x01);
lcdwrc(0x06);
lcdwrc(0x0c);
key=0;
num=0;
flag=0;
fuhao=0;
a=0;
b=0;
c=0;
d=0;
biao=0;
led=0;
}
void keyscan()
{
P1=0xfe; //令第一行为0,然后判断是哪一列按下
if(P1!=0xfe)
{
delay(1000);
if(P1!=0xfe)
{
key=P1&0xf0;
switch(key)
{
case 0xe0: num=0;break; //1
case 0xd0: num=1;break; //2
case 0xb0: num=2;break; //3
case 0x70: num=3;break; //加
}
}
while(P1!=0xfe);
if(num==0||num==1||num==2) //确认第一行的数1,2,3
{
if(flag==0) //没有按下符号键
{
//led=1;
a=a*10+dat1[num];
}
else
{
//led=1;
b=b*10+dat1[num];
}
}
if(num==3)
{
//led=0;
flag=1;
fuhao=1;//加号+
}
lcdwrd(0x30+dat1[num]);
}
P1=0xfd; //令第二行为0,判断是哪一列按下
if(P1!=0xfd)
{
delay(1000);
if(P1!=0xfd)
{
key=P1&0xf0;
switch(key)
{
case 0xe0: num=4;break; //4
case 0xd0: num=5;break; //5
case 0xb0: num=6;break; //6
case 0x70: num=7;break; //减—
}
}
while(P1!=0xfd);
if(num==4||num==5||num==6)
{
if(flag==0) //没有按下符号键
{
//led=1;
a=a*10+dat1[num];
}
else
{
//led=1;
b=b*10+dat1[num];
}
}
else
{
flag=1;
fuhao=2;//带表减号
}
lcdwrd(0x30+dat1[num]);
}
P1=0xfb; //令第三行为0,判断哪一列按下
if(P1!=0xfb)
{
delay(1000);
if(P1!=0xfb)
{
key=P1&0xf0;
switch(key)
{
case 0xe0: num=8;break; //7
case 0xd0: num=9;break; //8
case 0xb0: num=10;break; //9
case 0x70: num=11;break; //乘*
}
}
while(P1!=0xfb);
if(num==8||num==9||num==10)
{
if(flag==0) //没有按下符号键
{
//led=1;
a=a*10+dat1[num];
}
else
{
//led=1;
b=b*10+dat1[num];
}
}
else
{
flag=1;
fuhao=3;//带表乘号*
}
lcdwrd(0x30+dat1[num]);
}
P1=0xf7; //令第四行为0,判断哪一列按下
if(P1!=0xf7)
{
delay(1000);
if(P1!=0xf7)
{
key=P1&0xf0;
switch(key)
{
case 0xe0: num=12;break; //0
case 0xd0: num=13;break; //清除rst
case 0xb0: num=14;break; //等号=
case 0x70: num=15;break; //除/
}
}
while(P1!=0xf7);
switch(num)
{
case 12:
if(flag==0) //没有按下符号键
{
//led=1;
a=a*10+dat1[num];
lcdwrd(0x30);
}
else
{
//led=1;
b=b*10+dat1[num];
lcdwrd(0x30);
}
break;
case 13:
lcdwrc(0x01); //清屏指令
a=0;
b=0;
flag=0;
fuhao=0;
break;
case 15:
flag=1;
fuhao=4;
lcdwrd(0x2f);//除号/
break;
case 14:
if(fuhao==1)//加
{
lcdwrc(0x4f+0x80);
lcdwrc(0x04);//设置光标左移,屏幕不移动
c=a+b;
while(c!=0) //一位一位显示
{
lcdwrd(0x30+c%10);//显示结果的最后一位在0x4f的位置
c=c/10;//取前面的结果数据
}
lcdwrd(0x3d); //显示等于号=
a=0;
b=0;
flag=0;
fuhao=0;//全部清除为0
}
if(fuhao==2) //减
{
lcdwrc(0x4f+0x80);
lcdwrc(0x04);//设置光标左移,屏幕不移动
if(a>b)
c=a-b;
else
c=b-a;
while(c!=0) //一位一位显示
{
lcdwrd(0x30+c%10);//显示结果的最后一位在0x4f的位置
c=c/10;//取前面的结果数据
}
if(a<b) lcdwrd(0x2d); //显示-号
lcdwrd(0x3d); //显示等于号=
a=0;
b=0;
flag=0;
fuhao=0;//全部清除为0
}
if(fuhao==3)//乘法
{
lcdwrc(0x4f+0x80);
lcdwrc(0x04);//设置光标左移,屏幕不移动
c=a*b;
while(c!=0) //一位一位显示
{
lcdwrd(0x30+c%10);//显示结果的最后一位在0x4f的位置
c=c/10;//取前面的结果数据
}
lcdwrd(0x3d); //显示等于号=
a=0;
b=0;
flag=0;
fuhao=0;//全部清除为0
}
if(fuhao==3)//乘法
{
lcdwrc(0x4f+0x80);
lcdwrc(0x04);//设置光标左移,屏幕不移动
c=a*b;
while(c!=0) //一位一位显示
{
lcdwrd(0x30+c%10);//显示结果的最后一位在0x4f的位置
c=c/10;//取前面的结果数据
}
lcdwrd(0x3d); //显示等于号=
a=0;
b=0;
flag=0;
fuhao=0;//全部清除为0
}
if(fuhao==4)
{
k=0;
lcdwrc(0x4f+0x80);
lcdwrc(0x04);//设置光标左移,屏幕不移动
c=(long)(((float)a/b)*1000);//强制转换为long。
while(c!=0) //一位一位显示
{
k++;
lcdwrd(0x30+c%10);//显示结果的最后一位在0x4f的位置
c=c/10;//取前面的结果数据
if(k==3)
{
lcdwrd(0x2e);
k=0;
}
}
if(a/b<0) //如果a比b小的话那么除的结果最高位是0
{
lcdwrd(0x30);
}
lcdwrd(0x3d); //显示等号
a=0;
b=0;
flag=0;
fuhao=0;//全部清除为0
}
break;
}
}
}
void main()
{
lcdinit();
while(1)
{
keyscan();
}
}
㈢ 求51单片机c语言教程 pdf
单片机学习方法:
网上单片机资料很多:
http://www.mcufan.com/scom.htm
http://www.51c51.com/cyuyan.htm
http://www.laogu.com/downtop.aspx
上面去搜搜看单片机的学习资料,都有入门级的
另外书店里面入门级的书也很多,可以买一本(北航出版的比较好)
1.入门时先了解单片机的构造啊原理啊
2.如果没有实验板自己搭建单片机的最小平台是比较难的
网上有个叫proteus的软件,可以用于单片机的仿真,就是说你编的程序可以在这个软件里运行,效果挺逼真的,可免费下载.
3.单片机的编程软件有keil或者wave,推荐前者,可以用c语言编写也可以汇编语言,c语言比较好学,推荐入门学习c语言,(可以买c和汇编语言都有介绍的单片机的书)
4.然后用keil编写程序在proteus上跑起来,如果你能点亮经典的单片机流水灯实验,那你就已经入门了
另:单片机的开发板或者最小系统可以买,电路水平高的话也可以自己搭建起来,51单片机大概6块左右一片自己搭建最小系统很便宜滴,学单片机一定要多做实验,不过推荐还是从仿真入门,仿真成功了后面的就有方向了.
㈣ 单片机教程
王云 51单片机教程,就很好,身边很多同学在用。
㈤ 《从零开始学单片机技术》pdf下载在线阅读,求百度网盘云资源
《从零开始学单片机技术》(刘建清)电子书网盘下载免费在线阅读
资源链接:
链接:
书名:从零开始学单片机技术
作者:刘建清
出版社:国防工业
出版年份:2006-8
页数:356
内容简介:
本书以实战操作为基础,用最简单的方法,将初学者领进单片机世界的大门。本书首先介绍了单片机的基础知识,然后简要阐述了单片机的指令系统、简单程序设计、存储器和I/0接口扩展、中断、定时器以及串行通信技术,最后对单片机常用接口技术(LED显示接口、键盘接口、LCD液晶接口、SPI总线接口和看门狗电路、12C总线接口、红外遥控接口、语音接口、A/D和D/A转换接口)和单片机的应用系统设计进行了精要介绍。
本书附赠光盘一张,光盘中包含有Keil、MedWin中文版软件以及书中所有实验的源程序。书中提供的所有实验均具有较高的实用性和代表性,且全部通过了实验板验证。
本书可供电子技术人员、单片机爱好者、业余电子爱好者阅读,也可作为相关专业的教学用书或教学参考书使用。
㈥ 自学51单片机的书籍
如下:
《51单片机工程师是怎样炼成的:基于C语言+Proteus仿真》老杨 电子工业出版社
《单片机C语言程序设计实训100例——基于8051+Proteus仿真》彭伟 电子工业出版社
《新概念51单片机C语言教程——入门、提高、开发、拓展》 郭天祥 电子工业出版社
《实例解读51单片机完全学习与应用》 电子工业出版社
《手把手教你学单片机》 北航
《单片机基础》李广弟 北航
《单片机原理及接口技术》李朝青 北航
《51单片机应用从零开始》汇编 杨欣 清华出版社
《爱上单片机》 杜洋 人民邮电出版社
《例说51单片机(C语言版)》 张义和 人民邮电出版社
《单片机原理与技术》
《51单片机开发与应用技术详解》
《单片机技术与原理教材》
《匠人手记》
《手把手教你学单片机》
《8051单片机》
《单片机原理及应用》 张毅刚
《51单片机原理与实践》
《单片机应用技术》 哈尔滨工业大学出版社
《8051单片机教程》 平凡
《单片机轻松入门》平凡
《单片机原理与应用》 西安电子科技大学
㈦ 如何学习单片机
楼主,
单片机的定义:
就是相当于电脑CPU的简化版。根据CORE(内核)可分为:
如8051内核称为51系列单片机;
如arm7内核称为ARM7系列单片机;
如arm920T.940T/926内核称为ARM9系列单片机;
因为现在所有8/16/32位(51系列,MSP430系列,ARM系列;
此外还有MSP430和AVR、PLC等
学习方法:
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语言编》一书,巩固一下理论知识。
总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。
㈧ 单片机初学者该看什么书
《51单片机工程师是怎样炼成的:基于C语言+Proteus仿真》老杨 电子工业出版社
《单片机C语言程序设计实训100例——基于8051+Proteus仿真》彭伟 电子工业出版社
《新概念51单片机C语言教程——入门、提高、开发、拓展》 郭天祥 电子工业出版社
《实例解读51单片机完全学习与应用》 电子工业出版社
《手把手教你学单片机》 北航
《单片机基础》李广弟 北航
《单片机原理及接口技术》李朝青 北航
《51单片机应用从零开始》汇编 杨欣 清华出版社
《爱上单片机》 杜洋 人民邮电出版社
《例说51单片机(C语言版)》 张义和 人民邮电出版社
《单片机原理与技术》
《51单片机开发与应用技术详解》
《单片机技术与原理教材》
《匠人手记》
《手把手教你学单片机》
《8051单片机》
《单片机原理及应用》 张毅刚
《51单片机原理与实践》
《单片机应用技术》 哈尔滨工业大学出版社
《8051单片机教程》 平凡
《单片机轻松入门》平凡