2024年单片机中断实验报告_第1页
2024年单片机中断实验报告_第2页
2024年单片机中断实验报告_第3页
2024年单片机中断实验报告_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验三定期器中断试验一、试验目的1、掌握51單片机定期器基本知识;2、掌握定期器的基本编程措施;3、學會使用定期器中断。二、试验内容1、运用定期器设计一种秒表,计数范围為0—59,并在数码管实時显示。三、试验设备PC机一台、單片机试验箱重要器件:AT89C52、7SEG-BCD、四、试验环节1、使用Proteus设计仿真原理图;2、使用Keil设计程序;3、联合调试仿真。五、试验流程图開始開始继续否是判断与否到59启動定期器设置显示初值继续否是判断与否到59启動定期器设置显示初值 试验程序与成果#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitF=P2^1;voidtimer1_init(){ TMOD=0x10;//将定期器1设置為工作方式1 TH1=(65536-6000)/256;//定期器每加一時间為1/fsoc,定期時间為1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,因此装入16位定期器中值為65536-6000 EA=1; ET1=1; TR1=1;}voidmain(){ timer1_init(); while(1);}voidtimer1()interrupt3{TH1=(65536-6000)/256;//每次進入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次進入中断P1.1口取反}#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitF=P2^1;voidtimer0_init(){TMOD=0x01;//将定期器0设置為工作方式1TH0=(65536-83)/256;//定期器每加一時间為1/fsoc,定期時间為2Khz,既500us//500us/6us=83.3333TL0=(65536-83)%256;//fsoc=6000000,因此装入16位定期器中值為65536-83EA=1;ET0=1;TR0=1;}voidmain(){timer0_init();while(1);}voidtimer0()interrupt1{TH0=(65536-83)/256;//每次進入中断,重装初值TL0=(65536-83)%256;F=~F;//每次進入中断P1.1口取反,表达定期時间到}#include<reg51.h>//包括51單片机寄存器定义的頭文献#defineseg_dataP1#defineseg_data2P3#defineuintunsignedintsbitD1=P2^0;//将D1位定义為P2.0引脚uintcounter=0;unsignedintunit=0,decade=0,avs=0;//time=0;/**************************************************************函数功能:主函数**************************************************************/voidmain(void){ uinttime,time1,temp1,temp2,temp3; seg_data=0; seg_data2=0; TMOD=0x11;//使用定期器T0的模式2 TH0=0xFC;//定期器T0的高8位赋初值 1000-500 TL0=0x18;//定期器T0的低8位赋初值TH1=(65536-50000)/256;//定期器T1的高8位赋初值 TL1=(65536-50000)%256;//定期器T1的低8位赋初值 EA=1;//開總中断 ET0=1;//定期器T0中断容許 ET1=1; TR0=1;//启動定期器T0 TR1=1; while(1)//無限循环等待中断{ temp1=(decade&0x0F)<<4; temp2=unit&0x0F; time=temp2|temp1; seg_data=time; temp3=avs&0x0F; time1=temp3; seg_data2=time1; }}{D1=~D1;//按位取反操作,将P2.0引脚输出電平取反 TH0=0xFF;//定期器T0的高8位赋初值 1000-500 TL0=0x06;//定期器T0的低8位赋初值}voidTime1(void)interrupt3{ counter++; if(counter>19) { unit++; counter=0; } if(unit>9) {decade++; unit=0; } if(decade>5) { avs++; decade=0; } if(avs>9) { avs=0; } TH1=(65536-50000)/256;//定期器T1的高8位赋初值 TL1=(65536-50000)%256;//定期器T1的低8位赋初值 TF1=0;}试验心得通過本次課程设计使我感受到它是一门综合性、实践性较强的課程,使我体會到要想综合运用所學的理论知识,提高我的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论