输入输出端口的基本应用等8项软件实验.doc

输入输出端口的基本应用等8项软件实验.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
输入输出端口的基本应用等8项软件实验

实验项目一 输入/ 输出端口的基本应用 实验目的 ⑴了解MCS-51单片机的输入/输出端口的基本工作原理与使用方法; ⑵掌握MCS-51单片机的延时函数的时间估算方法。 2. 实验内容 实现与单片机某一端口相连的发光二极管的闪烁控制,要点亮0.2s,熄灭0.2s; 3. 实验电路框图 4.实验任务分析 ⑴硬件电路说明 设置AT89C51的震荡频率为6MHZ,它的机器周期为2us,发光二极管接在P1.0端口,当P1.0端口上为低电平则led亮,否则为灭。 ⑵软件设计说明 用三个FOR 循环来延时,通过延时函数来延迟灯亮灭的时间。 5.实验流程框图 6.实验过程记录 ⑴实验过程 ⑵问题及解决方法 如何表示P1.0,如何延时0.2s,怎样才能让函数永远循环? 解决方法:用sbit P1_0=P1^0表示P1.0。 用三个FOR循环用来延时。 用while(1),循环条件永远为真,以下程序永远运行下去。 7.实验总结 ⑴#define uchar unsigned char #define uint unsigned char可以简便。 ⑵延时函数可以用用三个FOR循环加空语句。 8.成绩评定 附录 实验源程序 /****预处理部分****/ #includereg52.h #define uchar unsigned char #define uint unsigned char /****变量的定义****/ sbit P1_0=P1^0; /****子函数部分****/ void delay_ms(int x) { uchar i,j,k; // 定义三个无符号字符型变量 for(i=0;ix;i++) //三个FOR循环用来延迟 for(j=2;j0;j--) for(k=248;k0;k--) ; } /****主函数部分****/ void main(void) { while(1) { P1_0=1; // P1口输出高电平,让LED点暗 delay_ms(200) ; // 延迟200MS P1_0=0; //P1口输出低电平,让LED点亮 delay_ms(200) ; //延迟200MS } } /****中断函数部分****/ 实验项目二 定时/计算器的基本应用 1.实验目的 ⑴掌握MCS-51定时/计数器的基本工作原理与使用方法; ⑵了解MCS-51单片机的中断服务程序的基本设计方法。 2. 实验内容 用定时器T0实现与P1.0端口相连的发光二极管以1Hz的频率闪烁用定时器T1实现与P1.1端口相连的发光二极管以2Hz的频率闪烁。 3. 实验电路框图 4. 实验任务分析 ⑴硬件电路说明 设置系统的时钟频率为12MHZ,利用定时/器计数器T0编程实现。将两个LED分别接在P1.0,P1.1上。 ⑵软件设计说明 从P1.0输出周期为1s的方波,只需P1.0每隔0.5s取反一次,从P1.1输出周期为2s的方波,只需P1.0每隔1s取反一次。当系统时钟为12MHZ,定时器/计数器T0工作于方式一,最大的定时时间为65536us,TH0=(65536-50000)/256; TL0=(65536-50000)%256; P1.0每循环10次取反一次,P1.1每循环20次取反一次。 5. 实验流程框图 6. 实验过程记录 ⑴实验过程 ⑵问题及解决方法 系统只能循环一次,不能反复循环。 解决方法:将num1,num2赋予原值 7. 实验总结 ⑴学会了用查询方式来定时。当计数溢出时,TF0为1; ⑵学会用TH0=(65536-50000)/256; TL0=(65536-50000)%256; 来确定初值的第四位,高四位。 (3)学会了定时器/计数器的初始化。①确定工作方式,对TMOD赋值。②计算定时或计数的初值,将初值写入TH0,TL0或TH1,TL1。③根据需要开启定时器/计数器中断,对IE寄存器赋值。④启动定时器/计数器工作,将TR0或TR1置“1”。 8. 成绩评定 附录 实验源程序 /**********预处理部分**********/ #include reg51.h #define uchar unsigned char #define uint unsigned int /**********变量定义部分**********/ sbit led1=P1^0; sbit led2=P1^1; /**********子函数部分**********/ void timer0_init() { TMOD=

您可能关注的文档

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档