WinCE实验七交通灯控制.pptxVIP

  • 0
  • 0
  • 约2.26千字
  • 约 19页
  • 2021-11-19 发布于江苏
  • 举报
Windows CE实验七交通灯控制2021/7/4交通灯控制实验目的实验内容实验原理实验步骤结果与分析2021/7/4实验目的了解在生活中并行接口的实际应用进一步掌握8255的使用方法熟悉WinCE平台上的MFC编程2021/7/4实验内容正确连接实验电路编程实现对十字路口交通灯的模拟控制2021/7/4实验原理8255的工作原理及使用方法 WinCE中实现延时的方法2021/7/48255控制字1.工作方式控制字 工作方式控制字用来设定A口、B口和C口的数据传送方向和工作方式。 工作方式控制字格式 2021/7/48255控制字2.端口C的置位/复位控制字 端口C的置位/复位控制字可实现对端口C的每一位进行控制。置位是使该位为1,复位是使该位为0。 置位/复位控制字格式 2021/7/48255工作方式方式0——基本输入输出方式 通过CPU向控制端口写入方式控制字,决定各端口是输入数据还是输出数据传送数据一般采用无条件传送方式或查询传送方式方式1——选通输入输出方式 数据的输入输出操作要借助于选通信号完成 利用专用中断请求和联络信号线控制数据传送 端口A或端口B用于数据传送,而端口C的大部分I/O线作为联络控制线使用 方式2——双向传送方式 双向方式指同一组信号线可以两个方向传送数据,只有端口A能工作在此方式使用C口的5根线作为专用应答线 应答信号线实际上是方式1输入、方式1输出应答线的组合2021/7/4WinCE中实现延时的方法利用系统的时间计数函数GetTickCount( ) DWORD GetTickCount(void)2021/7/4WinCE中实现延时的方法利用循环产生时间延迟 利用反复进行的空循环来实现时间延迟测算出单位时间(如:每毫秒) 内空循环的次数 2021/7/4WinCE中实现延时的方法使用Windows API 函数 Sleep函数 void Sleep(DWORD dwMilliseconds) //时间延迟的毫秒数MsgWaitForMultipleObjects 函数DWORD MsgWaitForMultipleObjects(DWORD nCount, // 指针数组的大小LPHANDLE pHandles, // 指向对象处理过程的指针数组BOOL fWaitAll, // 等待单一或所有线程DWORD dwMilliseconds, // 时间延迟的毫秒数DWORD dwWakeMask // 指示等待输入事件的类型);2021/7/4实验步骤(一)连接实验电路(二)构建开发环境(三)编程实现交通灯控制2021/7/4(一)连接实验电路正确连接实验扩展板的相关电路 L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。 2021/7/4(二)构建开发环境正确连接目标机和宿主机建立Windows CE平台 确认平台的设置中“Enable KITL” 选项被选上 确认“Platform Manager”目录下 的“Platform Manager”属性被加入平台确认“Applications and Services Development”目录下的“Microsoft Foundation Classes (MFC)”属性被加入平台正确设置EVC 确认已安装针对实验仪的平台SDK 确认已正确配置平台管理器 2021/7/4(三)编程实现交通灯控制设计目标 按下开始按纽,控制六个指示灯按交通灯变化规律燃灭 单击停止按纽,停止控制指示灯燃灭 十字路口交通灯的变化规律要求:南北路口的绿灯、东西路口的红灯同时亮30秒左右南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮南北路口的红灯、东西路口的绿灯同时亮30秒左右南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次2021/7/4(三)编程实现交通灯控制8255寄存器端口地址控制寄存器端口地址 28BHC口地址 28AH参考思路 在EVC中使用MFC编程完成该程序 。以对话框为例,描述参考思路如下:在开始按纽的消息处理函数中,创建一个工作线程来对8255进行输入输出控制 在该工作线程中创建一个循环 。在循环体中,按照交通灯的变化规律交替给8255的C口输出需要的数值;两次显示之间的时间间隔使用延时函数精确控制在停止按纽的消息处理函数中,使用标志量通知工作线程自行终止,或者调用TerminateThread函数强行关闭工作线程 2021/7/4(三)编程实现交通灯控制示例效果2021

文档评论(0)

1亿VIP精品文档

相关文档