1.proteus仿真图
2.keli代码
#include sbit led1=P0^0; sbit led2=P1^0; int count0,count1; //定时器0溢出中断程序 void timer0() interrupt 1 //定时器0中断标志位为1 { //重新装载定时器0计数初值 TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(count0==10) //T0*10=1s LED1闪烁 { led1=~led1; count0=0; } count0++; } //定时器1溢出中断程序 void timer1() interrupt 3 //定时器1中断标志位为3 { //重新装载定时器1计数初值 TH1=(65536-25000)/256; TL1=(65536-25000)%256; if(count1==10) //T1*10=0.5s LED2闪烁 { led2=~led2; count1=0; } count1++; } int main() { EA=1; //全局中断使能 ET0=1; //定时器0溢出中断使能 ET1=1; //定时器1溢出中断使能 TR0=1; //定时器0使能 TR1=1; //定时器1使能 TMOD=0x11; //00010001B,定时器0、1使用工作方式1,16位定时器 //装载定时器0计数初值 TH0=(65536-50000)/256; //内置时钟频率为6MHz,定时器0计数50000次,计数初值为15536转为16进制 TL0=(65536-50000)%256; //机械周期为2us,T0=(65536-计数初值)*2us=0.1s //装载定时器1计数初值 TH1=(65536-25000)/256; //内置时钟频率为6MHz,定时器0计数25000次,计数初值为40536转为16进制 TL1=(65536-25000)%256; //机械周期为2us,T1=(65536-计数初值)*2us=0.05s led1=0; //控制P0.0 led2=0; //控制P1.0 while(1) { } }
上一篇:89C51单片机按键控制数码管静态显示0~9
下一篇:89C51单片机——按钮控制LED
推荐阅读最新更新时间:2024-11-12 00:53
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- LTC2924,使用停机引脚的四个电源排序器
- 使用 NXP Semiconductors 的 TDA8933BT 的参考设计
- 使用 Diodes Incorporated 的 PT8A3518 的参考设计
- 使用 Aimtec 的 AM3G-4815DH30Z 的参考设计
- K适用于Kintex Ultrascale FPGA的电源设计:超静音,1.8V,1A
- 使用 Analog Devices 的 AD736A 的参考设计
- #第六届立创电赛#300W桌面级数字功放
- #第八届立创电赛#桌面电子时钟
- DC2591A,基于 LTC4316 EasySMU 的演示板:I2C 地址转换器和简单的多通道源测量单元
- L4940V5 超低压降 1.5A 稳压器的典型应用,使用 L4940 对开关模式电源进行二次调节