51单片机实习报告_第1页
51单片机实习报告_第2页
51单片机实习报告_第3页
51单片机实习报告_第4页
51单片机实习报告_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机实习报告2021 姓名: 学号: 班级: 专业: 指导老师:目录实习第一阶段:基于单片机的电梯控制模拟系统第1章 系统构思的介绍及改良.-2-1.0系统最初的构思.-2-1.1系统的改良.-3-1.2系统功能实现的思路分析.-4-第2章 系统硬件的设计.-5-2.0 系统硬件的整体设计.-5-2.1 目的楼层显示电路.-5-2.2 电梯状态同步显示电路.-6-2.3 键盘扫描电路.-7-2.4 直流电机驱动电路.-10-2.5 扬声器报警电路.-11-第3章 系统软件的设计.-11-3.0 软件的整体设计.-12-3.1 各楼层检测呼叫信号子函数.-13-3.2 电梯状态同步显示子函数

2、.-14-3.3 目标楼层指示灯子函数.-14-3.4 键盘扫描子函数.-15-3.5 直流电机驱动子函数.-16-3.6 报警器子函数.-16-3.7 主函数.-17-第4章 个人心得体会1.-17-4.0 实习的收获与感悟1.-17- 附录1.-20-实习第二阶段:基于单片机的吊机控制模拟系统第5章 系统软硬件的设计.-30-5.0 系统硬件的设计.-30-5.1 系统软件的设计.-31-5.2 8255可编程并行IO口模块.-32-5.3 液晶显示模块.-33-5.4 LED点阵显示模块.-34- 数码管显示模块.-35- 键盘扫描模块.-35- 扬声器及LED灯模块.-36-第6章 个

3、人心得体会2.-37-6.0 实习的收获与感悟2.-37- 附录2.-38-附图片.-54-基于单片机的电梯控制模拟系统第1章 系统构思的介绍及改良工程功能描述:该模拟系统的主要思想是利用单片机及其外部扩展设备来模拟电梯控制系统的各项根本功能。其中单片机模拟电梯控制系统的CPU;键盘模拟前往目的楼层的按键;LED点阵显示电梯的上下状态;LED显示屏显示当前所在的楼层数;直流电机控制电梯的状态,正转表示上升,反转表示下降,停转表示停在某一楼层;当电机停止转动时,蜂鸣器响一声表示电梯关上或者翻开。功能实现所用到的模块:3电机驱动模块模块整体布局图:9000h8000h电机驱动模块数码管显示屏块51

4、单片机0A000hhLED点阵显示模块扬声器驱动模块键盘矩阵模块0B000h扬声器驱动模块 图-1随着实习时间的推移,我通过不断查询相关资料和实践,发现自己最初的设想存在许多的缺陷。下面进行相关改良如下:选用的模块为:模块布局修整:键盘扫描模块51单片机主控芯片9000hD/A转换电路模块a000h液晶点阵显示模块8000h直流电机驱动模块扬声器报警模块LED灯目标显示模块 图-2首先,当我打算利用单片机实现对电梯控制系统功能模拟的时候,我开始关注自己乘坐电梯的经历并思考电梯在现实中的功能实现。下面是对根本功能模拟的思路: 一般情况下,一个电梯应该具有相关的按键,LED显示电梯状态等,另外还应

5、有相关轿厢,吊绳,各楼层电梯门等,但我选用的只是一个模拟状态,所以不打算设计相关的机械局部。在所设计的系统中,我选用LED指示灯来模拟电梯内的请求信号即厢内乘客要到达的目标楼层信号,每一个LED灯代表一个楼层,电梯每到达一个楼层,代表该楼层的LED灯熄灭。对于电梯相关的按键,那么选用键盘扫描模块,设置局部按键代表各楼层外的上下请求按键,局部按键代表电梯内的目标楼层请求按键。电梯到达楼层的状态,用点阵液晶显示屏显示。电梯的停止,上升以及下降分别由直流电机的停转,正转,反转进行模拟。当电梯到达某一目标楼层时,电机停转3秒,粗略表示电梯的开关门以及乘客进出所需的时间。电梯在两相邻楼层之间上升或下降,

