📄 test.c
字号:
/*----------------------------------www.00IC.com-----------------------------------------
╔=======================================╗
┆ 00IC-51开发板配套实验学习例程 ┆
┆ Version 2.0.1 ┆
┆ ┆
┆ 零零电子 ┆
┆ ┆
┆ http://www.00IC.com ┆
┆ E-mail:sales@00IC.com ┆
╚=======================================╝
************************* ********* 程序功能说明 ********************************************
按下S1按键产生中断,单片机对中断次数从0到9进行计数,同时在数码管上显示
注意:做本试验时请将ISP下载线拔掉,不然数码管无法显示
********************************************************************************************/
#include<reg52.h>
sbit s1 = P2^0;
sbit s2 = P2^1;
sbit s3 = P2^2;
sbit s4 = P2^3;
sbit en = P2^5;
int dispcount = 0;
void Delay(int m)
{
while(--m);
}
void ext_int0() interrupt 0 //中断服务程序
{
EA = 0;
Delay(4000);
dispcount++; //每按一次中断按键,计数加一
if(dispcount==10)
dispcount=0;
EA = 1;
}
void display(void) //数码管显示函数
{
s1 = 0;
s2 = 0;
s3 = 0;
s4 = 0;
en = 1;
switch(dispcount)
{
case 0:
P0 = 0xC0; //display 0
Delay(60000);
break;
case 1:
P0 = 0xF9; //display 1
Delay(60000);
break;
case 2:
P0 = 0xA4;
Delay(60000); //display 2
break;
case 3:
P0 = 0xB0; //display 3
Delay(60000);
break;
case 4:
P0 = 0x99; //display 4
break;
case 5:
P0 = 0x92; //display 5
Delay(60000);
break;
case 6:
P0 = 0x82; //display 6
Delay(60000);
break;
case 7:
P0 = 0xF8; //display 7
Delay(60000);
break;
case 8:
P0 = 0x80; //display 8
Delay(60000);
break;
case 9:
P0 = 0x90; //display 9
Delay(60000);
break;
default:
P0 = 0x88; //display A
Delay(60000);
break;
}
}
void main()
{
TCON=0x01; //中断设置
IE=0x81;
while(1) //循环执行
{
display(); //只须调用显示函数
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -