- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2010—2011学年第二学期)实验报告
课程名称 《单片机原理及应用》
专业班级
姓名学号
指导教师
所在学院 信息科技学院
2011年 6月
目 录
实验项目一 输入/ 输出端口的基本应用
实验目的
⑴了解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 unsign
文档评论(0)