6、由电梯正转或反转5秒钟来表示。当电梯停在某一楼层时,假设无请求那么停在本层等待请求。 另外,电梯在上升过程中只响应上升呼叫,下降过程中只响应下降呼叫。第二章 系统硬件的设计2.0 系统硬件的整体设计 该系统的硬件电路主要有5大局部电路组成:键盘扫描电路,楼层显示电路液晶点阵显示,目的楼层显示电路LED灯指示,直流电机驱动电路含D/A转换电路,扬声器报警电路。刚开始上电时,电机停转,液晶显示屏显示“一楼,电梯楼层位置有延时电路控制,延时电路包括3秒延时和5秒延时,每层之间通过5秒延时控制即电机转动5秒表示电梯走了一层,3秒延时代表电梯关开门。电梯的状态时通过液晶显示屏显示的。键盘电路采用4*6键

7、盘,只选用了其中9个按键。其中4个键代表各楼层外的呼叫按键,4个按键代表电梯内部的目的楼层选择键。另外一个是电梯发生故障的报警键。电梯的正常工作由往单片机写入程序来控制。 总体方框图见图-2。2.1 目的楼层显示电路伟福实验仪上装有8只发光二极管及相应驱动电路。见图2,L0-L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1时发光二极管点亮。我们可以通过P1口对其直接控制,点亮或者熄灭发光二极管。在该目的楼层显示模块中只选用了其中三个LED灯L1,L2,L3,分别代表一楼,二楼,三楼,其分别由单片机的P1.3,P1.4,P1.5控制,当对应的目标楼层按键被按下时,向相应的控制口输入高

8、电平,点亮LED灯。其中亮的表示有人想前往该层,当电梯到达该楼层时,对应的二极管熄灭。图3: LED电平显示电路2.2 电梯状态同步显示电路 伟福实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本实验仪采用直接控制方式。直接控制方式就是将液晶显示模块的接口作为存储器或IO设备直接挂在计算机总线上。计算机通过地址译码控制 E1和 E2的选通;读写操作信号 RW由地址线 A1控制;命令/数据存放器选择信号 AO由地址线 A0控制。

9、实际电路如图4所示。0X000H0X001H0X002H0X003H0X004H0X0050X006H0X007H写E1指令写E1数据读E1状态读E1数据写E2指令写E2数据读E2状态读E2数据液晶显示屏图4: 液晶屏接口电路 在该系统中,采用液晶屏显示电梯所在楼数。2.3 键盘扫描电路伟福实验仪上的LED显示电路和键盘电路如图1。显示电路和键盘电路可以工作在内驱和外驱两种方式,内驱是用CPU总线方式驱动,通过总线读写外部设备的地址来控制显示和读入键盘码。外部驱动方式是直接用IO方式驱动八段显示的段码、位码和键盘按键信息,这里的IO控制可以用CPU的IO口来实现控制,也可通过8255等IO扩展

10、电路来控制。内驱、外驱由板上的拨动开关控制。 在该系统中,对于该模块只选用了内驱方式的键盘扫描功能。如下为内驱方式的详细介绍:内驱方式:将拨动开关拨到“内驱位置,显示和键盘工作于内驱方式 ,显示控制的位码通过总线由74HC374输出,经ULN2003反向驱动后,做LED的位选通信号。位选通信号也可做为键盘列扫描码,键盘扫描的行数据从74HC245读回,374输出的列扫描码经245读入后,用来判断是否有键被按下,以及按下的是什么键。如果没有键按下,由于上拉电阻的作用,经245读回的值为高,如果有键按下,374输出的低电平经过按键被接到245的端口上,这样从245读回的数据就会有低位,根据374输

11、出的列信号和245读回的行信号,就可以判断哪个键被按下。LED显示的段码由另一个74HC374输出。 键盘和LED显示电路的地址译码见图5,做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。位码输出地址为0X002H,段码输出地址为0X004H,键盘行码读回地址为0X001H,此处X是地址高四位,由KEY/LED CS 决定。例如将KEY/LED CS接到地址译码的CS3上,那么位码输出地址就为0b002H,段码输出地址就是0b004H,键盘行码读回地址为0b001一处错误,其第一个74374的输出应该改为从Q1接到Q6。 图 5键盘及LED数码管显示电路13: 键盘及LE

