刚开始接触单片机。作为一个新手小白,是选择从基础的流水灯,数码管,定时/计数等方面的学习,来实现简单的编程,从而逐步提高自己的能力水平。这是刚学会的用单片机中断系统来实现的简单的秒表。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint addNum;
- uchar secNum;
- #define SEGNUM P0
- #define WEI P2
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
- 0x7d,0x07,0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00};
- void delay(uint num)
- {
- uchar i,j;
- for(i=num;i>0;i--)
- for(j=120;j>0;j--);
- }
- void main()
- {
- TMOD =0x02;
- TL0=TH0=6;
- ET0=1;
- EA=1;
- TR0=1;
- while(1)
- {
- WEI=0xfe;
- SEGNUM=table[secNum%100/10];
- delay(50);
- WEI=0xfd;
- SEGNUM=table[secNum%10];
- delay(50);
-
- }
- }
- void timer0() interrupt 1
- {
- addNum++;
- if(addNum==4000)
- {
- secNum++;
- addNum=0;
- }
- }
复制代码
所有资料51hei提供下载:
DPJ秒表.zip
(52.55 KB, 下载次数: 16)
|