|
SP-28USB综合试验:流水灯数字显示综合试验 该程序运行结果为个位数码管轮流现实0,1,2,3,4,5,6,7,8 然后十位数码管轮流现实0,1,2,3,4,5,6,7,8反复循环 P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次点亮然后轮流点亮 注意该程序配套为我站的SP-28USB试验板相配套。 LOOP: ; 标号 CLR P2.0 ;选中p2.0 数码管左边的8字使能 CLR P2.1 ;选中p2.1 数码管左边的8字使能 SETB P2.2 ;选中p2.2 不使能。 右边的数码管消隐 SETB P2.3 ;选中p2.3 不使能。 右边的数码管消隐
MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0 LCALL DELAY ;延时 MOV P0,#0FFH ;0ffh 送p0口,数码管清除 CLR P1.0 ;点亮p1.0发光管 MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1 LCALL DELAY MOV P0,#0FFH CLR P1.1 ;点亮p1.0发光管 CLR P1.0 ;点亮p1.0发光管 MOV P0,#0a4h ;数码管显示 2 LCALL DELAY MOV P0,#0FFH CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#0b0h ;数码管显示 3 LCALL DELAY MOV P0,#0FFH CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#99H ;数码管显示 4 LCALL DELAY MOV P0,#0FFH CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#92H ;数码管显示 5; LCALL DELAY MOV P0,#0FFH CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#82H ; 数码管显示 6 LCALL DELAY MOV P0,#0FFH CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#0f8H ; 数码管显示 7 LCALL DELAY MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#80H ; 数码管显示 8 LCALL DELAY MOV P0,#0FFH LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH ;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8 ;p1.0------------p1.7指示灯依次点亮 CLR P2.2 ;选中p2.2 数码管左边的8字使能 CLR P2.3 ;选中p2.3 数码管左边的8字使能 SETB P2.0 ;选中p2.0 不使能。 右边的数码管消隐 SETB P2.1 ;选中p2.1 不使能。 右边的数码管消隐 MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.0 MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.1 MOV P0,#0a4h ;数码管显示 2 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.2 MOV P0,#0b0h ;数码管显示 3 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.3 MOV P0,#99H ;数码管显示 4 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.4 MOV P0,#92H ;数码管显示 5; LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.5 MOV P0,#82H ; 数码管显示 6 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.6 MOV P0,#0f8H ; 数码管显示 7 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.7 MOV P0,#80H ; 数码管显示 8 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH MOV P0,#0FFH MOV P1,#0FFH ;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮; ;同时p1口的灯流动显示,下面重新再来新的数字显示: CLR P2.0 ;选中p2.0 数码管左边的8字使能 CLR P2.2 ;选中p2.2 数码管左边的8字使能 SETB P2.1 ;选中p2.1 不使能。 右边的数码管消隐 SETB P2.3 ;选中p2.3 不使能。 右边的数码管消隐 MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0 LCALL DELAY ;延时 MOV P0,#0FFH ;0ffh 送p0口,数码管清除 CLR P1.0 ;点亮p1.0发光管 MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1 LCALL DELAY MOV P0,#0FFH CLR P1.1 ;点亮p1.0发光管 CLR P1.0 ;点亮p1.0发光管 MOV P0,#0a4h ;数码管显示 2 LCALL DELAY MOV P0,#0FFH CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#0b0h ;数码管显示 3 LCALL DELAY MOV P0,#0FFH CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#99H ;数码管显示 4 LCALL DELAY MOV P0,#0FFH CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#92H ;数码管显示 5; LCALL DELAY MOV P0,#0FFH CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#82H ; 数码管显示 6 LCALL DELAY MOV P0,#0FFH CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#0f8H ; 数码管显示 7 LCALL DELAY MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#80H ; 数码管显示 8 LCALL DELAY MOV P0,#0FFH LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH ;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8 ;p1.0------------p1.7指示灯依次点亮 CLR P2.1 ;选中p2.2 数码管左边的8字使能 CLR P2.3 ;选中p2.3 数码管左边的8字使能 SETB P2.0 ;选中p2.0 不使能。 右边的数码管消隐 SETB P2.2 ;选中p2.1 不使能。 右边的数码管消隐 MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.0 MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.1 MOV P0,#0a4h ;数码管显示 2 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.2 MOV P0,#0b0h ;数码管显示 3 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.3 MOV P0,#99H ;数码管显示 4 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.4 MOV P0,#92H ;数码管显示 5; LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.5 MOV P0,#82H ; 数码管显示 6 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.6 MOV P0,#0f8H ; 数码管显示 7 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.7 MOV P0,#80H ; 数码管显示 8 LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH MOV P0,#0FFH MOV P1,#0FFH ;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮; ;同时p1口的灯流动显示: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 LCALL DELAY ;延时 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 LCALL DELAY ;延时 CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 LCALL DELAY ;延时 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 LCALL DELAY ;延时 CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 LCALL DELAY ;延时 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 LCALL DELAY ;延时 CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 LCALL DELAY ;延时 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 LCALL DELAY ;延时 CLR P2.0 ;选中p2.0 数码管左边的8字使能 CLR P2.1 ;选中p2.1 数码管左边的8字使能 CLR P2.2 ;选中p2.0 数码管左边的8字使能 CLR P2.3 ;选中p2.1 数码管左边的8字使能 MOV P0,#80H ; 数码管显示 8 LCALL DELAY ;延时 MOV P0,#0FFH ;0ffh 送p0口,数码管清除 CLR P1.7 ;点亮p1.0发光管 CLR P1.6 ;点亮p1.0发光管 MOV P0,#0f8H ; 数码管显示 7 LCALL DELAY ;延时 MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 MOV P0,#82H ; 数码管显示 6 LCALL DELAY ;延时 MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 MOV P0,#92H ;数码管显示 5; LCALL DELAY ;延时 MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 MOV P0,#99H ;数码管显示 4 LCALL DELAY MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 MOV P0,#0b0h ;数码管显示 3 LCALL DELAY MOV P0,#0FFH CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 MOV P0,#0a4h ;数码管显示 2 LCALL DELAY MOV P0,#0FFH CLR P1.0 ;点亮p1.0发光管 MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1 CLR P2.6 MOV P0,#0FFH CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 CLR P2.6 MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0 LCALL DELAY SETB P2.6 MOV P0,#0FFH LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH AJMP LOOP; 注意: 程序运行到此跳转到开始标号,重复执行: DELAY: ;延时子程序;参考前面的教程: CLR P2.4 ;注意小喇叭在3.3口, 这里可以使小喇叭发出嗒,嗒声 MOV R7,#255 NOP NOP D1:MOV R6,#255 setb p2.4 D2: DJNZ R6,D2 clr p2.4 DJNZ R7,D1 SETB P2.4 RET END 哈哈,这办法很笨吧,不过对初学者还是有用的
郑州火车站中州商场3楼北厅3438号 电话:0371--66987238 13733178417 |