标题: 为什么开始不是暂停00:00 并且初始值不是00:00 求大神 学霸 在我的程序... [打印本页]
作者: zhanghming 时间: 2018-6-15 13:37
标题: 为什么开始不是暂停00:00 并且初始值不是00:00 求大神 学霸 在我的程序...
- #include<reg51.h>
- #define uchar unsigned char
- uchar duanma [10]={0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x82,0xf8,0x80,0x90};
- uchar weima[4]={0x01,0x02,0x04,0x08};
- uchar jishu1,jishu2,miao,haomiao;
- uchar xianshi[4]={0,0,0,0};
- bit kaiting = 0;
- sbit k1=P3^0;
- sbit k2=P3^1;
- void yanshi20ms (void)
- {
- uchar i,j;
- for (i=40;i>0;i--)
- for (j=250;j>0;j--);
- }
- void chushihua(void)
- {
- TMOD=0x01;
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- EA=1;ET0=1;TR0=1;
- }
- void main(void)
- {
- uchar saomiao;
- miao=0;haomiao=0;
- chushihua();
- while(1)
- {
- P3=0xff;
- saomiao=P3;
- if(saomiao!=0xff)
- {
- yanshi20ms();
- saomiao=P3;
- if(saomiao!=0xff)
- {
- if(k1==0)
- {
- kaiting=~kaiting;
- }
- if((k2==0)&&(kaiting==1))
- {
- miao=0;
- haomiao=0;
- }
- while(P3!=0xff);
- }
- }
- }
- }
- void miaobiao(void)interrupt 1
- {
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- xianshi[0]=duanma[miao/10];
- xianshi[1]=duanma[miao%10];
- xianshi[2]=duanma[haomiao/10];
- xianshi[3]=duanma[haomiao%10];
- jishu1++;
- if(jishu1==4)jishu1=0;
- P2=weima[jishu1];
- P1=xianshi[jishu1];
- jishu2++;
- if (jishu2==100)
- {
- jishu2=0;
- if(kaiting==0)
- haomiao++;
- if (haomiao==100)
- {
- haomiao=0;
- miao++;
- if(miao==60)
- miao=0;
- }
- }
- }
-
2018-06-13_14.02.51.jpg
(6.83 MB, 下载次数: 38)
-
2018-06-13_14.03.37.jpg
(1.07 MB, 下载次数: 48)
作者: devcang 时间: 2018-6-15 16:22
使用模拟器测试过,程度是从0000开始的
作者: zhanghming 时间: 2018-6-15 18:43
可是 我用仿真开始的结果是— — :— — 并且刚开始时不停止
作者: zl2168 时间: 2018-6-15 22:34
实例93 99.9秒秒表
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,书中电路和程序设计有详细说明,电路与程序真实可靠可信可行,程序语句条条有注解。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |