PIC16F877单片机定时器0的中断方式调试程序
#include
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
void init(void);
uint intnum;
void main(void)
{
init();
while(1)
{
if(intnum >= 20)//1S到时
{
intnum = 0;
RD0 = !RD0;
}
}
}
void init(void)
{
TRISD = 0; //PORTD引脚为输出
PORTD = 0; //PORTD引脚为低电平
OPTION = 0x07; //定时器0分频256
INTCON = 0xa0; //总中断、T0中断
TMR0 = 61; //TMR0 = (256-195);
//TR//定时器0没有启停位
}
void interrupt time0(void)
{
T0IF = 0; //定时器溢出清零
TMR0 = 61; //重装初值
intnum++; //累加器,主程序中累加到20*50ms
}
关键字:PIC16F877 定时器0 中断方式
引用地址:
PIC16F877定时器0的中断方式调试
推荐阅读最新更新时间:2024-03-16 13:49
一起学mini2440裸机开发(五)--定时器0的基础实验
实验前的准备 既然是关于定时器的实验,肯定要用到系统时钟,所以一定要保证系统时钟设置好,在这里需要的PCLK为50MHz。第二节分析MDK自带的S3C2440.c可以知道,默认的是不初始化系统时钟(是否选择初始化可以通过修改S3C2440.s中的CLOCK_SETUP来选择)。那么在这里首先修改一下S3C2440.s,对时钟进行初始化。 在这里只需要设置一处即可将 CLOCK_SETUP EQU 0修改为CLOCK_SETUP EQU 1,这样系统在启动时就会对咱们的芯片进行初始化,初始化之后的系统时钟值为:FCLK=300MHz,HCLK=100MHz,PCLK=50MHz。 实验1 实验实现的功
[单片机]
PIC16F877单片机DS18B20数码管温度计仿真程序 可显示负温度
电路原理图如下: //********************************************************* // 实现的功能:数码管显示实时温度,支持负温度 // 芯片PIC16F877 // XT:4MHZ //********************************************************* #include pic.h //包含单片机内部资源预定义 #define LVP 0x3f39 // 晶振:XT;代码:没有代码保护;上电延时定时器关闭; // 低电压复位禁止;看门狗关闭 ;低电压编程禁止 __CONFIG (XT & UNPR
[单片机]
单片机定时器T0计秒C51程序+电路
原理图: c51单片机程序如下: #include reg51.h #define UCHAR unsigned char #define UINT unsigned int UCHAR table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; UCHAR conter; UCHAR timer; void inittime(void) { timer=0; conter=0; TMOD=0X01; TH0=0X4C; TL0=0X00; EA=1;
[单片机]
单片机I/O控制方式(UART中断和DMA中断的区别)
单片机I/O设备的控制方式主要有三种:程序循环检测、中断驱动和直接内存访问。 1、程序循环检测方式 程序循环检测方式的基本思路是:在程序(一般是设备驱动程序)当中,通过不断地检测I/O设备的当前状态,来控制一个I/O操作的完成。具体来说,在进行I/O操作之前,要循环地去检测该设备是否已经就绪。如果是,就向控制器发出一条命令,启动这一次的I/O操作。然后,在这个操作的进行过程中,也要循环地去检测设备的当前状态,看它是否已经完成。总之,在I/O操作的整个过程中,控制I/O设备的所有工作都是由CPU来完成的。这种方式也称为是繁忙等待方式或轮询方式。它的缺点主要是:在进行一个I/O操作的时候,要一直占用着CPU,这样就会浪费CPU的时
[单片机]
基于单片机PIC16F877A的数控电流源设计
1 引言
电源技术尤其是数控电源技术是一门实践性很强的工程技术,涉及了电气、电子、系统集成、控制理论、材料等诸多学科领域。计算机和通讯技术的发展,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。普通电源由于精确度不高等缺点已不能满足现实的需要。直到单片机技术及电压转换模块的出现,才使精确数控电源的发展有了可能。本文所设计的数控电流源采用PIC16F877A单片机为核心部件,键盘、显示、D/A、开关电源等模块为外围电路。
2 设计要求和总体设计思路
2.1 设计要求
本设计要求:输入220V,输出最高12V;通过键盘控制输出电流,步长为0.01A;采用LED显示输出电流,精度为0
[单片机]
C51 定时器 TL0=(65536-50000)%256是怎么推导出来的?
文章1:如果你选的单片机的晶振一定,比如12MHZ来说吧,机器周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对机器周期进行50000计数就可以得到我想要的,可T0是一个可以对机器周期能进行65536次计数,也就是说我想要的50MS不能让T0溢出,怎么办,那么先给这个定时器里面放些数,放多少,就是我们想要的50MS在加上一个多少就能等于65536,也就是65536和50000的差值,这个值就是我们说的初值。 为什么除以256,因为我们的计时器是两个8位组成的,那么要把那些差值装进这两个8位,那么低8位最多能装256个机器周期,那么256计满了就用高8位的,就是说低8位满一次高8位加1,那么
[单片机]
AVR单片机相位修正PWM定时器0发生模式试验程序
/*AVR相位修正PWM定时器0发生模式*/ /*PWM波的产生机理是定时器0的TCNT0由0到255,在由255到0,不断地计数,当在0-255计数时TCNT0=OCR0时在OC0引脚上出现低电平,*/ /*当在255-0计数时TCNT0=OCR0时在OC0引脚上出现高电平,当由0加到255,再由255减到0时,产生溢出中断,可以再终端服务中修改OCR0的值,以改变占空比,比用引脚模拟要准确*/ /*另外值得说的是相位修正PWM很适合用在电机控制的场合,他比快速PWM慢,因此它的最大频率要比快速PWM低的多*/ /* 相位修正PWM实验 20110416 天津第四项目部宿舍 王均伟 */ #include iom16v.
[单片机]