- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3ห้องสมุดไป่ตู้ 实验原理(或要求) 数码管的初始显示值为“00”;按下上面开关,秒计数器加1;秒计 数到60时清零,并从“00”重新开始,如此周而复始地进行下去。按下下 面开关,计数器清0.
4、 实验步骤 1.使用Proteus软件绘制系统原理图; 2.使用KeilμVision3来编写系统控制程序; 3.使用Proteus 软件和Keil软件联合调试; 4.观察并记录实验结果。 (1)在Proteus中绘制电路原理图,将元件添加到编辑环境中; (2)在Keil下调试程序,并进行编译 (3)连接Proteus 软件和Keil软件,并观察仿真结果
//P0显示十位数值 //P2显示个位数值 //T0重装载计数初值
//T0定时50ms方式1初始化
//开启中断
//启动T0
4.仿真运行。
数码管的初始显示值为“00”;按下上面开关,秒计数器加1;秒计 数到60时清零,并从“00”重新开始,如此周而复始地进行下去。按下下 面开关,计数器清0.
6、 思考题 分析定时/计算器工作方式1和方式2各自的工作和应用特点。 方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组 成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0 标志,向CPU发出中断请求。 方式2为自动重装初值的8位计数方式。 工作方式2特别适合于用作
较精确的脉冲信号发生器。
7、 实验小结 通过本次上机,了解了中断定时/计数器的工作原理,对C51单 片机的编程与调试方法更加熟悉,学会了用中断函数的程序进行仿 真运行来实现电子秒表显示器的功能。
院(系) 计算机学院 专业 计算机科学与技术 姓名 学号 实验室 S4306 组号 课程 单片机技术 指导教师 实验项目编号 8103201205 实验项目名称
班级 同组人 日期 成绩 电子秒表显示器
1、 实验目的 掌握中断和定时/计数器工作原理,熟悉C51编程与调试方法。
2、 实验环境(仪器设备、软件) Win XP、Keil uVision4、Proteus ISIS 7 Professional
sbit P3_2=P3^2; sbit P3_3=P3^3; void timer0()interrupt 1{ //T0中断声明 i++; if (i==20) { //20次中断,i清零,j加1 i=0;
j++; } P0=led[j/10]; P2=led[j%10]; TH0=0x3c; TL0=0xb0; } int0_button() interrupt 0{ TR0=!TR0; } int1_button() interrupt 2{ j=0; P0=led[j/10]; P2=led[j%10]; TR0=0; } void main(){ TMOD=0X01; TH0=0x3c; TL0=0xb0; IT0=IT1=1; EA=1; P0=led[j/10]; P2=led[j%10]; EX0=1; EX1=1; ET0=1; TR0=1; while(1); }
5、 记录与处理(实验数据、误差分析、结果分析) 1. 电路原理图如下:
2.软件编程原理为:采用T0定时方式1中断法,其中1s定时采用20次 50ms定时中断的方案实现,变成流程图如图所示。 软件流程图 3.源程序如下: #include <reg51.h> unsigned char code led[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //显示字模 unsigned char i=0,j=0; //定义中断次数i,秒表计数j并赋初值