锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

*♎* 51单片机100例 *♎*

时间:2022-11-14 09:00:00 无需传感器fa8dds2保护继电器

目录

目录...1

使用和熟悉函数********************************/...4

实例 3:用单片机控制第一盏灯...4

实例 4:用单片机控制灯闪烁:了解单片机的工作频率...4

实例 5:将 P1 口状态分别送入 P0P2P3 口:认识 I/O 口的引脚功能... 5

实例 6:使用 P3 口流水点亮 8 LED... 5

实例 7:通过对 P3 口地址的操作流水点亮 8 LED... 6

实例 8:不同数据类型的控制灯闪烁时间...7

实例 9:用 P0 口、P1 分别显示加法和减法运算结果...8

实例 10:用 P0P1 口显示乘法运算结果... 9

实例 11:用 P1P0 除法操作结果显示在口中... 9

实例 12:控制自增运算 P0 8 LED 流水花样... 10

实例 13:用 P0 口显示逻辑""运算结果...

实例 14:用 P0 口显示条件运算结果.......................................................................11

实例 15:用 P0 口显示按位"异或"运算结果........................................................... 11

实例 16:用 P0 显示左移运算结果...........................................................................11

实例 17"万能逻辑电路"实验................................................................................. 11

实例 18:用右移运算流水点亮 P1 8 LED....................................................... 12

实例 19:用 if 语句控制 P0 8 LED 的流水方向.............................................. 13

实例 20:用 swtich 语句的控制 P0 8 LED 的点亮状态..................................13

实例 21:用 for 语句控制蜂鸣器鸣笛次数..............................................................14

实例 22:用 while 语句控制 LED...............................................................................16

实例 23:用 do-while 语句控制 P0 8 LED 流水点亮...................................... 16

实例 24:用字符型数组控制 P0 8 LED 流水点亮.......................................... 17

实例 25 P0 口显示字符串常量.........................................................................18

实例 26:用 P0 口显示指针运算结果......................................................................19

实例 27:用指针数组控制 P0 8 LED 流水点亮.............................................. 19

实例 28:用数组的指针控制 P0 8 LED 流水点亮........................................ 20

实例 29:用 P0 P1 口显示整型函数返回值........................................................ 21

实例 30:用有参函数控制 P0 8 LED 流水速度.............................................. 22

实例 31:用数组作函数参数控制流水花样.............................................................23

实例 32:用指针作函数参数控制 P0 8 LED 流水点亮.................................. 23

实例 33:用函数型指针控制 P1 口灯花样...............................................................25

实例 34:用指针数组作为函数的参数显示多个字符串.........................................26

实例 35:字符函数 ctype.h 应用举例.......................................................................27

实例 36:内部函数 intrins.h 应用举例..................................................................... 27

实例 37:标准函数 stdlib.h 应用举例.......................................................................28

实例 38:字符串函数 string.h 应用举例.................................................................. 29

实例 39:宏定义应用举例 2......................................................................................29

1 / 192

 

实例 40:宏定义应用举例 2......................................................................................30

实例 41:宏定义应用举例 3......................................................................................30

 

中断、定时器************************************************   .........31

实例 42:用定时器 T0 查询方式 P2 8 位控制 LED 闪烁.................................... 31

实例 43:用定时器 T1 查询方式控制单片机发出 1KHz 音频.................................31

实例 44:将计数器 T0 计数的结果送 P1 8 LED 显示.................................... 32

实例 45:用定时器 T0 的中断控制 1 LED 闪烁...................................................33

实例 46:用定时器 T0 的中断实现长时间定时.......................................................34

实例 47:用定时器 T1 中断控制两个 LED 以不同周期闪烁...................................34

实例 48:用计数器 T1 的中断控制蜂鸣器发出 1KHz 音频.....................................36

实例 49:用定时器 T0 的中断实现"渴望"主题曲的播放....................................... 36

实例 50-1:输出 50 个矩形脉冲............................................................................... 39

实例 50-2:计数器 T0 统计外部脉冲数................................................................... 40

实例 51-2:定时器 T0 的模式 2 测量正脉冲宽度................................................... 40

实例 52:用定时器 T0 控制输出高低宽度不同的矩形波.......................................41

