部分实验硬件电和程序设计参考(王老师).docVIP

部分实验硬件电和程序设计参考(王老师).doc

  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文档。上传文档
查看更多
部分实验硬件电和程序设计参考(王老师)

实验1-P1口交通信号灯设计-硬件和程序设计参考 硬件电路如下图所示: 实验时可以任选一列的红黄绿灯,比如选第一列,则A接电源正极+5V,可以用单片机的口线控制a\b\c\d端分别为低电平时就可以控制第一列的相应等的亮灭. 本程序中P1.0接绿灯(a端)0, P1.1接黄灯(b端), P1.2接红灯(c端). 程序如下: /*本程序中P1.0接绿灯(a端)0, P1.1接黄灯(b端), P1.2接红灯(c端)*/ #pragma sfr /* 特殊功能能寄存器声明 */ void delay() /* 灯延时子函数定义,具体时间在实验中进行调整 */ { int i,j; for(i=0;i500;i++) {for(j=0;j500;j++);} } void main() /* 主函数*/ { IMS=0XCC; /*内部存储器容量切换寄存器设置,必须有 */ IXS=0X00; /*内部扩展RAM 容量切换寄存器,必须有 */ PM1.0=0; PM1.1=0; PM1.2=0; /* 口线P1.0\P1.1\P1.2模式为输出模式*/ while(1) /* 当为1时,条件为真,一直循环 */ {P1.0=0; P1.1=1; P1.2=1; /*输出高电平灯不亮,低电平灯亮, 此时绿灯亮*/ delay();/*绿灯亮延时*/ P1.0=1; P1.1=0; P1.2=1; /*输出高电平灯不亮,低电平灯亮, 此时黄灯亮*/ delay();/*黄灯亮延时*/ P1.0=1; P1.1=1; P1.2=0; /*输出高电平灯不亮,低电平灯亮, 此时红灯亮*/ delay();/*红灯亮延时*/ } } 思考: 1 黄灯闪烁怎样修改程序? 2 各个灯亮灭的时间不一样又怎样改变程序? 3 同学们可以撇开这个程序,发挥自己的想象,自己编出自己的不同的信号灯功能? 4 用定时器来实现延时又怎样来修改程序? 5 灯延时子函数可以编写成延时时间可变的吗? 怎样来改变呢? 实验3-定时器数字时钟试验-秒表设计-硬件和程序设计参考 硬件设计参考: 参考程序如下: #pragma sfr /* 特殊功能寄存器声明*/ #pragma di /*禁止所有中断(总中断)函数声明,相当于IE=0 */ #pragma ei /* 所有中断允许的总中断允许函数定义,相当与IE=1*/ #pragma interrupt INTTM000 TIME_INTTM000 /*后面定义的中断服务程序声明,这个中断服务程序就是本实验的定时器比较匹配中断的*/ unsigned char LED_light[10]={0xfc,0x18,0x6e,0x5e,0x9a,0xd6,0xf6,0x1c,0xfe,0xde}; /* 数码管显示的字形码,请和硬件连接相对应*/ unsigned char i; /*中断产生次数*/ void delay(int i) /*动态扫描件间隔*/ { while(i--); /*循环i次,就是靠软件来延时,就是软件延时*/ } void hd_init() /*硬件初始化子函数*/ { PM1=0; /*P1口(8根口线),驱动数码管八段二极管,故定义为输出 */ PU1=0; /* 为增加驱动能力,设置为内部上拉*/ PM5.0=0; /* 定义为输出,控制其中一个数码管的公共端,控制整个这个数码管的*/ /*的亮灭,和另外一个P5.1引脚控制另一个数码管的亮灭,二者交替亮灭实现扫描显示*/ PU5.0=0; /*为增加驱动能力,设置为内部上拉*/ PM5.1=0; /* 定义为输出,控制其中一个数码管的公共端,控制整个这个数码管的*/ /*的亮灭,和另外一个P5.1引脚控制另一个数码管的亮灭,二者交替亮灭实现扫描显示*/ PU5.1=0; /*为增加驱动能力,设置为内部上拉*/ CR000=0x9000; /*设置捕捉次数,达到捕捉次数即产生中断*/ TMC00=0X0C; /*模式寄存器设置,请同学们预习这样设置是什么含义*/ PRM00=0X02; /*计数时钟选择,请同学们预习这样设置是什么含义*/ TOC00=0; /*禁止输出,请同学们预习这样设置是什么含义*/ TMIF000=0; /*中断请求,请同学们预习这样设置是什么含义*/ TMMK000=0; /*中断屏蔽,请同学们预习这样设置是什么含义*/ TMPR000=1; /*中断优先级,请同学们

文档评论(0)

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

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

1亿VIP精品文档

相关文档