12、D显示电路2.4 直流电机驱动电路在电压允许范围内,直流电机的转速会随着电压的升高而加快,假设加上的电压为负电压,那么电时机反向旋转。伟福实验仪的D/A变换可输出-8V到+8V的电压,将电压经驱动后加在直流电机上,可使其运转。通过单片机输出数据到D/A变换电路,控制电压的上下和正负。在该模块中,主要是通过往单片机里写程序,将D/A片选入口设置为0x9000h,单片机通过该口送入相关的数字量,经D/A转换,得到对应的模拟电压,便可控制电机转动的状态。相关的D/A转换电路,电机电路见图-6,图-7.由于不需要读回电机的速度,所以图-7的霍尔元件不用。 图-6 D/A转换电路 图-7 直流电机电路2

13、.5 扬声器报警电路 本电路主要由蜂鸣器和三极管组成,其中蜂鸣器由单片机的P1.0口进行控制,当电梯发生故障时,按下alarm1按钮蜂鸣器会发出警报。另外,电梯每至一楼层停下时,扬声器会响一声作为提示音。图8: 音频放大滤波电路第3章 系统软件的设计3.0 软件的整体设计 本设计由于采用键盘矩阵来代替楼外上下请求和电梯内目标楼层数的选择按键,所以电梯的运行方向是根据这些按键来决定的,所以单片机要不断的扫描键盘来获取请求信号来控制电梯的运行。另外,请求信号要相应的存起来,然后与电梯的运行方向比拟,判断这些信号响应的优先级电梯总是先响应同方向的呼叫信号,最后就是设计最根本的楼层显示局部,电机和蜂鸣

14、器局部的子函数了。 软件的整体框图如下: 初始化,液晶显示“一楼启动键盘扫描按下按键,有请求信号电梯运行开门延时NYYN至目标楼层键盘不断扫描是否在请求同向请求判断电梯位置液晶显示楼层键盘不断扫描关门延时电梯内选层3.1 各楼层检测呼叫信号子函数 该子函数是本系统软件最核心的函数,其算法也最为复杂,我花了许多功夫在上面,还算有些思路。现分析如下: 在现实生活中,电梯各楼层外的请求信号和电梯内的请求信号五花八门。而电梯响应请求信号的根本情形可分为三种:第一种是电梯电梯处于闲置状态,电梯内及各楼层外均无请求信号,电梯将处于停止状态,等待呼叫,有呼叫时再判断是该上升还是下降;第二种是电梯处于上升状态

15、只响应上升方向的请求信号;第三种是电梯处于下降状态只响应下降方向的信号。那么,如何利用程序来实现这三种情况的功能呢?通过网上查阅相关程序算法,并进行一番思考和修改后,我决定利用if语句的嵌套来实现对电梯响应呼叫信号优先级的设置另外,设计了flag标志位,当flag=0时,表示电梯处于停止状态,当flag=1时,表示电梯处于上升状态,当flag=2时,表示电梯处于下降状态。具体程序请查看附录局部。开始简易流程图如下:电梯停止运行flag是否为0flag是否为2Flag是否为1电梯下降相关处理相关处理电梯上升3.2 电梯状态同步显示子函数 该子函数通过调用伟福实验仪液晶模块的程序,在液晶屏显示电梯

16、所在的楼层数如电梯在一楼,那么显示“一楼。 该子程序流程图下:开始 判断lc的值显示“一楼显示“三楼Lc=3显示“二楼Lc=2Lc=1调用实验仪液晶的局部显示程序设置地址,取模清屏,初始化 3.3 目标楼层指示灯函数 由于所设计的电梯控制模拟系统只有三层,所以这里只设计三只指示灯,分别代表电梯内的请求信号,对某层楼有请求那么相应的指示灯亮,当电梯行至此层时,该灯熄灭。 具体程序如下:/各目标楼层的指示灯sbit L1=P13; sbit L2=P14;sbit L3=P15;uint nx=0,0,0,0;void zhishideng() L1=nx1; L2=nx2; L3=nx3; 3.

