本帖最后由 liziride 于 2020-10-29 11:23 编辑
C51-LED排灯,定时器循环亮! 单片机世界的Hello World,正式入坑! keilc51+proteus免开发板基础学习!
#include<reg51.h>
unsigned char led = 0x01;//0b00000001
void timer0_001() {
TL0 = 0x00;//计数重装低位
TH0 = 0x4c;//计数重装高位
if(led < 1){
led = 0x01;
}
P1 = ~led;//led每次只有一个位是1,相当于分开控制p10~p17
led = led<<1;
}
void timer0Init_001(){
P1 = 0xFF;//初值全灭
//晶振11.0591,12T=1.085us,T=0.090422453703704,1.0850694444444
//50ms:50000 / 1.085 = 46082
//init: 65536 - 46082 = 19454 = 0x4bfe
//AUXR &= 0xBF;定时器时钟12T模式
TMOD &= 0xF0;//模式高位保留,低位置0000
TMOD |= 0x01;//模式高位保留,低位置0001
TL0 = 0x00;//计数重装低位
TH0 = 0x4c;//计数重装高位
ET0 = 1;//使能中断
PT0 = 0;//低优先级
//TF0 = 0;//清除TF0标志,auto except 串口
TR0 = 1;//定时器0的开关
}
[新手自立flag抱团群:114068224]
|