运用51单片机的中断,LED显示,实现一个微型的秒表。
定时器秒表
实验报告
原理图
程序流程图
实验反思
经过本次的上机,我对51单片机工作模式的转换有了更加深刻的认识,能从根本上知道是怎么一回事了,本次的实验三,在机房操作时,对定时器的工作模式有点错误的认识,还有对一个按键控制多种操作自己也是遇到了很大困难,好在经过自己认真看书,以及积极向老师和同学请教,问题才能够迎刃而解,总之,这节课再次把书本上的知识搬到了实践中,收获挺大的。
源程序 - #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char code table []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char count=0,b;
- sbit key=P3^7;
- uchar ds_time = 0;
- uchar i;
- uchar t=0;
- void delay(uint i)
- {
- char j;
- for(i; i > 0; i--)
- for(j = 200; j > 0; j--);
- }
- void main()
- {
- TMOD=0x01;
- TH0=0x3c;
- TL0=0xb0;
- ET0=1;
- TR0=1;
- EA=1;
- key=1;
- while(1){
- if(key==0)
- {while(!key)
- {b++;
- delay(1000);
- if(b>100)
- {b=0;
- count=0;
- }
- }
- delay(100);
- TR0=~TR0;
- }
- if(ds_time==1){
- ds_time=0;
- P0=table[count/10];
- P2=table[count%10];
- count++;
- }}
-
- }
- timer0() interrupt 1{
- t++;
- if(t==20){t=0;ds_time=1; }
- TH0=0x3c;TL0=0xb0;
- }
复制代码
完整的Word格式文档51黑下载地址:
定时器秒表.docx
(367.56 KB, 下载次数: 35)
|