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); } }}
实验分析:
心得体会:
版权声明:本文标题:单片机c语言程序设计---单片机实验报告 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1711439882a309835.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论