实例 53:用外中断 0 的中断方式进行数据采集.....................................................42

实例 54-1:输出负脉宽为 200 微秒的方波............................................................. 43

实例 54-2:测量负脉冲宽度..................................................................................... 43

实例 55:方式 0 控制流水灯循环点亮.....................................................................44

实例 56-1:数据发送程序......................................................................................... 45

实例 56-2:数据接收程序......................................................................................... 47

实例 57-1:数据发送程序......................................................................................... 47

实例 57-2:数据接收程序......................................................................................... 49

实例 58:单片机向 PC 发送数据.............................................................................. 50

实例 59:单片机接收 PC 发出的数据...................................................................... 51

 

*********************************数码管显示        ...............................52

实例 60:用 LED 数码显示数字 5..............................................................................52

实例 61:用 LED 数码显示器循环显示数字 0~9......................................................52

实例 62:用数码管慢速动态扫描显示数字"1234"................................................. 53

实例 63:用 LED 数码显示器伪静态显示数字 1234............................................... 54

实例 64:用数码管显示动态检测结果.....................................................................54

实例 65:数码秒表设计.............................................................................................56

实例 66:数码时钟设计.............................................................................................58

实例 67:用 LED 数码管显示计数器 T0 的计数值...................................................62

实例 68:静态显示数字“59”...................................................................................63

*****************************键盘控制

 

2

 

/

 

192

 

*****************************************************/...........................63

实例 69:无软件消抖的独立式键盘输入实验.........................................................64

实例 70:软件消抖的独立式键盘输入实验.............................................................64

实例 71CPU 控制的独立式键盘扫描实验.............................................................65

实例 72:定时器中断控制的独立式键盘扫描实验.................................................68

实例 73:独立式键盘控制的 4 级变速流水灯.........................................................71

实例 74:独立式键盘的按键功能扩展:"以一当四"............................................. 73

实例 75:独立式键盘调时的数码时钟实验.............................................................75

实例 76:独立式键盘控制步进电机实验.................................................................79

实例 77矩阵式键盘按键值的数码管显示实验.....................................................82

//实例 78:矩阵式键盘按键音..................................................................................85

实例 79:简易电子琴.................................................................................................86

实例 80:矩阵式键盘实现的电子密码.................................................................92

*********************************************************************

*** **液晶显示 LCD*********液晶显示 LCD *****液晶显示 LCD *************

***********************************************************/...............95

实例 81:用 LCD 显示字符'A'.................................................................................... 96

实例 82:用 LCD 循环右移显示"Welcome to China"............................................... 99

实例 83:用 LCD 显示适时检测结果...................................................................... 102

实例 84:液晶时钟设计...........................................................................................106

 

******************************************一些芯片的使用*****24c02   ........ DS18B20   X5045   ADC0832   DAC0832   DS1302

红外遥控**********************************************/...................... 112

 

实例 85:将数据"0x0f"写入 AT24C02 再读出送 P1 口显示..................................112

实例 86:将按键次数写入 AT24C02,再读出并用 1602LCD 显示.......................117

实例 87:对 I2C 总线上挂接多个 AT24C02 的读写操作.......................................124

实例 88:基于 AT24C02 的多机通信   读取程序.................................................. 129

实例 88:基于 AT24C02 的多机通信 写入程序.................................................... 133

实例 90DS18B20 温度检测及其液晶显示........................................................... 144

实例 91:将数据"0xaa"写入 X5045 再读出送 P1 口显示......................................153

实例 92:将流水灯控制码写入 X5045 并读出送 P1 口显示................................ 157

实例 93:对 SPI 总线上挂接多个 X5045 的读写操作............................................161

实例 94:基于 ADC0832 的数字电压表..................................................................165

实例 95:用 DAC0832 产生锯齿波电压..................................................................171

实例 96:用 P1 口显示红外遥控器的按键值.........................................................171

实例 97:用红外遥控器控制继电器.......................................................................174

实例 98:基于 DS1302 的日历时钟........................................................................ 177

实例 99:单片机数据发送程序...............................................................................185

实例 100:电机转速表设计.....................................................................................186

模拟霍尔脉冲............................................................................................................192

 

 

 

