版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE3实验一P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。三、实验内容及步骤用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。1、使用单片机最小应用系统1模块.关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境.首先进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型。选择通信端口,点击测试串行口,通信成功既可退出设置,进行仿真。4、根据要求编写源程序,进行编译。编译无误后,点击全速执行按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮.四、流程图及源程序开始设置初始值开始设置初始值设移位次数数据输出左一位延时移位次数完成?是否(A)P1口循环点灯程序框图2.源程序:ORG00hLoop:mova,#0FEhmovr2,#8Output:movP1,arlaAcallDelaydjnzr2,OutputLjmpLoopDelay:movr6,#0movr7,#0DelayLoop:djnzr6,DelayLoop;延时程序djnzr7,DelayLoopretend五、思考题(1)对于本实验延时子程序Delay:MOVR6,0MOVR7,0DelayLoop:DJNZR6,DelayLoopDJNZR7,DelayLoopRET本模块使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二十字路口交通灯实验一、实验目的1、掌握51系列单片机的常用指令;2、掌握定时器的使用方法;3、掌握十字路口交通灯控制方法。二、实验内容及步骤1、用CPU的P1口输出控制信号,控制六个LED灯(红,绿,黄),模拟交通灯管理。按要求连接电路.2、根据要求编写源程序,编译无误后,全速运行程序。LED0、LED1、LED2分别表示东西方向绿、黄、红灯三、实验电路连接LED0、LED1、LED2分别表示东西方向绿、黄、红灯P1.0●-----—--—---—------●LED0P1。1●—-—-——--—-—-----———-●LED1LED3、LED4、LED5分别表示南北方向绿、黄、红灯P1.2●—--—--—--—-—-----------●LED2LED3、LED4、LED5分别表示南北方向绿、黄、红灯P1.3●—------—---————--—--●LED3P1.4●---—-—-——-——--—--———●LED4P1。5●-——-—--——-———----------●LED5四、实验说明l.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始为状态0。状态0:东西红灯,南北红灯;然后转状态1:南北绿灯通车,东西红灯;过一段时间转状态2:南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红灯;再转状态3:东西绿灯通车,南北红灯;过一段时间转状态4:东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯;最后循环至状态1.2。各用一组红、黄、绿色LED分别表示南北方向和东西方向红绿灯。五、实验仪器和设备THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等.六、流程图及源程序LED_G1BITP1。0;东西绿灯LED_Y1BITP1.1;东西黄灯LED_R1BITP1.2;东西红灯LED_G2BITP1.3;南北绿灯LED_Y2BITP1。4;南北黄灯LED_R2BITP1.5;南北红灯ORG00HSTART:MOVTMOD,#01H;置T0工作方式1MOVTH0,#3CH;置T0定时初值50mSMOVTL0,#0B0HCLRTF0SETBTR0;启动T0LOOP0:MOVR2,#20;置1S计数初值50mS*20=1SMOVR3,#10;全亮10SLCALLSTATE0;调用状态0WAIT0:JNBTF0,WAIT0;查询50mS到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50mSMOVTL0,#0B0HDJNZR2,WAIT0;判1S到否?未到继续状态0MOVR2,#20DJNZR3,WAIT0;状态0维持10SLOOP1:MOVR2,#20MOVR3,#20LCALLSTATE1WAIT1:JNBTF0,WAIT1;查询50mS到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50mSMOVTL0,#0B0HDJNZR2,WAIT1;判1S到否?未到继续状态1MOVR2,#20DJNZR3,WAIT1;状态1维持20SMOVR2,#5MOVR4,#4;闪烁200mSMOVR3,#3;绿灯闪3SLCALLSTATE2;调用状态2WAIT2:JNBTF0,WAIT2;查询50mS到否CLRTF0MOVTH0,#03CH;恢复T0定时初值50mSMOVTL0,#0B0HDJNZR4,WAIT2;判200mS到否?未到继续状态2CPLLED_G1;东西绿灯闪MOVR4,#4;闪烁200mSDJNZR2,WAIT2;判1S到否?未到继续状态2MOVR2,#5DJNZR3,WAIT2;状态2维持3SMOVR2,#20;MOVR3,#2;黄灯亮2SLCALLSTATE3;调用状态3WAIT3:JNBTF0,WAIT3;查询50mS到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50mSMOVTL0,#0B0HDJNZR2,WAIT3;判1S到否?未到继续状态3MOVR2,#20DJNZR3,WAIT3;状态3维持2SMOVR2,#20MOVR3,#20;红灯20SLCALLSTATE4;调用状态4WAIT4:JNBTF0,WAIT4;查询50mS到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100mSMOVTL0,#0B0HDJNZR2,WAIT4;判1S到否?未到继续状态4MOVR2,#20;DJNZR3,WAIT4;状态4维持20SMOVR2,#5;置50mS计数初值MOVR4,#4;闪烁200mSMOVR3,#3;绿灯闪3SLCALLSTATE5;调用状态5WAIT5:JNBTF0,WAIT5;查询50mS到否CLRTF0MOVTH0,#03CH;MOVTL0,#0B0HDJNZR4,WAIT5;判200mS到否?未到继续状态5CPLLED_G2;南北绿灯闪MOVR4,#4;闪烁200mSDJNZR2,WAIT5;判1S到否?未到继续状态5MOVR2,#5;DJNZR3,WAIT5;状态5维持3SMOVR2,#20;MOVR3,#2;黄灯闪2SLCALLSTATE6;调用状态6WAIT6:JNBTF0,WAIT6;查询50mS到否CLRTF0MOVTH0,#3CH;MOVTL0,#0B0HDJNZR2,WAIT6;判1S到否?未到继续状态6MOVR2,#20DJNZR3,WAIT6;状态6维持2SLJMPLOOP1;大循环STATE0:;状态0,全亮SETBLED_G1SETBLED_Y1CLRLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2RETSTATE1:;状态1CLRLED_G1;东西绿灯亮SETBLED_Y1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北红灯亮RETSTATE2:;状态2SETBLED_Y1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北红灯亮RETSTATE3:;状态3SETBLED_G1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北红灯亮CLRLED_Y1;东西黄灯亮RETSTATE4:;状态4SETBLED_G1SETBLED_Y1CLRLED_R1;东西红灯亮CLRLED_G2;南北绿灯亮SETBLED_Y2SETBLED_R2RETSTATE5:;状态5SETBLED_G1SETBLED_Y1CLRLED_R1;东西红灯亮SETBLED_Y2SETBLED_R2RETSTATE6:;状态6SETBLED_G1SETBLED_Y1CLRLED_R1;东西红灯亮SETBLED_G2SETBLED_R2CLRLED_Y2;南北黄灯亮RET实验三电子时钟实验一、实验目的1、进一步掌握定时器的使用和编程方法2、进一步掌握中断处理程序的编程方法二、实验说明本实验是利用CPU的定时器和实验台上提供的共阴极数码显示电路,设计一个电子时钟。格式如下:XXXXXX由左向右分别为:时、分、秒本实验使用的是单片机内部计数器的定时器功能,有关设置主要针对定时器/计数器工作方式寄存器TMOD。具体为:工作方式选择位,设置为方式2;计数/定时方式选择位,设置为定时器工作方式.定时器每100uS中断一次,在中断服务程序中,对中断次数进行计数,100uS计数10000次就是1秒。然后再对秒计数得到分和小时值,并送入显示缓冲区.单片机P0口输出字段码,P1口输出位码.三、实验内容及步骤1、单片机最小应用系统1的P0口接动态扫描显示的段码口a~dp,P1口接位码口S1~S6。2、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、编写电子时钟.ASM源程序,编译无误后,全速运行程序,6LED数字显示时、分、秒值.四、流程图及源程序1、流程图主程序框图序定时中断子程序框图是是中断返回中断入口保护现场恢复现场秒值加1小时值清0秒值清0,分钟加1分值清0,小时加1设置下次10000次计数值10000次计数值减1到24小时到60分钟到60秒计数值为0显示数据送缓冲转换成显示数据调用显示子程序转换成显示数据显示数据送缓冲读取分钟值显示数据送缓冲读取秒值开始置定时器模式及工作方式启动定时器设置初始常数 读取小时值 转换成显示数据否否否否2、原程序:LEDBufequ60h;显示缓冲Hourequ40hMinuteequ41hSecondequ42hC100usequ43hTickequ10000T100usequ256-50ljmpStartorg000bhT0Int:pushPSWpushACCmova,C100us+1jnzGoondecC100usGoon:decC100us+1mova,C100usorla,C100us+1jnzExitmovC100us,#27h;#high(Tick)movC100us+1,#10h;#low(Tick)incSecondmova,Secondcjnea,#60,ExitmovSecond,#0incMinutemova,Minutecjnea,#60,ExitmovMinute,#0incHourmova,Hourcjnea,#24,ExitmovHour,#0Exit:popACCpopPSWretiDelay:;延时子程序movr7,#0FFHDelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDisplayLED:movr0,#LEDBufmovr1,#6;共6个八段管movr2,#00100000b;从左边开始显示Loop:mova,#0movp0,a;关所有八段管mova,@r0movp0,amova,r2movp1,a;显示一位八段管movr6,#01HacallDelaymova,r2;显示下一位rramovr2,aincr0djnzr1,Loopret;===============================================ToLED:movdptr,#LEDMAPmovca,@a+dptrret
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫浴洁具采购合同中的谈判技巧与策略
- 教育软件代理合同范本
- 苗木购销合同的苗木质量
- 供应链管理采购合同
- 外墙脚手架劳务承包合同
- 食品类交易合同样式
- 单片机原理及应用(C51版)教案第6章 单片机串行通信接口-16比9
- 上海市2023-2024学年九年级上学期期中数学试题
- 广东省河源市2023-2024学年九年级上学期第一次月考数学试题
- 2024-2025学年版块11 功和机械能 专题11-4 机械能及其转化 (含答案) 初中物理尖子生自主招生培优讲义83讲
- 《联合国教科文:学生人工智能能力框架》-中文版
- (正式版)SHT 3225-2024 石油化工安全仪表系统安全完整性等级设计规范
- 坚持立足中国又面向世界讲解
- 浙江省基础教育地方课程(通用内容)标准1-9年级
- 企业员工团队目标计划管理培训教育PPT讲解资料
- 电动单梁起重机年自检报告
- 模拟深海高压舱试验系统设计方案
- 加热管制作工艺
- 互补输出级介绍
- 设备运输方案
- 口腔颌面部外伤的救治2
评论
0/150
提交评论