17、4 直流电机驱动子函数 单片机通过输出数字量,利用D/A转换输出对应的模拟电压来控制直流电机的状态。 具体程序如下: /直流电机模块void dianjiz() / 正转 CS0832=0xc0; Delayms(1000); /延时5秒 void dianjif() / 反转 CS0832=0x4f; Delayms(1000); /延时5秒 void dianjit() / 停转 CS0832=0x90; Delayms(1000); /延时3秒 另外,由于电机转动过程中,需要不断扫描和存储按下的请求信号,所以在电机的延时程序里参加了keyscan()和zhishideng()子函数。带扫

18、描和指示灯的延时函数如下: /延时秒级void Delayms(uint j) uint x,y; for(x=0;x<=j;x+) for(y=0;y<=110;y+) keyscan(); zhishideng(); 3.5 扬声器子函数 编写该子程序时,要注意扬声器的发声原理。想要其发声,那么需要单片机通过I/O口往其输入一定频率的脉冲,只给其置高电平是不会发声的。另外,所输入脉冲的频率不同,可使其发出不同音调的声音。在该系统内,主要是利用蜂鸣器来实现故障警报和声音提示的功能,所以只需设置一个适宜频率的波即可。 具体程序如下: void bjtishi()uint i,j;

19、for(j=0;j<7;j+) for(i=0;i<=50;i+) delay2(100); alarm1=!alarm1; 3.7 主函数 主函数主要包括对目标楼层指示灯的初始化及一个对各楼层检测呼叫信号子函数的while循环,比拟简单。 具体程序如下:/主函数Void main() P1=0x00; While(1) lcjce(); 第4章 个人的心得体会14.0 实习的收获与感悟1 刚开始实习时,我并不是特别清楚我们实习具体的内容是什么,以为每个人都是用伟福实验仪来实现同样的系统。第一天,老师说要每个人都尽力发挥自己的想像能力,用单片机来做自己想做的东西。说实在挺不适应的,

20、因为之前学的都是理论,很少花时间实践。所以我一个早上都没想出来,但是这一个早上我并没有选择发愣,而是去看伟福的例程,看它的硬件说明,把程序一个个下到实验仪上,结合硬件现象一起分析。我花了一个早上来干这些事,收获挺大,对伟福实验仪的硬件和对应的程序都有了初步的了解。结果下午来实验室坐电梯的时候,突然想到我可以用单片机来做一个电梯控制模拟系统,说干就干。当天下午我就实验仪的各个硬件模块一一对应分析模拟,加上用 查了些资料,经思考分析后,觉得确实可以用伟福实验仪来实现,于是便把自己的这个想法写下交了上去。有了想法之后,便开始更深入了解自己要用到硬件模块。因为想要写好程序,必须要对硬件非常熟悉。刚开始

21、确实挺难懂,但看了一遍又一遍之后,慢慢就有了感觉,知道硬件原来是这么回事。根本上,在考单片机考试前,白天我都是在分析伟福实验仪的软硬件,晚上我就简单复习一下单片机,还有自己查阅一些资料。考完试后,我开始进入正式编程和设计硬件的连接。硬件不复杂,只要自己给各个模块分配一下地址就行。主要难在软件的设计,电梯模拟系统的核心算法比拟复杂,要涉及到各楼层的呼叫信号如何检测,响应的问题,以及响应呼叫信号的优先次序问题。我知道,一下子把整个程序写出来调试是不现实的,所以我采用的是模块化实现的方法。我先把要用到的各个小模块程序写出来,并通过调试使它们都能单独运行并在实验仪得到对应的现象,经两天的努力,终于把各

22、个小模块的功能实现了。就差各楼层检测响应呼叫信号的程序,通过查阅网上的资料和自己的思考分析,我决定采用信号保存,设标志位的方法来实现这个功能。 接下来,我用了一个晚上的时间将其他各个子模块串起来,调试至无错误,另外一边编写系统的核心程序。第二天,就把自己调好的程序在伟福实验仪上运行,遇到了许多问题,如地址冲突,蜂鸣器不响和编程错误等许多问题,经自己努力解决了一局部,有些比拟难看出的错误问学长后也得到解决。例如:编程时,遇到像“代码为C100的错误,在程序上根本看不出任何问题,问学长后说是代码输入的形式不对,有可能是输入汉字了,但是错误所指的地方似乎没什么不对。结果我把那行设为注释后,发现后面还

