子情境1:简单实例助你快速掌握PROTEUS的用法 12
1.1 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。 15
1.2 子情境目标: 15
1.3 子情境步骤 15
1.3.1步骤一: PROTEUS电路设计 15
1.3.2步骤二:源程序设计与生成目标代码文件 20
(1)程序流程图 20
(2)源程序设计 21
1.3.3 步骤三:PROTEUS仿真 22
1.4 扩展练习 24
子情境二:用发光二极管实现流水灯乒乓球效果 25
2.1 子情境目标: 25
2.2 子情境步骤 25
2.2.1 步骤一: PROTEUS电路设计 25
2.2.2步骤二:源程序设计与目标代码文件生成 26
(1)程序流程图 26
(2)源程序设计 27
2.2.3 步骤三:PROTEUS仿真 29
2.4 扩展练习 29
子情境三:数码管动态扫描 30
3.1子情境内容:利用动态扫描让四位数码管稳定的显示1234。 30
3.2 子情境目标: 30
(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电 30
3.3 知识点链接 30
3.4 任务步骤 31
3.4.1 步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图5-17所示。 31
3.4.2 步骤二:源程序设计与目标代码文件生成 33
(1)程序流程图 33
(2)源程序设计 33
3.4.3 步骤三:PROTEUS仿真 35
3.5 扩展练习 36
子情境四:定时/计数器的使用——方波发生器 37
4.1子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。 37
4.2 子情境目标: 37
4.3 知识点链接 37
4.4.1 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图5-22所示。 37
(1)程序流程图 38
(2)源程序设计 38
4.4.3 步骤三:PROTEUS仿真 39
4.5 扩展练习 41
子情境五:单片机外部中断仿真 42
5.1子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。 42
5.2 子情境目标: 42
(1)理解单片机的中断原理及中断过程 42
(2)用PROTEUS设计、仿真单片机的外部中断。 42
5.3 知识点链接 42
5.4 任务步骤 42
5.4.1 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图 42
5.4.2 步骤二:源程序设计与目标代码文件生成 43
(1)程序流程图 43
(2)源程序设计 43
5.4.3 步骤三:PROTEUS仿真 45
5.5 扩展练习 47
主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。 47
子情境六:直流电机正反转 48
6.1子情境内容:用单片机AT89C51控制直流电机正反转。 48
6.2 子情境目标: 48
(1)掌握趋动电机正反转的电路 48
(2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真 48
6.3 知识点链接 48
6.4 任务步骤 48
6.4.1 步骤一:PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图 48
6.4.2 步骤二:源程序设计与目标代码文件生成 50
(1)程序流程图 50
(2)源程序设计 51
6.4.3 步骤三:PROTEUS仿真 52
6.5 扩展练习 53
子情境七:用ADC0809实现电压表 55
7.1子情境内容:利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。 55
7.2 子情境目标: 55
(1)掌握PROTEUS中电压探针和电压表的使用方法 55
(2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。 55
7.3 知识点链接 55
了解ADC0809芯片的功能以及使用方法 55
(1)功能:ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0~IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。 55
(2)使用方法:28脚双列直插式封装如图5-39所示,各引脚功能如下: 55
7.4 任务步骤 56
7.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图5-40所示。 56
7.4.2 步骤二:源程序设计与目标代码文件生成 58
(1)程序流程图 58
(2)源程序设计 59
7.4.3 步骤三:PROTEUS仿真 62
7.5 扩展练习 66
子情境八:1602液晶显示器 67
8.1子情境内容:利用单片机AT89C52控制液晶显示器(Liquid Crystal Display,简称为LCD)实时显示。在1602液晶的第一行显示“I LOVE MY FAMILY”,在第二行显示“WWW.YZCIT.CN”。 67
8.2 子情境目标: 67
(1)掌握1602液晶与单片机的接口电路 67
(2)通过控制LCD,学会LCD液晶模块在单片机应用系统中的编程方法。 67
8.3 知识点链接 67
了解LCD1602芯片的功能以及使用方法 67
(1)功能:本情境中所使用的液晶显示器型号为1602,意思是每行显示16个字符,一共可以显示两行。此液晶只能显ASCII字符,如数字、大小写字母、各种符号等。 67
(2)使用方法:1602液晶的引脚图 67
8.4 任务步骤 68
8.4.1 步骤一:PROTEUS电路设计,利用单片机AT89C52控制液晶显示器实时显示的原理图如图5-46所示。 68
8.4.2 步骤二:源程序设计与目标代码文件生成 69
(1)程序流程图 69
(2)源程序设计 69
8.4.3 步骤三:PROTEUS仿真 71
8.5 扩展练习 72
子情境九:简易秒表制作 73
9.1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。 73
9.2 子情境目标: 73
(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路 73
(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘 73
9.3 知识点链接 73
9.4 任务步骤 73
9.4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。 73
9.4.2 步骤二:源程序设计与目标代码文件生成 74
(1)程序流程图 74
(2)源程序设计 76
9.4.3 步骤三:PROTEUS仿真 79
9.5 扩展练习 81
此子情境设计的秒表只能显示两位整数,如果要记录110跨栏12:88秒的成绩,则必须再增加两位数码管来显示小数位。想想硬件和软件应该做如何改动。 81
子情境十:点阵LED简单图形显示技术 82
10.1子情境内容:利用单片机AT89C52在8×8点阵上逐次显示心形、圆形和菱形图。 82
10.2 子情境目标: 82
(1)通过学习点阵LED显示技术,掌握单片机与点阵的接口电路。 82
(2)进一步熟悉单片机I/O口的运用方法,了解动态显示的编程方法 82
10.3 知识点链接 82
10.4 任务步骤 83
10.4.1 步骤一:PROTEUS电路设计,LED点阵的原理图如图5-56所示。 83
10.4.2 步骤二:源程序设计与目标代码文件生成 84
(1)程序流程图 84
(2)源程序设计 85
10.4.3 步骤三:PROTEUS仿真 87
10.5 扩展练习 88
1