3

 

/

 

192

 

 

/************************************************************

函数的使用和熟悉***************

************************************************/

 

 

//实例 3:用单片机控制第一个灯亮

#include   //包含 51 单片机寄存器定义的头文件

void main(void)

{

P1=0xfe; //P1=1111 1110B,即 P1.0 输出低电平

}

 

 

 

//

 

4

 

//实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率

#include     //包含单片机寄存器的头文件

/****************************************

函数功能:延时一段时间

*****************************************/

void delay(void)          //两个 void 意思分别为无需返回值,没有参数传递

{

unsigned int i;         //定义无符号整数,最大取值范围 65535

for(i=0;i<20000;i++)   // 20000 次空循环

;                  //什么也不做,等待一个机器周期

}

/*******************************************************

函数功能:主函数 C 语言规定必须有也只能有 1 个主函数)

********************************************************/

void main(void)

{

while(1)       //无限循环

{

P1=0xfe;    //P1=1111 1110B P1.0 输出低电平

delay();    //延时一段时间

P1=0xff;    //P1=1111 1111B P1.0 输出高电平

delay();   //延时一段时间

}

}

4 / 192

 

 

 

//

 

5

 

P1

 

P0

 

P2

 

P3

 

I/O

 

//实例 5:将

#include

 

P1 口状态分别送入 P0P2P3 口:认识 I/O

的引脚功能

//包含单片机寄存器的头文件

 

/*******************************************************

函数功能:主函数 C 语言规定必须有也只能有 1 个主函数)

********************************************************/

void main(void)

{

while(1)          //无限循环

{

P1=0xff;    // P1=1111 1111B,熄灭 LED

P0=P1;      //   P1 口状态送入 P0

P2=P1;         //   P1 口状态送入 P2

P3=P1;      //   P1 口状态送入 P3

}

}

 

 

//实例 6:使用 P3 口流水点亮 8 LED

#include    //包含单片机寄存器的头文件

/****************************************

函数功能:延时一段时间

*****************************************/

void delay(void)

{

unsigned char i,j;

for(i=0;i<250;i++)

for(j=0;j<250;j++)

;

}

/*******************************************************

函数功能:主函数

********************************************************/

void main(void)

{

5 / 192

 

while(1)

{

 

P3=0xfe;

delay();

P3=0xfd;

delay();

P3=0xfb;

delay();

P3=0xf7;

delay();

P3=0xef;

 

//第一个灯亮

//调用延时函数

//第二个灯亮

//调用延时函数

//第三个灯亮

//调用延时函数

//第四个灯亮

//调用延时函数

//第五个灯亮

 

 

 

delay();

 

//调用延时函数

 

P3=0xdf;

delay();

P3=0xbf;

 

//第六个灯亮

//调用延时函数

//第七个灯亮

 

delay();

 

//调用延时函数

 

 

 

P3=0x7f;

 

//第八个灯亮

 

}

 

}

 

delay();

 

//调用延时函数

 

 

//实例 7:通过对 P3 口地址的操作流水点亮 8 LED

#include    //包含单片机寄存器的头文件

sfr x=0xb0;    //P3 口在存储器中的地址是 b0H 通过 sfr 可定义 8051 内核单片

//的所有内部 8 位特殊功能寄存器,对地址 x 的操作也就是对 P1 口的

操作

/****************************************

函数功能:延时一段时间

*****************************************/

void delay(void)

{

unsigned char i,j;

for(i=0;i<250;i++)

for(j=0;j<250;j++)

;    //利用循环等待若干机器周期,从而延时一段时间

}

/*****************************************

函数功能:主函数

6 / 192

 

******************************************/

void main(void)

{

while(1)

{

x=0xfe;    //第一个灯亮

delay();   //调用延时函数

x=0xfd;   //第二个灯亮

delay();   //调用延时函数

x=0xfb;   //第三个灯亮

delay();   //调用延时函数

x=0xf7;   //第四个灯亮

delay();   //调用延时函数

x=0xef;    //第五个灯亮

delay();   //调用延时函数

x=0xdf;    元器件数据手册、IC替代型号,打造电子元器件IC百科大全!

相关文章