计时60秒的秒表.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Keil-4软件上编写程序,用硬件延迟模式编程。
第三、实现Protues与Keil-4的链接
2.硬件设计

原件:单片机89C51 晶体振荡器12MHz 普通电容30pF 电解电容10uF 系统总线 电阻10千欧 电阻220欧 RESPACK-7电阻510欧 按键2个 共阴显示屏两个
3.软件设计

程序: #include<reg52.h> sbit K1=P3^7; sbit K2=P3^2; code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9 unsigned char Dis_Shiwei;//定义十位 unsigned char Dis_Gewei; //定义个位 void delay(unsigned int i) { while(--i); } main() { TMOD =0x01;//定时器设置 10ms in 12M crystal,工作在模式1,16位定时 TH0=0xd8; TL0=0xf0; IE= 0x82; //打开中断 TR0=1; //打开定时开关 while(1) { P0=Dis_Shiwei;//显示十位 delay(300); //短暂延时 P2=Dis_Gewei; //显示个位 delay(300); } }
计时60秒的秒表
1.总体思路 2.硬件设计 3.软件设计
1.总体思路



第一、掌握89C51的I/O接口的几个PO~P3 端口的用途,利用P0端口和P2端口分别控 制60秒的十位和个位,再用软件控制他们的 暂停、重置和开始,用硬件中断来控制软件 的延迟,用超级循环控制循环系统。 第二、在Protues仿真软件上将电路画出,


Baidu Nhomakorabea


void tim(void) interrupt 1 using 1 { static unsigned char second,count; TH0=0xd8; //重新赋值 TL0=0xf0; count++; if (count==100) //100x10ms=1S,大致延时时间 { count=0; if(second==60) second=0; Dis_Shiwei=tab[second/10];//十位显示值处理 Dis_Gewei=tab[second%10]; //个位显示处理 if(K1==0) { second++; } if(K2==0) { second=0; } } }
相关文档
最新文档