解释这段代码void init()//¶¨Ê±Æ÷³õʼ»¯ { TMOD=0x01; TH=(65536-4000)/256, TL=(65536-4000)%256; TH0=TH; TL0=TL; EA=1; ET0=1; TR0=1; } void fenli0()//¸öλʮλ·ÖÀë { Disbuff0[0]=SN/10; Disbuff0[1]=SN%10; } void fenli1() { Disbuff1[0]=EW/10; Disbuff1[1]=EW%10; } void Display() { uchar ii; if(ii==0) { P0=0x80; P2=0x80; P2=DisCode[Disbuff0[0]]|0x80; P0=DisCode[Disbuff1[0]]&0x7f; } else { P0=0x80; P2=0x80; P2=DisCode[Disbuff0[1]]&0x7f; P0=DisCode[Disbuff1[1]]|0x80; } ii=~ii; }
时间: 2024-04-07 15:28:52 浏览: 112
邻接表存储图深度优先广度优先遍历
这代码是一个实现红绿灯控制的函数,其中包含了三个子函数 init()、fenli0() 和 fenli1(),以及一个主函数 Display()。
init() 函数用于初始化定时器,设置计时器模式为模式 1,计时器初值为 4000,开启定时器中断,并开启计时器计数。
fenli0() 和 fenli1() 函数用于将南北红灯时间和东西绿灯时间分离成两个位数,并存储到 Disbuff0[] 和 Disbuff1[] 数组中。
Display() 函数用于显示南北红灯时间和东西绿灯时间,其中使用了一个 ii 变量来控制数码管的切换,当 ii=0 时,显示 Disbuff0[0] 和 Disbuff1[0] 中的数值,当 ii=1 时,显示 Disbuff0[1] 和 Disbuff1[1] 中的数值。通过设置 P0 和 P2 的值,控制数码管的显示。
整个程序的主要功能是控制红绿灯的时间,通过定时器计数器来实现。fenli0() 和 fenli1() 函数用于将时间分离成两个位数,并存储到数组中,然后通过 Display() 函数来实现数码管的显示。
阅读全文