位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
1.【例3-34】 4路抢答器源程序(用P2端口状态查询)
4路抢答器的功能:抢答口令发出后,只有最先按下开关键(灯最先亮)的一组有效获得抢答权。
本款单片机的小键盘中的“+1”键、“-1”键、高一位操作键、地址键和写入键一端分别接在P2口的P2.0、P2.1、P2.2、P2.3、P2.4上,另一端接地。当按下某一键时就将该位接地,相当于零状态。复位后可以重新输入。
程序一:
程序二:
实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。按下P2口的不同键时,P1口对应的灯亮。以便查询P2口位的状态。
程序点评:程序中用了I/O接口某位判0转移指令“JNB BIT,REL”。
2.【例3-35】 寻黑线的智能车
1)智能车由双电动机驱动,左侧电动机驱动左侧车轮,右侧电动机驱动右侧车轮。仅有左侧电动机驱动时向右转,仅有右侧电动机驱动时向左转,双电动机同时驱动前进或后退。
2)寻黑线场地在白底场地上画有一定宽度的黑线,黑线图案按要求设定。
3)智能车前端沿黑线外沿,左右两端安装两个光线变化传感器。当任意一端的传感器出黑线进入白场地时,该传感器的状态由1跳变为0。
4)智能车在前进方向行驶时若右传感器出黑线则仅由右侧电动机驱动,向左转;若左传感器出黑线则仅由左侧电动机驱动,向右转。
5)光线变化传感器可接入P1口的P1.0位(左端)和P1.1位(右端),电路如图3-1所示。
(www.chuimin.cn)
图3-1 光敏控制电路
6)电动机驱动芯片9110及引脚定义,如图3-2和图3-3所示。
图3-2 电动机驱动芯片9110
图3-3 芯片9110引脚定义
7)智能车电动机驱动芯片控制电路连接图如图3-4所示。
图3-4 电动机控制接线电路
8)智能车电动机驱动芯片控制真值表(设M1为左驱动电动机,M2为右驱动电动机),见表3-1。
表3-1 智能车电动机驱动芯片控制真值表
9)控制源程序。
实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。接通电源后智能车寻黑线前行,出线后自动调整。
程序点评:程序中使用了P1口,灯的亮灭可以直观地检测光线传感器和驱动电动机的工作状况。运行中若出现智能车冲出跑道的情况,可以增加延时时间。
有关零起点学习单片机多语言编程的文章
位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
对单片机来说,可以用高级语言编程,也可用汇编语言编程,两种语言各有特点。像8051具有MCS51系列单片机的指令集。用助记符指令组成的计算机语言就称为汇编语言。......
2023-11-07
所谓独立键,就是各个按键的功能线之间没有电的连接,每个按键独立存在。这种连接方法一只按键要占用一个接口。常用于键少的应用场合。若再次查询按键并没有闭合,则认为按键未被按下,无效。流程图的作用就是将一个应用任务转化为计算机的工作流程。这是用计算机解决应用问题的必要前提。对于任何程序,只有三种基本结构,即顺序结构、分支结构和循环结构。反复执行,则P1.0反复取反状态,表示程序执行正确。......
2023-11-07
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2023-11-07
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
2023-11-07
定时器/计数器是MCS51系列单片机芯片内的一个组件,简写为T/C。它有2个相同的定时器/计数器,称为定时器/计数器0和定时器/计数器1。实际上定时器/计数器是一个计数器,可以8位、13位或16位计数,对应的两组4个8位计数器。TCON定时控制位共4位。TR0=0,停止定时器/计数器工作;TR0=1,开启定时器/计数器工作。TMOD是专业寄存器,用于设定定时器/计数器0和定时器/计数器1的工作方式,只能用字节传送设置。......
2023-11-07
逐一依次循环闪烁:“逐一”表示某时刻仅能有一个发光二极管亮;“依次”表示I/O接口各位的发光二极管按顺序亮;“循环”表示I/O接口各位的灯逐一依次无固定次数的不停闪烁;“闪烁”表示I/O接口各位的发光二极管有亮有灭。方案说明:图2-1中深色的符号表示发光二极管亮,浅色的符号表示发光二极管不亮。3)程序设计(二)。程序点评:在关闭上一对发光二极管1s后,开启下一对,关闭与开启之间有1s的时间间隔。I/O接口位N=00~07。......
2023-11-07
以上几方面导致了在嵌入式系统中应用高级语言变得非常必要。如何让读者较容易的具备嵌入式C语言的基本应用技能,从而为大量学习应用实例创造条件是本书的一个特点。嵌入式C语言与被控对象结合紧密,编程除具有标准C语言的特点外,与标准C语言相比,还有如下一些要求:1)对一些关键字进行了一定的扩展。......
2023-11-07
相关推荐