设计一程序:开关合上,8个led灯无限循环点亮;开关打开,LED熄灭。
1个回答
关注
展开全部
您好,很高兴为您解答。亲设计一程序:开关合上,8个led灯无限循环点亮;开关打开,LED熄灭。如下该任务要求通过编写程序,使连接PO口的8个LED灯循环点亮(跑马灯),每个灯点亮的时间为0.5秒。怎样来编写程序呢?我们用一个寄存器R1存储用于点亮P0口的LED灯的数据,R1首先存储点亮与P0.0相连的LED灯D0(数据为:0000001H),可以通过指令MOVP0,R1将与P0.0相连的LED0点亮,然后调用延时0.5秒的程序,延时时间到后,可以带进位位左移指令RRA,将R1中的数据左移一位(数据为:00000010),再送给P0口,点亮与P0.1相连的LED灯D1,依次类推;用寄存器R2存储LED灯从D0移动到D7的移动次数为8次,每移一次减1,R2的值为0时,表示第1次循环结束,接下来又从点亮D0开始下一个循环,就这样反复循环点亮,达到跑马灯的效果。希望我的回答能帮助到您!请问您还有其它问题需要咨询吗?
咨询记录 · 回答于2022-11-27
设计一程序:开关合上,8个led灯无限循环点亮;开关打开,LED熄灭。
您好,很高兴为您解答。亲设计一程序:开关合上,8个led灯无限循环点亮;开关打开,LED熄灭。如下该任务要求通过编写程序,使连接PO口的8个LED灯循环点亮(跑马灯),每个灯点亮的时间为0.5秒。怎样来编写程序呢?我们用一个寄存器R1存储用于点亮P0口的LED灯的数据,R1首先存储点亮与P0.0相连的LED灯D0(数据为:0000001H),可以通过指令MOVP0,R1将与P0.0相连的LED0点亮,然后调用延时0.5秒的程序,延时时间到后,可以带进位位左移指令RRA,将R1中的数据左移一位(数据为:00000010),再送给P0口,点亮与P0.1相连的LED灯D1,依次类推;用寄存器R2存储LED灯从D0移动到D7的移动次数为8次,每移一次减1,R2的值为0时,表示第1次循环结束,接下来又从点亮D0开始下一个循环,就这样反复循环点亮,达到跑马灯的效果。希望我的回答能帮助到您!请问您还有其它问题需要咨询吗?
https://www.doc88.com/p-310622369024.html
这里有详细的亲