子情境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