单片机实训常见问题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实训常见问题

实训汇报 汇报人:李中心 组成员:彭一军、陈圣、袁超鹏 单片机实训 此次单片机实训在易老师的带领下,以“项目为载体,采用任务驱动方式”编写程序。他 调“教、学、做”一体化,坚持理论与实践操作相结合的原则,并将知识点分散到多个任务当中去,使我们能够边学边做,轻松完成这次的 单片机实训之旅。 不过在实训的过程中我们组也遇到很多的问题,以下就是实训过程中所遇到的问题。 关于流水灯直接赋值的问题 提问: 流水灯怎么赋值? 解决方法:首先将二进制代码化为十六进制,再将其赋值到I/O口,比如P1口。 关于流水灯移位的问题 提问:流水灯是如何左移的? 解决方法:一看到移位你首先得想到是左移还是右移。这里确定了是左移的问题,在汇编语言中左移的代码是“RL”,而在C语言中左移的符号是“”。比如将“P1=1a”就是将a左移一位送给P1口。 关于流水灯一维数组的问题 提问:一维数组如何使用? 解决方法:在C语言中数组就相当于汇编的表格,在汇编中你要使用表格必须要调用,而在C语言中你需要使用数组,也必须要给相应的语句,比如,我们经常用到的for语句,用条语句 “for(i=0;i8;i++) P1=tab[i]” Tab里面的数值,就是所谓的数组,我们就是这样调用它的。 关于流水灯二维数组 提问:什么是二维数组? 解决方法:二维数组定义的一般形式 类型说明符 数组名[常量表达式][常量表达式] 例如: float a[3][4],b[5][10]; 定义a为3*4(3行4列)的数组,b为5*10(5行10列)的数组。注意,不能写成 float a[3,4],b[5,10]; 关于流水灯指针的问题 提问:什么是指针? 解决方法:指针其实就是变量,只不过指针变量指向的不是某个具体的值,而是指向这个值所在的内存的地址.指针和其它变量一样,指针是基本的变量,所不同的是指针包含一个实际的数据,该数据代表一个可以找到实际信息的内存地址。 举个例子: int* aP1;?? 注意到变量名称前的前缀‘aP1’了么?这是一个惯例,用来表示这个变量是个指针。? 关于指针数组的问题 提问:指针是如何指向数组并调用数组里面的值? 解决方法:首先我们得先定义一个指针变量,例如: “int *P; P=tab[]; P1=*P; ” 这样就可以直接调用数组里面的值了。 关于中断的问题 提问:EA是什么? 解决方法:“EA”就是我们所说的总闸,在C语言中就相当于总开关,我们要开中断就必须打开总开关,即“EA=1;”。 关于外部中断0的问题 提问:如何打开外部中断0? 解决方法:既然我们用的是中断,首先就要开总中断“EA=1;”,然后再开外部中断0“EX0=1;”。 外部中断0的问题 提问:什么是下降沿,为什么要设置下降沿触发? 解决方法:下降沿就是从高到低的过程,比如一个按键的按下,就是一个下降沿。 打开触发方式“IT0=1;”就设置了下降沿触发,同时“IT0”既可以等于1,也可以等于0,等于1就相当于下降沿触发,等于0就相当于低电平触发,他们只是触发方式不同罢了。 关于定时器查询法的问题 提问:如何用查询法,怎么用? 解决方法:查询法是延时1s常用的方法,还有一种就是中断定时1s,这两种定时的方法都比较精准。 首先给它们定时的初值,比如常用的 “TH0=(65536-50000)/256; TL0=(65536-50000)%256;”50ms的初值,然后再循环20次,就可以精确到1s。 关于数码管的问题 提问:数码管的值如何计算? 解决方法:数码管有两种类型,一种是共阴的,即它们的公共端接在阴(负)极。另一种是共阳的,它们的公共端接在阳(正)极。 数码管有“a、b、c、d、e、f、g、h”8个灯,但在硬件引脚中却有10个脚,有一个为公共端,还有一个空脚。比如我要亮个“0”,它们的值用二进制表示的话就是,这是共阴的。如果共阳的要亮0的话,取反共阴的值就可以了。 关于矩阵按键的问题 提问:什么是矩阵按键? 解决方法:一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 关于矩阵按键的问题 提问:怎么赋值扫描码? 解决方法:给它们赋上扫描码“0xf0”“0x0f” “int a,b,temp; P1=0xf0; a=P1; if(a==P1) {delay();} P1=0x0f; b=P1; Temp=a+b;” 关于矩阵键盘的问题 提

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档