单片机

第一阶段综合例程(上)

1.其他按键的使用我们之前都是让P2.3输出低电平来让K1,K2,K3,K4作为独立按键,那我们要想用K13,K14,K15,K16做独立按键时只要P2.0输出低电平就可以了。下面是简化的原理图2.美女与男人作为本章的最后一个题目,我们结合所有学过的知识做一个综合例程,实现美女与男人的游戏的功能代码。

AD与DA合成文件

这一章节的内容比较简单,大家反复细读学习《手把手教你学51单片机》文档第17章就会了解透彻这部分的知识。1.简要解析概念和代码我们知道PCF8591有4个通道是可以用来读取输入的电压值的。那么宋老师写的“unsignedcharGetADCValue(unsignedcharchn)”就是选择读取其中

中断函数

1.中断函数概念上一讲里,当赋值IT0为1时,P3.2遇到下降沿,IE0被置1,要想使IE0自动清零,我们引用中断函数就可以了。我们可能已经习惯了都是在main函数里阅读分析代码,其实还有另一种函数需要我们认识的,那就是中断函数。所谓中断函数就是当它满足一定的条件时就会暂停主函数的执行内容,

前期准备

1.学习前提单片机是需要与程序打交道的,这个需要您先掌握很基础的C语言知识,即便我们讲解程序的执行过程尽量详细,但对于没有任何C语言知识基础的同学来说这将是举步维艰的。所以您必须掌握以下最基本的知识1.数据类型2.十六进制,十进制,二进制之间的转换3.程序的运行顺序4.if,

定时器概念

1.生活的例子通过上一章大家已经有了对中断知识的了解,像外部中断这种需要物理动作才能触发中断函数执行,但很多情况下我们需要的是中断函数在适当时刻可以自动得去执行,所以就需要定时器来辅助了。定时器是单片机内部的一个硬件资源。用生活常见现象举例:定时器相当于一个闹钟,

支持连按与全局变量

1.支持连按的思路支持连按的代码就是在“不支持连按”代码的思路上把“if(KEY4==1)”改为“if(KEY4==0)”,这样的话按键不松手程序就能一直进入“if(KEY4==0)”的大括号里面。然后我们定义一个变量times,如果一直按着不放,

数据类型强制转换

1.实用性改善为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。

IIC&EEPROM合成文件

1.浅释E2Write函数宋老师的例程lesson14_3和lesson14_4里的“E2Write(unsignedchar*buf,unsignedcharaddr,unsignedcharlen)”书写内容是不一样的,lesson14_4的E2Write函数比lesson14_3的E2Write

按键&蜂鸣器&数码管

在上一讲的代码中我们可以不用写“sbitGND=P2^3;”,像宋老师那样直接在开头“P2=0xF7;”仅让P2.3输出0其他输出1即可,这样P2.7就有被拉低的条件了。1.趁热打铁沿袭上一讲的功能,我们新学的按键知识需要结合所学过的无源蜂鸣器硬件一起捣鼓玩玩。

数组与移位

1.数组运用实现上一节的功能其实还有更简洁的方法去书写,那就是引用数组,用数组存取灯的八种状态值。定义含有8个元素的数组如下:unsignedcharLEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};每个元素轮流赋值给P0后延时即可。