proteus中断秒表
时间: 2023-12-14 21:33:22 浏览: 59
以下是使用Proteus仿真实现中断秒表的方法:
1.首先,需要在Proteus中创建一个新的电路图。
2.然后,从Proteus库中选择一个8051微控制器,并将其拖放到电路图中。
3.接下来,需要添加一个晶振和两个电容器,以便为微控制器提供时钟信号。
4.然后,需要添加一个LCD显示屏,以便在屏幕上显示秒表的时间。
5.接下来,需要将微控制器的引脚连接到LCD显示屏和晶振。
6.然后,需要编写一个C程序,以便在8051微控制器上实现秒表功能。该程序应使用定时器和中断来计时。
7.最后,需要将编写的C程序烧录到8051微控制器中,并在Proteus仿真中运行该程序。
以下是一个示例C程序,可用于在8051微控制器上实现秒表功能:
```c
#include <reg51.h>
#define LCD_data P2
sbit RS = P1^0;
sbit EN = P1^1;
unsigned char ms = 0, sec = 0, min = 0, hour = 0;
void delay(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<1275;j++);
}
void LCD_cmd(unsigned char cmd)
{
LCD_data = cmd;
RS = 0;
EN = 1;
delay(1);
EN = 0;
}
void LCD_init()
{
LCD_cmd(0x38);
LCD_cmd(0x0C);
LCD_cmd(0x06);
LCD_cmd(0x01);
}
void LCD_write(unsigned char data)
{
LCD_data = data;
RS = 1;
EN = 1;
delay(1);
EN = 0;
}
void display_time()
{
LCD_cmd(0x80);
LCD_write(hour/10+0x30);
LCD_write(hour%10+0x30);
LCD_write(':');
LCD_write(min/10+0x30);
LCD_write(min%10+0x30);
LCD_write(':');
LCD_write(sec/10+0x30);
LCD_write(sec%10+0x30);
LCD_write(':');
LCD_write(ms/10+0x30);
LCD_write(ms%10+0x30);
}
void timer0_ISR() interrupt 1
{
TH0 = 0xFC;
TL0 = 0x67;
ms++;
if(ms == 100)
{
ms = 0;
sec++;
if(sec == 60)
{
sec = 0;
min++;
if(min == 60)
{
min = 0;
hour++;
if(hour == 24)
{
hour = 0;
}
}
}
}
display_time();
}
void main()
{
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
ET0 = 1;
EA = 1;
LCD_init();
while(1);
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)