历史上的今天
今天是:2025年12月26日(星期五)
2022年12月26日 | 单片机定时器0、1演示程序
2022-12-26 来源:zhihu
//实验例程 大虾(DX-51)学习板 定时器0、1使用例程
#include #include //MCU51嵌入式专业仿真器占用3个字节程序空间0x003b,0x003c,0c003d, //使用code数组声明防止编译器将函数定位于此三字节所在程序空间上 unsigned char code DX58[3] _at_ 0x003b; unsigned char count; unsigned char direction; unsigned char delay1; unsigned char delay2; void timer0(void) interrupt 1 using 0 { TL0=0x06; TH0=delay2; /* 定时器0中断 */ if (++delay1 > 4){ delay1 = 0; if (++count > 7) count = 0; P1 |= 0x0ff; P1 &= ~(0x01 << count); } /* 定时器0中断 */ } void timer1(void) interrupt 3 using 0 { TL1=0x06; TH1=0x00; /* 定时器1中断 */ if (direction){ if (++delay2 == 128)direction = 0; } else { if (--delay2 == 0)direction = 1; } /* 定时器1中断 */ } // 定时器功能演示程序 // P01、P02、P03、P04脚接发光二极管led1、led2、led3、led4 // 每个发光二极管串上电阻接到5V电源上, 运行本演示程序 // 将会看到发光二极管被依次点亮和熄灭, 比街上的彩灯好看 // 多了,不信你试试看。 void main(void){ ET0 = 1; /* 允许定时器0中断 */ ET1 = 1; /* 允许定时器1中断 */ TMOD = 0x11; /* 定时器工作方式选择 */ TL0 = 0x06; TH0 = 0x00; /* 定时器赋予初值 */ TL1 = 0x06; TH1 = 0x00; /* 定时器赋予初值 */ TR0 = 1; /* 启动定时器 */ TR1 = 1; /* 启动定时器 */ EA = 1; /* 开总中断 */ delay2 = 0; direction = 1; while(1){ _nop_ (); /* delay for hardware */ } }
上一篇:51单片机外部中断处理源程序
下一篇:定时器功能演示程序
史海拾趣
|
引言 复杂可编程逻辑器件——FPGA技术在近几年的电子设计中应用越来越广泛。FPGA具有的硬件逻辑可编程性、大容量、高速、内嵌存储阵列等特点使其特别适合于高速数据采集、复杂控制逻辑、精确时序逻辑等场合的应用。而应用FPGA中的存储功能目前 ...… 查看全部问答> |
|
在WinCE6.0操作系统上,用户如何注册自已的动态库(像XP系统上一样regsvr32.exe \\xxx\\XXX.dll )… 查看全部问答> |
|
~~~~~~~~~~~~~~~~~~再过两天就刚好接触wince九个月了~~~~~~~~~~~~~~感觉挺晕的。 现在来提几个问题,欢迎大家来讨论。 一、你所在公司的城市,wince研发人员数量,驱动多少?硬件多少?应用多少? 二、你们使用什么开发开发工具开发应用?使用什 ...… 查看全部问答> |
|
模块实现了一个10位SAR核、采样选择控制、参考电压发生器和数据传输控制器。 数据传输控制器DTC可以将ADC采样结果存储在内存的任何位置。 ADC10特点: l 高于20万次/秒的转换速率; l &n ...… 查看全部问答> |