23、真有汉字。在没设置注释前,汉字被隐藏了。 关于那个核心算法,我每天晚上都在编写,编写完后,就把它跟其他模块程序连起来,一遍遍的分析修改程序,弥补自己逻辑上和程序上的错误。晚上完善程序,白天就去实验室把程序下到实验仪观察现象,直到老师正式验收的那天早上终于成功把程序试出来了,便在下午通过了老师的验收。通过自己努力做成自己想做的事,那种喜悦感真的难以言喻。附录1#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define DC_P 1xdata unsigned char CS0832 _at

24、_ 0x9000; /直流电机驱动口xdata unsigned char OUTBIT _at_ 0xa002; / 位控制口xdata unsigned char OUTSEG _at_ 0xa004; / 段控制口xdata unsigned char IN _at_ 0xa001; / 键盘读入void keyscan();/各呼叫信号的初始化uint sh=0,0,0,0; uint xj=0,0,0,0;uint nx=0,0,0,0;sbit L1=P13; /各楼层的指示灯,当电梯至某层时,该楼层指示灯熄灭sbit L2=P14;sbit L3=P15;sbit alarm1=

25、P10;uint flag=0,lc=1,i,n;void zhishideng() /指示灯函数 L1=nx1; L2=nx2; L3=nx3;/秒级延时*void delayms1 (uint z) uint x,y; for(x=0;x<=z;x+) for(y=0;y<=110;y+); /液晶模块设置* #define PD1 61 / 122/2 分成左右两半屏(122x32)unsigned char Column;unsigned char Page_ ; / 页地址存放器 D1,DO:页地址unsigned char Code_ ; / 字符代码存放器unsign

26、ed char Command; / 指令存放器unsigned char LCDData; / 数据存放器 uint k;xdata unsigned char CWADD1 _at_ 0x8000; / 写指令代码地址(E1)xdata unsigned char DWADD1 _at_ 0x8001; / 写显示数据地址(E1)xdata unsigned char CRADD1 _at_ 0x8002; / 读状态字地址(E1)xdata unsigned char DRADD1 _at_ 0x8003; / 读显示数据地址(E1)xdata unsigned char CWADD2

27、_at_ 0x8004; / 写指令代码地址(E2)xdata unsigned char DWADD2 _at_ 0x8005; / 写显示数进地址(E2)xdata unsigned char CRADD2 _at_ 0x8006; / 读状态字地址(E2)xdata unsigned char DRADD2 _at_ 0x8007; / 读显示数据地址(E2)/ 中文字模库 16x16点阵code unsigned char CCTAB32 = 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,/一0x80,0x80,0x80,0x80,0x80,0xC0,

28、0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,/二0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00, 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84, /三

29、0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00, 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x08,0x88,0x68,0xFF,0x28,0x48,0x00,0x48,/楼 0x2A,0x9C,0x7F,0x18,0x2C,0x4A,0x48,0x00, 0x02,0x01,0x00,0xFF,0x00,0x42,0x42,0x4A, 0x2E,0x33,0x12,0x2E,0x22,0x42,0xC2,0x00;/ 1.写指令代码子程序(E

30、1)void WriteCommandE1() while(CRADD1 & 0x80); CWADD1 = Command; / 2.写显示数据子程序(E1)void WriteDataE1() while(CRADD1 & 0x80); DWADD1 = LCDData;/ 3.读显示数据子程序(E1)void ReadDataE1() while(CRADD1 & 0x80); LCDData = DRADD1;/ 4.写指令代码子程序(E2)voidWriteCommandE2() while(CRADD2 & 0x80); CWADD2 = Comma

31、nd;/ 5.写显示数据子程序(E2)void WriteDataE2() while(CRADD2 & 0x80); DWADD2 = LCDData;/ 6.读显示数据子程序(E2)void ReadDataE2() while(CRADD2 & 0x80); LCDData = DRADD2;/ 初始化程序void Init()Command = 0xe2; WriteCommandE1(); WriteCommandE2(); Command = 0xa4; WriteCommandE1(); WriteCommandE2();Command = 0xa9; Write

