使用查询标志位的方法通过串行口发送C语言的经典语句“hello World!”,在PC上运行串口调试助手软件接收此消息并在屏幕上显示出来。单击“打开串口”按钮,这时会发现在串口调试助手的接收区有“hello World!”图9-29 串口调试助手向单片机发送数字单片机接收到来自PC发送的信息后,用LED灯显示该数字的状态,系统板的具体状态如图9-30所示。......
2023-11-17
1.任务要求
2.任务目的
(1)熟悉C语言的基本语句的使用方法。
(2)了解顺序结构及模块化程序的设计方法。
3.任务分析
汽车转向灯的控制是驾驶员驾驶汽车时,向他人传递汽车行驶状况的基本操作。汽车转向灯的状态见表4-4。
表4-4 汽车转向灯状态表
在本任务中,采用两位LED灯模拟汽车左右转向灯,利用单片机的P1.0、P1.1引脚分别控制两灯的亮、灭状态;用两个连接到单片机P2.0、P2.1引脚的拨动开关S1、S2,模拟驾驶员发出的左转、右转命令。模拟汽车转向灯的控制原理图如图4-42所示。
图4-42 模拟汽车转向灯的控制原理图
P1.0和P1.1控制两位LED灯,但引脚输出为0时,相应的LED灯被点亮;P2.0和P2.1分别连接一个拨动开关,拨动开关的一端通过一个4.7 kΩ电阻连接到电源,另一端接地。
但拨动开关S1拨动至接地端时,P2.0引脚为低电平,即P2.0=0;当S1断开时,P2.0引脚为高电平,P2.0=1。拨动开关S2亦然。
根据模拟汽车转向灯的控制原理图和表4-4,驾驶员操作与两个控制开关(即P2.0、P2.1引脚)电平状态、模拟汽车转向灯(即P1.0、P1.1引脚)状态对应关系见表4-5。
表4-5 驾驶员操作与P1、P2端口状态关系表
P2.0引脚的电平状态与P1.0控制的左转向灯的亮灭状态相对应。P2.0=1时,P1.0=1(转向灯熄灭);当P2.0=0时,P1.0=0(左转向灯闪烁)。同样,P2.1引脚的状态与右转向灯的亮灭状态相对应。
4.流程图
模拟汽车转向灯控制系统的流程图如图4-43所示。(www.chuimin.cn)
图4-43 模拟汽车转向灯控制系统的流程图
5.源程序设计
模拟汽车转向灯控制系统的源程序:
6.Keil uVison仿真实现
在Keil uVision环境下完成源程序的编辑和设置,然后进行如下操作:
(1)打开菜单“Peripherals”,在下拉菜单中选择“I/O-prots”,并在其子菜单中选择“prots1”,重复前面的操作,选择“prots2”。
(2)在Keil uVision中按下F5键或单击工具栏图标运行程序,观察弹出的“Paralle Port1”“Paralle Port2”窗口中端口的状态变化情况,如图4-44所示。
图4-44 模拟汽车转向灯Keil uVison仿真图
单击“Paralle Port2”窗口中的P2.0(左转向控制开关),使P2.0=0,则相应的P1.0=0,表示左转向控制开关接通,P1.0连接的LED灯闪烁。P2.1控制P1.1的状态也是如此。
当P2.0=0,P2.1=0时,P1.0=0,P1.1=0,表示左、右转向灯均闪烁。
7.Proteus设计与仿真
模拟汽车转向灯Proteus仿真图如图4-45所示。
图4-45 模拟汽车转向灯Proteus仿真图
有关单片机原理与应用 基于C语言的文章
使用查询标志位的方法通过串行口发送C语言的经典语句“hello World!”,在PC上运行串口调试助手软件接收此消息并在屏幕上显示出来。单击“打开串口”按钮,这时会发现在串口调试助手的接收区有“hello World!”图9-29 串口调试助手向单片机发送数字单片机接收到来自PC发送的信息后,用LED灯显示该数字的状态,系统板的具体状态如图9-30所示。......
2023-11-17
表4-3 C51支持的数据类型续表注:数据类型中加底色的部分为C51语言扩展的数据类型。C51语言中使用的数据类型包括C语言中标准的数据类型和C51语言扩展的数据类型。C51语言扩展的数据类型有位类型、可位寻址的位类型、特殊功能寄存器和16位特殊功能寄存器型等。另外,C51语言还支持由基本数据类型组成的数组、结构体、联合体和枚举类型等结构类型数据。......
2023-11-17
其实,keil C51的调试模式间接地提供了程序延时的方法,下面通过实验来说明。因为Keil软件本身具备程序优化的功能,如果想在所有的代码位置都能设置断点,可以在工程选项里把优化等级设置为0,就是告诉Keil不要进行优化,如图4-29所示。......
2023-11-17
定时/计数器从电路上来讲是一个脉冲计数器,当计数脉冲来自单片机内部机器周期时,我们习惯上称其为定时器,而当计数脉冲来自单片机外部的输入信号时,则称其为计数器。图7-7 定时/计数器0的结构两个8位寄存器都是用来保存计数值的,其使用方法非常灵活。① 0:仅当TCON寄存器的TR0=1时启动定时/计数器0。定时/计数器0对来自单片机片内的机器周期进行计数,每个机器周期计数器的值都会加1。......
2023-11-17
在学习单片机的过程中,必须要强调动手的重要性。本节将从搭建8051单片机的最小系统开始,带你步入学习制作单片机的旅程。在单片机学习时常用的基础电路板有面包板、万能板和PCB板。镊子是用来夹住导线或元器件的引脚送入面包板指定位置的。要根据电路图确定元器件在面包板上的排列方式,目的是走线方便。......
2023-11-17
A.8 KBB.16 KBC.32 KBD.64 KB三、判断题1.8位二进制无符号数的大小范围是0~256。()2.CPU的时钟周期为振荡器频率的倒数。()4.计算机中机器码就是由若干位二进制数构成的。()5.51系列单片机的产品8051与8031的区别是:8031片内无ROM。()9.8位二进制数原码的大小范围是-127~+127。为什么在计算机系统中广泛使用二进制数?......
2023-11-17
最小系统板上J1是预留的ISP下载接口,兼供电功能。表1-10 最小系统材料清单图1-45 最小系统板所用材料搭建最小系统所用的材料在电子市场上不难买到,价格也不贵。......
2023-11-17
Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。如果找到Proteus支持的编译器,Proteus 将自动进行配置并在Proteus 中调用这些编译器编译源代码。图2-40 仿真控制面板2.3.4 Proteus8.0与Keil连接调试Keil 是德国Keil 公司开发的 8051单片机软件开发平台,经过不断升级,现已经成为一个重要的单片机开发平台。......
2023-11-17
相关推荐