第(4)次实验报告-定时器_第1页
第(4)次实验报告-定时器_第2页
第(4)次实验报告-定时器_第3页
第(4)次实验报告-定时器_第4页
全文预览已结束

付费下载

下载本文档

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

文档简介

《单片机基础》第4次实验报告实验内容实验一定时器实验(实验手册P11页)实验目的熟悉8279芯片的工作原理,学习对8279的编程方法以及定时中断的编程方法。姓名学号班级电子信息工程一、实验准备1、实验箱的拨码开关K10拨在下方;拨码开关KC拨在上方;按照实验手册连数据线。2、本实验的汇编程序是“ZYT0.ASM”二、8279的端口地址1、8279芯片的数据口地址——5EFFH2、8279芯片的控制口地址——5FFFH3、以下是8279的功能框图。三、把调试好的C程序粘贴在此处#include<reg51.h>#include<absacc.h>//XBYTE[]头文件//硬件连接不同控制口和数据口的定义基于不一样#defineCTRL8972XBYTE[0x5fff]//定义8279控制口#defineDATA8279XBYTE[0x5eff]//定义8279数据口#defineucharunsignedcharvoidjinweiLED();voiddisplayLED();//6个灯ucharled[6]={0,0,0,0,0,0};//LED共阳极数码管0-F(不带小数点)//------------------------------------//abcdefg//0000001//_//||//|_|//------------------------------------ucharcodetableLED[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E, 0xBF,0x8C,0x0C1,0x89,0xC7,0xBF,0x91,0x00,0xff};ucharn=16;//将一秒分为16等份voidmain(){ ucharflag; EA=1; ET0=1; //外部中断1选用下降沿 TMOD=0x01; TH0=0x06; TL0=0x06; TR0=1; CTRL8972=0xDC; //送控制字,输出 while(1) { flag=CTRL8972; //输入状态字,判断最高位如果为0就跳出循环 if((flag&0x80)!=0x80) break; } while(1)displayLED();}//中断服务函数voidint_server()interrupt1using1{ TH0=0x06; TL0=0x06; n--; if(n==0) { n=16; jinweiLED(); }}//进位函数voidjinweiLED(){ led[0]++; if(led[0]==10) { led[0]=0; led[1]++; if(led[1]==10) { led[1]=0; led[2]++; if(led[2]==10) { led[2]=0; led[3]++; if(led[3]==10) { led[3]=0; led[4]++; if(led[4]==10) { led[4]=0; led[5]++; } } } } } }//显示函数voiddisplayLED(){ uchari=0; CTRL8972=0x92; for(i=0;i<6;i++) { DATA8279=tableLED[led[i]]; }} 四、看懂本实验的汇编程序“ZYT0.asm”,回答以下问题(1)为8279芯片初始化的是哪段代码?请将初始化程序拷贝到此处答:MOVDPTR,#5FFFHMOVA,#0DCHMOVX@DPTR,AMOVXA,@DPTRJNBACC.7,LPMOVA,#00HMOVX@DPTR,AMOVA,#34HMOVX@DPTR,A(2)从8279芯片的初始化语句中,判断8279芯片的工作时钟频率是多少?答:12MHZ/20(mhz)(3)以下两条语句是为R0、R7赋初值,请回答R0在程序中的作用是什么?其初值为什么是“39H”?R7在程序中的作用又是什么?其初值为什么是“06H”? MOV R0, #39H MOV R7, #06H答:R0的作用是将39H单元置0。因为在39H前的有特殊寄存器的地址,要将之前的地址空出。R7是循环次数,将39H~3EH单元置依次0。(4)以下语句是对定时器T0进行初始化工作,假设单片机的晶振频率是12MHz,请问T0定时器的定时时间是多少?写出计算公式。 MOV TMOD, #01H ; MOV TL0,#06H ; MOV TH0,#06H ; SETB TR0答:TH0=(65535–63993)%256=0x06TL0=(65535–63993)/256=0x06(5)该实验是如何实现约1秒钟计时的?40H单元的初值为何是10H,与“1秒钟”计时有何关系?MOV 40H,#10H 答:1、1秒=1000ms=1000000us/16=639932、10H–>十进制为16与上式的16对应(6)请思考,如果本题需要精确计时1秒钟,TH0、TL0的初值应设置为多

温馨提示

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

评论

0/150

提交评论