32、CommandE1();WriteCommandE2();Command=0xa0;WriteCommandE1();WriteCommandE2();Command=0xc0;WriteCommandE1();WriteCommandE2();Command = 0xaf; WriteCommandE1();WriteCommandE2();/ 清屏void Clear() unsigned char i,j;i = 0; do Command = (i + 0xb8); / 页地址设置 WriteCommandE1(); WriteCommandE2(); Command = 0x00;

33、/ 列地址设置为"0" WriteCommandE1(); WriteCommandE2(); j = 0x50; / 一页清 80个字节 do LCDData = 0x00; / 显示数据为"0"WriteDataE1(); WriteDataE2(); while(-j !=0); / 页内字节清零循环while(+i !=4); / 页地址暂存器加一 / 显示区清零循环/ 延时程序void Delay() unsigned char i,j; i = 20; j = 0; do do while(-j !=0); while( -i != 0 );

34、/ 中文显示子程序void WriteCHN16x16() unsigned char i,j,k;i = 0;j = 0;while(j<2) Command = (Page_ + j) & 0x03) | 0xb8; / 设置页地址WriteCommandE1(); WriteCommandE2(); k = Column; / 列地址值while(k < Column + 16)if (k < PD1) / 为左半屏显示区域(E1 Command = k;WriteCommandE1(); / 设置列地址值 LCDData = CCTABCode_i; / 取汉

35、字字模数据 WriteDataE1(); / 写字模数据 else / 为右半屏显示区域(E2) Command = k-PD1; WriteCommandE2(); / 设置列地址值 LCDData = CCTABCode_i; / 取汉字字模数据 WriteDataE2(); / 写字模数据 ; i+; if( +k >= PD1 * 2) break; / 列地址是否超出显示范围 ; j+; ;/*键盘扫描*code unsigned char KeyTable = / 键码定义 0x16, 0x15, 0x14, 0xff, 0x13, 0x12, 0x11, 0x10,0x0d

36、, 0x0c, 0x0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08, 0x00, 0x01, 0x04,0x07;/*unsigned char TestKey() OUTBIT = 0; / 输出线置为0 return (IN & 0x0f); / 读入键状态(高四位不用) unsigned char GetKey() unsigned char Pos; unsigned char i; unsigned char k;i = 6;Pos = 0x20; / 找出键所在列 do OUTBIT = Pos; Pos >

37、;>= 1; k = IN & 0x0f; while (-i != 0) && (k = 0);/ 键值 = 列 x 4 + 行 f (k != 0) i *= 4; if (k&2) i+=1; else if (k&4) i+=2; else if (k&8) i+=3; OUTBIT=0; delayms1(50); / 等键释放 return(KeyTablei); / 取出键码 else return(0xff); /*楼层同步显示函数*void display(uint a) Init(); Clear(); switch(a

38、) case 1: Page_ = 0x03;/一楼 Column = 0x30; Code_ = 0x00; WriteCHN16x16();Page_ = 0x03;Column = 0x40;Code_ = 0x03;WriteCHN16x16(); break;case 2: /二楼Page_ = 0x03;Column = 0x30;Code_ = 0x01;WriteCHN16x16();Page_ = 0x03;Column = 0x40;Code_ = 0x03;WriteCHN16x16(); break; case 3: /三楼Page_ = 0x03;Column = 0

39、x30;Code_ = 0x02;WriteCHN16x16();Page_ = 0x03;Column = 0x40;Code_ = 0x03;WriteCHN16x16();break; /*直流电机模块*/带扫描延时秒级void Delayms(uint j) uint x,y;for(x=0;x<=j;x+) for(y=0;y<=110;y+) keyscan(); zhishideng();void dianjiz() / 正转CS0832=0xc3; Delayms(5000); /延时5秒void dianjif() / 反转 CS0832=0x4d; Delayms(5000); /延时5秒void dianjit() / 暂停 CS0832=0x90; Delayms(3000); /延时3秒 /*/报警及楼层提示模块*void delay2(uint cnt)/延时 while(-cnt);void bjtishi() uint i,j; for(j=0;j<7;j+) for(i=0;i<=50;i+) delay2(100); alarm1=!alarm1; /*键盘扫描确定目标楼层函数*void keyscan() if(TestKey() switch(GetKey() case 2: sh1=1;brea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论