单片机编程问题(高手请进!!!!!)

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:22:35
以下内容均以DVCC防真机为平台和DBUG软件
第1题.走马灯程序:
(1)8个发光二极管,首先点亮一个,依次左移,然后右移,如此重复4次;
(2)点亮两个,依次左移,然后右移,如此重复4次;
(3)点亮三个,依次左移,然后右移,如此重复4次;
(4)如此每次增加一个,直到8个全部点亮;
(5)两种编程方式(直接送数据,直接循环)

第2题.显示2个数字程序并倒数
要求:(1)显示内RAM单元20H中的内容;
(2)(20H)少于99,然后倒数;
(3)拆字程序,查表程序;

第3题.显示6位数字程序

第4题.数据排序,并显示最小的数据
要求:在RAM的以20H为首地址中有一无符号数据块,其长度为20H的内容,请将他们从大到小的顺序排列,并显示出其中最小的数据在显示器上,并使该数闪烁相应长度的次数

以上4题均要求在30个命令以内!

单片机为80C51

请各位大虾帮帮忙!小第不胜感激!要是回答的好了我还加分!!!!!!!

第1题.走马灯程序:
(1)8个发光二极管,首先点亮一个,依次左移,然后右移,如此重复4次;
(2)点亮两个,依次左移,然后右移,如此重复4次;
(3)点亮三个,依次左移,然后右移,如此重复4次;
(4)如此每次增加一个,直到8个全部点亮;
(5)两种编程方式(直接送数据,直接循环)

START:
LCALL TIME
MOV P1,#0FCH ;D1,D2亮
LCALL TIME
MOV P1,#0F3H ;D3,D4
LCALL TIME
MOV P1,#0CFH ;D5,D6
LCALL TIME
MOV P1,#03FH ;D7,D8
LCALL TIME
MOV P1,#0F0H ;D1,D2,D3,D4
LCALL TIME
MOV P1,#00FH ;D5,D6,D7,D8
LCALL TIME
MOV P1,#0FFH ;全灭
LCALL TIME
MOV P1,#000H ;全亮
LCALL TIME
AJMP START ;跳到开头重新开始
TIME:MOV R0,#250 ;5秒延时程序,这里假设晶振为12MHZ,50*200*250次就是5秒
loop1:MOV R1,#250
loop2: MOV R2,#200
DJNZ R2,$
DJNZ R1,loop2
DJNZ R0,loop1
RET