历史上的今天
今天是:2024年12月22日(星期日)
2021年12月22日 | INT0和INT1中断计数 PROTEUS 和51单片机教程
2021-12-22 来源:eefocus
功能:INT0和INT1中断计数,INT0和INT1分别计数和清零,也可以把两个连在一起计数
PROTEUS 和51单片机教程


程序的C语言代码如下:
/*
INT0与INT1中断计数
*/
#include
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit K3 = P3^4;
sbit K4 = P3^5;
void delay(uint16 x)
{
uint16 i,j;
for(i = x; i > 0; i --)
for(j = 114; j > 0; j --);
}
code uint8 LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
code uint8 Scan_BITs[]= {0x20,0x10,0x08,0x04,0x02,0x01};
uint8 Buffer_Counts[]={0,0,0,0,0,0};
uint16 Count_A=0, Count_B=0;
void Show_Counts()
{
uint8 i;
Buffer_Counts[2] = Count_A / 100;
Buffer_Counts[1] = Count_A % 100 /10;
Buffer_Counts[0] = Count_A % 10;
if(Buffer_Counts[2] == 0)
{
Buffer_Counts[2] = 10;
if(Buffer_Counts[1] == 0) Buffer_Counts[1] = 10;
}
Buffer_Counts[5] = Count_B / 100;
Buffer_Counts[4] = Count_B % 100 /10;
Buffer_Counts[3] = Count_B % 10;
if(Buffer_Counts[5] == 0)
{
Buffer_Counts[5] = 10;
if(Buffer_Counts[4]==0)Buffer_Counts[4] = 10;
}
for(i = 0;i < 6;i ++)
{
P0 = 0xFF;
P1 = Scan_BITs[i];
P0 = LED_CODE[Buffer_Counts[i]];
delay(2);
}
}
void main()
{
IP = 0x05;
IT0 = 1;
IT1 = 1;
IE = 0x85;
while(1)
{
if(K3 == 0) Count_A = 0;
if(K4 == 0) Count_B = 0;
Show_Counts();
}
}
void ISR0() interrupt 0
{
Count_A++;
}
void ISR1() interrupt 2
{
Count_B++;
}
史海拾趣
|
QuartusII编译以后不能产生POF文件往往是由于没有选择EPCS器件造成,下面就如何选择EPCS介绍以下步骤: 1 打开QuartusII2 打开“Assignments/Device”3 点击“Device anf Pin Option/Configuration” 4 选择“Use Configuration device”在下拉 ...… 查看全部问答> |
|
请教一下各位,在fpga 中 从sdram 中读取图像数据时, 怎么能够做到把每一帧分别识别出来?另外,在考虑时序问题时是怎么计算的,比如 主时钟60Mhz ,大小640*480模式下。 还有就是如何根据这些计算出来的延迟周期 延迟为基准,产生不同宽度和周期的 ...… 查看全部问答> |
|
本品为工程富余的全新短距离射频传输模块,可以用做简单的家电无线控制、简单的无线数据传输、 无线遥控器,或者串口1-》无线发送-》无线接收-》串口2 模式的无线串口数据传输。主要芯片:MSP430 8位单片机CC1020 射频芯片射频PA芯片粗略参数:无线 ...… 查看全部问答> |




