高分求单片机定时器程序

来源:百度知道 编辑:UC知道 时间:2024/05/11 01:12:41
由8051内部定时器1,按方式1工作,即作为16位定时器使用,每0.05sT1溢出中断一次。P1的P1.0~P1.7分别接八个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮......一直循环下去。

给你改了个,有空到我空间转转:
/*******************************************************
C51顺序控制程序:
注意:由预处理生成的定时初值有一定的局限性,调试过程中请参考计算工具得出的结果
请到我空间下载“51定时器计算器”
2009-10-02 by yingang2009
********************************************************/
#include<reg51.h>
//*******************************************************
#define Byte unsigned char
#define Word unsigned int
#define DWord unsigned long
//*******************************************************
#define Speed 12 //12 MHz(注意更高就不能一次得到50ms定时了)
#define TTTT 50000 //50ms
#define TH1_Init_Val (65536-Speed * TTTT / 12)/256
#define TL1_Init_Val (65536-Speed * TTTT / 12)%256

sbit L1 = P1^0 ;
sbit L2 = P1^1 ;
sbit L3 = P1^2 ;
sbit L4 = P1^3 ;
sbit L5 = P1^4 ;
sbit L6 = P1^5 ;
sbit L7 = P1^6 ;
sbit L8 = P1^7 ;
//*******************************************************模块变量
bit fl