1.硬件部分
1.keil的使用
Project---New μVision Project…
保存路径后,选择芯片类型(AT公司的51单片机选择AT89C51)
添加C文档
File---New
或者直接点击空白文档
保存文档并命名,将新建的文档添加进工程
2.STC89C51单片机简介
什么是单片机
单片机就是在一个硅板上集成微处理器,存储器以及输入输出接口的单片微型计算器。
通俗地讲,单片机就是一块有特定功能的集成芯片,而这些特殊的功能需要我们操作者
通过编程来实现,我么可以用C语言或汇编语言进行程序的编写。
编程的最终目的
控制个个引脚在不同时间输出高低电平,进而控制与单片机引脚相连的外围电路的电器状态
单片机种类(种类繁多)
以AT(Atmel)公司为例
AT89C51,AT89C52,
AT89C53,AT89C55,
AT89LV52,AT89S51,
AT89S53,AT89LS53
3.单片机封装
4.I/O口引脚(单片机上的输入输出端口,如P0,P1,P2,P3四组八位I/O口)
5.LED灯原理:
二极管的单向导电性
6.共阴极接法(接高电平)
共阳极接法(接低电平)
7.蜂鸣器原理图
8.蜂鸣器的编程原理:
①改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音;
②改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
9.单片机编程的语言风格(与C语言基本类似)
头文件及其调用方式:#include”reg51.h”或#include<reg51.h>
子函数:void fun1( )
{
子函数程序;
}
主函数:void main()
{
主程序;
}
9.流水灯(实现流水灯的闪烁)
#include <reg51.h>
void Delay10ms(unsigned intc);
void main()
{
while(1)
{
P0 = 0x00;
Delay10ms(50);
P0 = 0xff;
Delay10ms(50);
}
}
void Delay10ms(unsigned intc)
{
unsigned char a, b;
for (;c>0;c--)
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
}10.蜂鸣器
#include <reg51.h>
sbit Beep = P1^5 ;
void delay(unsigned inti) ;
void main()
{
Beep= 1;
delay(5);
Beep= 0;
delay(5);
}
void delay(unsigned inti)
{
char j;
for(i; i >0; i--)
for(j = 200; j > 0; j--);
}
11.烧程序到单片机(勾选红色对勾,生成hex文件)
打开下载软件,选择芯片类型,打开hex文件,点击程序下载
2.软件部分
一、 面向对象
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
现实中的事物:状态、数据
编程中的对象:方法,变量
二、 实践出真知
1、 希望对象是什么样的?
右击在上次培训中创建的包,新建一个类,作为男/女票的标准模版(各项指标),命名,例如 BoyFriend,点击完成。
希望你的男/女票是什么样的?来,全由你一手控制
package培训例程1;
publicclass BoyFriend {
intheight = 181;//身高181
doubleweight = 66.666;//体重66.666
booleanisloveyou = true;//爱你吗
booleanischugui = false;//不会出轨
booleanishandsome = true;//帅
public String name = "dssd";//名字是dssd(瞎取的)
}
上述代码包括几个要点:
(1)、基本数据类型 int、double、boolean,其中int、double同c语言,boolean只有true和false两个值,其他基本数据类型以后再述。
(2)、不同于c语言中用字符串数组定义字符串,Java中用String, String不是基本数据类型。
(3)注释:单行注释可以用//,多行可以用注释用/* */包围,如 /*我是注释*/
2、该给你们分配对象了
(1)、右击包,新建类,取个名字,如ShowLove,勾选,完成。
(2)、写入代码:BoyFriend b1;
这是对象的声明
对象的声明方法:类名对象名;
写入代码:b1 = new BoyFriend();
将实例化出来的对象赋给b1
对象的实例化方法:new构造方法([参数列表]);
可以合写成BoyFriend b1 = new BoyFriend();
3、 有对象了,怎么用呢?
输入代码:System.out.println("我对象的名字是"+b1.name);
运行,控制台输出结果:
要点:
(1)、System.out.println(); 用于输出到控制台。
可使用快捷方式:先写syso,然后按快捷键Alt+/,回车。
Alt+/ 快捷方式可下拉出模板建议,提高写代码的效率。
(2)、"我对象的名字是" 是一个字符串,b1.name表示对象的名字,这类似于c语言中的结构体,两者用+连接。
(3)、身高体重等数据输出同上。
4、前面还提到了方法,what is it?
(1)、 方法其实就是函数。
public String getName() {
returnname;
}
这个方法用于返回对象的name。
在ShowLove中写入代码System.out.println("我对象的名字是"+b1.getName());
输出结果:
两行代码输出结果相同。
(2)、小技巧:怎么一次性获取像getName()这样的函数呢?
我们点开左上方源码,点击生成Getter和Setter,出现弹窗
选取你想要改变或获取的数据,单击完成。
这时你会发现,出现了一堆你要的函数。
5、访问限定符,就不让你知道我对象叫啥。
java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。
(1)private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
(2)不加任何访问修饰符:通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
(3)protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
(4)public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
(5)实践一下
将原来的publicString name = "dssd"; 改成 private String name = "dssd";
回到主类ShowLove,发现报错:
诶这下,就不告诉你我对象叫啥。)
我们看到,第九行报错,但是第十行没报错
这是因为,name的访问限定符已经从public改成了private,ShowLove已经访问不到他了。但是getName()的修饰符还是public,所以ShowLove还能通过getName()访问到对象的name,这下就不是随便谁都能知道你对象的名字了。
什么是单片机