admin管理员组

文章数量:1532283

2024年3月26日发(作者:)

单片机c语言程序设计---单片机实验报告

实验目的:

1. 掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用

2. 掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定

时器/计数器

实验内容:

一.定时器/计数器应用程序设计

实验1.计数

功能:用定时器1方式2计数,每计数满100次,将P1.0取反。

(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按

下按键一次计数器加1,这样3次就能看到仿真结果。)

分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器

加1,由程序查询TF1。方式2有自动重装初值的功能,初始化后不

必再置初值。

将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可

为任意方式,只要不使其进入方式3即可,一般取0。TMOD=60H。定

时器初值为X=

2

8

-100=156=9CH,TH1=TL1=9CH。

程序:

#include

void main()

{

P1_0=0;

TMOD=0x60;

TH1=0xFD;

TL1=0xFD;

ET1=1;

EA=1;

TR1=1;

while(1)

{

}

}

void timer1_Routine() interrupt 3

{

P1_0=~P1_0;}

实验2.中断定时

使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发

光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯

灭。

分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断

申请,条件满足CPU响应,进入中断处理程序。主程序中要进行中断

设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为

0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。

实验要求:

完成计数实验和中断计数实验。具体包括绘制仿真电路图、编写c源

程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程

序,对仿真结果进行总结。

程序:

#include

#include "Delay.h"

int i;int j=0;

void main()

{ P1=0; P2=0; P3=0; P0=0;

TMOD=0x01;

TH0=0x3C;

TL0=0xB0;

ET0=1;

EA=1;

TR0=1;

while(1) {

}

}

void timer0_Routine() interrupt 1

{

TH0=0x3C;

TL0=0xB0;

j++;

if(j>=150)

{ j=0; for(i=0;i<20;i++)

{

P1=~P1;

P2=~P2;

P3=~P3;

P0=~P0;

Delay(200); } }}

实验分析:

心得体会:

本文标签: 中断实验方式计数单片机