




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1LED显示器设计项目2键盘与显示系统组装一个简易流水灯显示器,单片机外接8个发光二极管,要求系统上电后,8个发光二极管依次循环点亮。任务内容知识要求
掌握C51程序循环结构及循环语句的使用;了解单片机存储结构,能够在Keil软件中查看变量,掌握程序调试的基本方法;学会单片机控制LED显示器的电路设计及控制方法。项目设计准备2.1.1搭建硬件仿真电路请注意练习总线的绘制和标注方法!控制程序设计与软件仿真调试2.1.2keil工程的创建与设置2.1.3C51控制程序编写2.1.4工程的调试运行2.1.5存储空间资源的查看和修改2.1.6变量的查看和修改知识点1循环结构与循环语句在程序设计中经常会遇到需要重复执行的操作,如延时、累加、累乘、数据传递等,利用循环结构来处理各类重复操作既简单又方便。
C51语言中提供了3种语句来实现循环结构,分别是while语句、do-while语句和for语句。1.while语句
while语句的一般形式:while(表达式)循环体其中,“表达式”可以是C51语言中任意合法的表达式,其作用是控制循环体是否执行;“循环体”是循环语句中需要重复执行的部分,可以是一条简单的可执行语句,也可以是用大括号括起来的复合语句。
while语句的执行过程如图2.3所示。while语句的特点是:先判断,后执行。图2.3while语句的执行过程【例】基于项目一任务2(模拟汽车转向灯控制),编程实现下列功能:开机后,全部发光二极管不亮;按下左转键,左转灯亮;松开,即熄灭。用while语句实现。小练习1(1)要定义循环控制变量。(2)要确定循环变量的初值、终值、增量(步长)。(3)要保证每执行一次循环体,循环控制变量的值按增量向终值靠近一些,即要避免死循环。
while语句的使用注意事项2.do-while语句
do-while语句的一般格式:do循环体while(表达式);其中,“表达式”可以是C51语言中任意合法的表达式,其作用是控制循环体是否执行;“循环体”可以是C51语言中任意合法的可执行语句;最后的“;”不可丢,表示do-while语句结束。
do-while语句的执行过程如图2.4所示。do-while语句的特点是:先执行,后判断。图2.4do-while语句的执行过程【例】基于项目一任务2(模拟汽车转向灯控制),编程实现下列功能:开机后,全部发光二极管不亮;按下左转键,左转灯亮;松开,即熄灭。用do-while语句实现。小练习23.for语句
for语句的典型应用形式:for(循环变量初值;循环条件;循环变量增值)循环体
for语句的一般形式:for(表达式1;表达式2;表达式3)循环体其中,“表达式1”、“表达式2”、“表达式3”可以是C51语言中任意合法的表达式,3个表达式之间用“;”隔开,其作用是控制循环体是否执行;循环体可以是C51语言中任意合法的可执行语句。
for语句的执行过程如图2.5所示。(1)for语句中的表达式可以部分或全部省略,但两个“;”不可省略。例如:for(;;)D0=!D0;3个表达式均被省略,因缺少条件判断,循环将会无限制地执行,形成无限循环(通常称为死循环)。在使用for语句时应注意以下两点:图2.5for语句的执行过程(2)所谓省略,只是在for语句中的省略。实际上是把所需表达式放在for的循环体中或for的语句前面。下面几种for语句的表达方式是等价的。表达方式1(正常情况):
sum=0;
for(i=1;i<=100;i++)sum+=i;表达方式2(省略表达式1):
sum=0;i=1;
for(;i<=100;i++)sum+=i;表达方式3(省略表达式3):
sum=0;
for(i=1;i<=100;){sum+=i;i++;}表达方式4(省略表达式1和表达式3):
sum=0;i=1;
for(;i<=100;){sum+=i;i++;}4.几种循环的比较(1)3种循环可相互替代处理同一问题。(2)do-while循环至少执行一次循环体,而while及for循环则不然。(3)while及do-while循环多用于循环次数不可预知的情况,而for循环多用于循环次数可以预知的情况。5.循环的嵌套在编写程序时,嵌套循环的书写要采用缩进形式,使程序层次分明,例如:
for(i=1;i<=10;i++){ //外层循环
… for(j=1;j<=10;j++){ //中层循环
… for(k=1;k<=10;k++){ //内层循环
循环语句
} … } … }在一个循环体内又完整地包含了另一个循环称为循环嵌套。循环的嵌套可以有多层,但每一层循环在逻辑上必须是完整的。【例】利用本任务的电路(简易流水灯显示器),编写程序,控制8个LED全体闪烁,闪烁间隔时间为0.5s。提示:延时0.5s请利用循环嵌套实现。小练习3【巩固练习】利用双层循环打印9×9乘法表。(1)内外循环的循环变量不应相同。(2)内外循环不应交叉。(3)只能从循环体内转移到循环体外,反之不行。循环嵌套的使用注意事项知识点2C51中的函数
C51语言程序是由一个个函数构成的。所谓函数,是指可以被其他程序调用的具有特定功能的一段相对独立的程序。引入函数的主要目的有两个:一是为了解决代码的重复;二是结构化模块化编程的需要。[return_type]funcname([args])[{small|compact|large}][reentrant][interruptn][usingn]{
局部变量定义 可执行语句}C51函数定义的一般格式函数头函数体用C51语言设计程序,就是编写函数。在构成C51语言设计程序的若干个函数中,有且仅有一个是主函数main()。因为C51语言程序的执行都是从main()函数开始的,也是在main()函数中结束整个程序运行的,其他函数只有在执行main()函数的过程中被调用才能被执行。从用户使用的角度看,函数可以分成两大类:标准库函数和用户自定义函数。
【例】请利用自定义函数的方法,完成延时函数,优化本任务的程序设计。(1)实现延时固定长度:0.5s(2)实现延时指定长度:带参数【例】基于项目一任务2(模拟汽车转向灯控制),编程实现下列功能:故障按键按下,双灯闪烁,间隔时间200ms。小练习4控制软件设计1、控制信号(对照硬件电路)
FEH→FDH→FBH→F7H→EFH→DFH→BFH→7FH
2、“<<”运算和“>>”运算3、编写控制代码(主程序,延时子函数)4、工程的调试运行1)单步跟踪(StepInto)2)单步运行(StepOver)4)全速运行(Go)3)运行到光标处(RuntoCursorline)软件的调试运行编译、链接成功,进入调试窗口。提供4种运行方式:
如果想退出μVision4的软件仿真环境,可以使用下列方法:(1)单击图标。(2)执行菜单命令Debug→Start/StopDebugSession。知识点3存储空间及变量的查看
在μVision4的软件仿真环境中,标准80C5l的所有有效存储空间资源都可以查看和修改。μVision4把存储空间资源分成以下4种类型加以管理。1.内部可直接寻址RAM(类型data,简称d)
在标准C51中,可直接寻址空间为0~0x7F范围内的RAM和0x80~0xFF范围内的SFR(特殊功能寄存器)。data存储空间可以使用存储器对话框(Memory)进行查看和修改。2.内部可间接寻址RAM(类型idata,简称i)使用存储器对话框同样可以查看和修改idata
存储空间,在Address栏中输入的存储空间类型为“i”,如“i:0x76”。
在标准80C51中,可间接寻址空间为0x00~0xFF范围内的RAM。其中,0x00~0x7F内的RAM和0x80~0xFF内的SFR既可以间接寻址,也可以直接寻址;0x80~0xFF的RAM只能间接寻址。在μVision4中把它们组合成空间连续的可间接寻址的idata空间。3.外部数据空间XRAM(类型xdata,简称x)
在标准80C5l中,外部可间接寻址64K地址范围的数据存储器,在μVision4中把它们组合成空间连续的可间接寻址的xdata空间。在“存储器地址输入栏Address”内输入的存储空间类型为“x”。4.程序空间code(类型code,简称c)
在标准80C5l中,程序空间有64K的地址范围。程序存储器的数据按用途可分为程序代码(用于程序执行)和程序数据(程序使用的固定参数)。在“存储器地址输入栏“Address”内输入的存储空间类型要变为“c”。5.变量的查看和修改
执行菜单命令View→Watch&CallStackWindows可以打开观察对话框。其中,Name栏用于输入变量的名称,Value栏用于显示变量的数值。
在μVision4中,使用“观察”对话框(Watches)可以直接观察和修改变量。图“Watch”对话框
单击准备添加行(选择该行)的Name栏,然后按F2键,出现文本输入栏后输入变量的名称,确认正确后按回车键。输入的变量名称必须是文件中已经定义的。图中,LedBuff是我们自己定义的,而Pl是头文件REG52.H定义的。图“观察”对话框(1)变量名称的输入(2)变量数值的显示和修改
在Value栏,除显示变量的数值外,用户还可修改变量的数值,方法是:单击该行的Value栏,然后按F2键,出现文本输入栏后输入修改的数据,确认正确后按Enter键。图“观察”对话框此外:main程序中定义的变量还可通过local窗口直接观察变量的变化情况。【例】要求简单流水花色:单个led轮流点亮。某同学编写如下代码,运用单步运行调试方法,查看变量结果,发现其中的问题并修改。小练习5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人旧车买卖合同范本
- 出口cip贸易合同范本
- 亮化耗材采购合同范本
- 半成品供货合同范本
- 农村环卫劳务合同范本
- 化妆品oem合同范本
- 仓库分拣合同范本
- 修路收费合同范本
- 主管绩效合同范本
- 供用水安装合同范本
- 2024年全国职业院校技能大赛高职组(建筑装饰数字化施工赛项)备赛试题库(含答案)
- 2024年单招职业技能测试题库及参考答案(基础题)
- 合肥市2024年中考理化生实验评分细则
- 2024年湖南学业水平考试地理真题及答案
- 机械供应商发言稿
- 中考数学一轮复习提升练习第1章 数与式真题测试(基础卷)(原卷版)
- 统编版(2024新教材)七年级上册语文第一单元测试卷(含答案)
- 2025年中考英语复习热点话题作文范文
- 二手房佣金协议
- 旅游服务质量评价体系优化策略
- 围手术期护理管理制度
评论
0/150
提交评论