附注:
按键控制LED灯的亮灭,我们可以采用外部中断的方式(实验四会讲),独立按键的接法希望大家注意,直接接地,在没有按键的情况下IO口为高电平(注:因为本实验中按键接P1口,内部集成上拉电阻。若使用P0口作为通用IO口使用时必须外接500Ω左右的上拉电阻。见实验四。),当有按键按下时IO口为低电平。
五.实验程序及电路图
1.实验说明:
通过一个按键来控制LED灯的亮灭。
2.实验程序: #include
3.仿真电路图:
本实验的仿真电路图如图2.1所示。
while(1) { }
if(!Key) else
Led = 1;
//判断是否按下按键,按下为0
Led = 0; //点亮灯
//死循环
//位定义
图2.1 IO口的输入应用
6
实验三 定时器中断实验(Periodic Interrupt Timer)
一.实验目的
掌握定时器相关寄存器的配置,以及定时时间的计算等。
二.实验内容
定期器中断及查询方式控制P1.0口输出方波,用实验箱上的示波器观察波形,不同定时值对其影响。
三.实验器材
STC89C51RC或实验箱。
四.实验步骤
1.在Keil开发环境下建立一个工程。 2.程序的编写。 a.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。 时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10)=2us
设计数初值为X,则(2e+16-X)×2×10=0.1,可求得X=15535 化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH b.初始化程序
包括定时器初始化和中断系统初始化,主要是对IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。 c.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。 3.程序下载调试。
4.附注:定时器常用方式1和方式2(在错误!未找到引用源。中用到),方式2 为自动重装计数初值的8位定时器,主要用于串行通信中波特率的产生和短时精确定时(因为不必软件重装初值所以更精确)。
6
6
五.实验程序及电路图
1.实验说明:
通过定时器中断及查询方式控制P1.0口输出方波。
2.实验程序:
7
#include
#define unchar unsigned char #define unint unsigned int sbit fangbo = P1^0; void main() { }
void time0() interrupt 1 { }
3.仿真电路图:
本实验仿真电路图如图3.1所示。
TH0 = 0x3c; TL0 = 0xb0;
//重装计数器值
//P1.0取反,产生方波
fangbo=~fangbo;
//定时器0中断服务函数
TMOD = 0x01; TH0 = 0x3c; TL0 = 0xb0; ET0 = 1; EA = 1; TR0 = 1; while(1);
//装入定时器初值定时50ms
//定时器0中断允许
//总中断允许 //等待
//定时器0工作方式1
//通过P1.0口输出方波
//定时器0开始计时
图3.1 定时器中断实验
注:实验箱中有模拟示波器,可通过电脑观察波形。
8
实验四 外部中断的应用
一.实验目的
通过此次实验学习51单片机外部中断的使用,并结合输入输出方式熟练掌握外部中断的应用。
二.实验内容
采用按键以中断方式控制一个LED灯的亮灭。
三.实验器材
STC89C52RC单片机、LED灯,独立按键或实验箱。
四.实验步骤
1.在Keil开发环境下建立一个工程。
2.程序的编写,采用中断方式判断键是否按下,并确定是否点亮二极管。 3.程序下载调试(可先进行仿真)。 附注:
中断方式可以提高CPU的效率,当发生中断事件时处理器可快速响应中断,没有中断事件时处理器正常工作,不必时刻查询中断事件的发生与否,提高代码效率。
本例中,若采用电平触发方式,则Key为低电平时Led亮,否则Led息灭;若采用边沿触发方式,则Key的每个下降沿,即Key由高变为低时,Led的状态改变一次。
五.实验程序及电路图
1.实验说明:
用按键以中断方式控制一个LED灯的亮灭。 2.实验程序: #include
#define unchar unsigned char #define unint unsigned int sbit Led = P1^0; sbit Key = P3^2; void main() { }
9
//位定义
IT0 = 0; //外部中断0采用电平触发方式;边沿触发为1下降沿有效 EA = 1; //中断允许 EX0 = 1; //开外部中断0 while(1);
void int0() interrupt 0 { } /*
void int0() interrupt 0 { }
3.仿真电路图
Led = 0; Led = 1;
//外部中断0程序
//Led 亮 // Led 灭
while(Key == 0); //等待键释放
//边沿触发方式中断函数。每次Key下降沿改变Led状态
Led = ~Led; //改变Led状态
本实验的仿真电路图如图4.1所示。
图4.1 外部中断的应用
实验五 单片机串口的应用
一.实验目的
通过此次实验学习单片机串口的应用,掌握串口相关寄存器的配置,并学会用串口做简单的双机通信。
二.实验内容
通过串口实现双机通信,用Key控制发光二极管。
三.实验器材
STC89C52RC单片机、LED灯或实验箱。
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库开放实验报告在线全文阅读。
相关推荐: