//P3.0 输出脉冲,用INT0 记录脉冲个数,
//用P1输出脉冲个数
//外部连接:P3.0 与 INT0输入端P3.2 连接。
#include
sbit out=P3^0;
void delay()
{
unsigned int i;
for(i=0;i<20000;i++)
;
}
unsigned int counter=0;
void main()
{
//INT0 设置
EA=1; //CPU 中断允许
EX0=1; //INT0 中断允许
IT0=1; //下降缘触发
//
while(1)
{
out=1;
delay();
delay();
out=0;
delay();
delay();
}
while(1);
}
//INT0 中断程序
void int0fun() interrupt 0
{
counter++;
if(counter==256)
counter=0;
else
P1=255-counter;
}
关键字:C51 INT0
引用地址:
C51: INT0
推荐阅读最新更新时间:2024-03-16 15:15
基于89C52/C51系列单片机实现电力载波模块的设计及应用研究
电力载波(PowerLine CarrierWave,简称PLCW)通信是利用电力线进行信息传送的一种通信方式。电力载波通信在远程三表(水表、电表、煤气表)信息的自动采集和传输中得到广泛的应用,在智能小区建设中备受青睐。随着信息技术的发展,智能化网络家电逐渐成为研究热点,而将电力载波应用于智能化网络家电控制则刚刚开始。国内目前尚未有应用于智能化网络家电控制的电力载波通讯产品的研究报道;而国外已经有稳定的构建智能化网络家电的电力载波通讯产品,但其价格昂贵,中国普通家庭难以接收,而且电压是110V,也不适合中国国情。因此,有必要对电力载波技术进行深入探索,研究开发出适合中国国情、成本低廉而可靠的电力载波通讯产品。 将电力载波应用于智能
[单片机]
keil C51语言编程如何缩减编译代码长度
1、整形数字符做乘除法的C51程序,代码比较大。约9B左右,所以尽量不做乘除法。 例如:uchar a=6;a=a*6;第二行代码要9个字节,而平时的语句只有2B。 2、定义变量的语句,不赋值或者不参与运算是不算代码的,能用短变量就用短变量,省RAM也省代码空间. 例如:uchar a; 这句有没有代码长度不变。但是赋非0值 uchar a=5;字符型,就要3B的代码长度。 uint a=5;整形变量赋值要6B字节,比较大,所以能定义短变量就定义短变量。 unsigned long int a=6.0;或者 long int a=6.0;会增加9B的代码。赋值整数浮点数一样。 3、对长整形变量,有符号变量比无符号变量
[单片机]
51单片机1602、18B20电子钟--C51源代码
#include REGx52.h #include RICHMCU.H sbit a0 = ACC^0; sbit a1 = ACC^1; sbit a2 = ACC^2; sbit a3 = ACC^3; sbit a4 = ACC^4; sbit a5 = ACC^5; sbit a6 = ACC^6; sbit a7 = ACC^7; sbit DQ = P3^3 ; //18B20接口 sbit speaker = P3^6 ; //蜂鸣器 sbit MODE = P1^4 ; //模式键 sbit INC = P1^5 ; //增加键 sbit DEC = P1^6 ; //减少键 sbit OK
[单片机]
12864(ST7902)串口C51程序
/******************************************************************************** *program name:st7920.c *function: TEST TO st7920(drive) *Design: qinhao *Date:2009-01-07 *********************************************************************************/ #include reg52.h #include stdlib.h #include intrins.h
[单片机]
【C51自学笔记】定时器
CPU时序: 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期) 状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。 机器周期:1个机器周期含6个状态周期,12个振荡周期。 指令周期:完成1条指令所占用的全部时间,以机器周期为单位。 例如:外接晶振为12MHz时,89S52单片机的4个时间周期的具体值为: 振荡周期=1/12us; 状态周期=1/6us; 机器周期=1us; 指令周期=1~4us; 注意: 定时器/计数器和单片机的CPU是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU的参与。 51单片机有两组定时器/计数器,
[单片机]
Keil C51中变量的使用方法
8051内核单片机是一种通用单片机,在国内占有较大的市场份额。在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功。由于51内核单片机的 存储 结构的特殊性,Keil C51中变量的使用与标准C有所不同。正确地使用变量,有利于获得高效的目标代码。下面详细介绍Keil C51中变量的使用方法。 1 CPU 存储 结构与变量的关系 变量都需要有存储空间,存储空间的不同使得变量使用时的工作效率也不同。 标准C的典型运行环境是8086(含IA-32系列)内核,其存储结构是CPU内部有寄存器,外部有存储器,寄存器的访问速度大大高于存储器的访问速度。在标准C中,不加特别定义的变量是放在存储器中的,使用register可以
[单片机]
直流电机PWM闭环控制实验(完整的C51程序)
C源代码: #include reg52.h /*定义字型字位口*/ #define DIGPORT P2 #define WORDPORT P0 /*定义键盘口*/ #define KEYPORT P1 #define uint unsigned int #define uchar unsigned char #define uong unsigned long sbit P_7=P3^7; //PWM信号输出 bit OVER; uint k,dt; uong KEYNUM; uchar qu,NUM; void Delay(uint ms) { while(--ms); } void timer0(voi
[单片机]
c51中的intrins.h库函数
#ifndef __INTRINS_H__ #define __INTRINS_H__ extern void _nop_ (void); extern bit _testbit_ (bit); extern unsigned char _cror_ (unsigned char, unsigned char); extern unsigned int _iror_ (unsigned int, unsigned char); extern unsigned long _lror_ (unsigned long, unsigned char); extern unsigned char _crol_ (unsigned char,
[单片机]