- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012年春季單片机实验报告书
实验一 I /O口输出实验—LED流水灯实验
实验电路及连线
MCU 模块 PB-EDU-011
硬件连接表 P20 D1 P21 D2 P22 D3 P23 D4 P24 D5 P25 D6 P26 D7 P27 D8 +5V +5V GND GND 、实验流程图
#includereg51.h //加载头文件
#includeintrins.h //使用库函数
void delay() //定义延时函数
{
unsigned char i,j;
for(i=0;i255;i++)
for(j=0;j255;j++);
}
main()
{
P2=0xfe; //最低位是低电位,灌电流
while(1)
{
P2=_crol_(P2,1); //移位依次点亮
delay();
}
}
实验二 定时器实验
一、实验电路及连线
MCU模块 PB-EDU-011 P10 D1 +5V +5V GND GND 硬件连接表 二、实验程序流程图 定时中断服务程序
主程序
试验程序如下:
#include reg52.h
#include intrins.h //使用库函数
sbit K=P3^2; //定义
void delay(int i) //延时
{
int j;
for(i;i0;i--)
for(j=0;j255;j++) ;
}
void init(); //
void main(void)
{
init(); //初始化
EA=1; //开总中断
while(1)
{
P1=0x00; //全亮
delay(127);
P1=0xff; //全灭
delay(127); //持续
}
}
void init()
{
EA=1; //开总中断
EX0=1; //外部中断0
}
void init0() interrupt 0
{
P1=0xfe; //最低位亮
delay(200);
while(1)
{
P1=_crol_(P1,1); //带进位循环左移
delay(127); //延时255毫秒
if(K==1) //检测开关状态
break; //
}
}
实验三 单个外部中断实验
一、实验电路及连线
硬件连接表
MCU模块 PB-EDU-011 P10~P17 D1~D8 INT0 K1 +5V +5V GND GND
二、实验程序流程
主程序框图 外部子程序框图
试验程序如下:
#includereg52.h
unsigned char time;
sbit K=P1^0;
void t1_init()
{
TMOD=0X10; //定时器T1方式1定时 16位
IE=0x88; //总中断允许定时器T1中断
TH1=0x3c; //装入时间常数 50ms (65536-50000)/256
TL1=0xb0; //(65536-50000)%256
TR1=1; //启动定时器
}
void main()
{
K=1; //P1.0口置高
t1_init(); //中断初始化
time=0; //设定循环初值
while(1); //等待中断
}
void t1_func() interrupt 3 //中断函数
{
TH1=0x3c; //装入时间常数 50ms
TL1=0xb0;
if(time20) //循环20次 达到1000ms
{
time=time+1;
}
else if(time==20)
{
time=0;
K=~K; //P1.0口取反闪烁
}
}
实验四 双单片机通信实验
一、实验电路及连线
硬件连接表
MCU模块 PB-EDU-002 PB-EDU-012 PB-EDU-011 P20~P27 Com1~Com8 P00~P07 L-A—L-H P10~
文档评论(0)