![]() |
![]() |
欢迎来到51单片机学习网www.51c51.com 专业致力于8051单片机编程技术推广,(深圳学林电子有限公司)累计5年点击超过500万! | |
| 系列试验之 手把手单片机入门教程 51单片机学习网版权所有 未经同意不得转载 | 第一个试验:点亮一个发光管 | 第七个试验: |
| 第二个试验:闪烁的发光管 | 第八个试验:小键盘控制的数字显示 | |
| 第三个试验:认识声音 | 第九个试验:小键盘控制的花样彩灯 | |
| 第四个试验:小喇叭发出救护车的声音 | 第十个试验:100位计数器 | |
| 第五个试验:跟我学作加减乘除法 | 第十一个试验:试验14-通信 | |
| 第六个试验:认识数码管 | 第十二个试验:单片机唱歌---“祝你平安” | |
| 部分章节摘自平凡教程)广大用户如有更多编写好的应用源程序欢迎投稿! | ||
|
试验7
该程序运行结果为个位数码管轮流现实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, 依次点亮然后轮流点亮 小喇叭不停发出滴答声: 数码管显示数字 注意0为点亮
1 为灭
代码表的意思和方法参照前面的教程; 注意0为点亮 1 为灭然后我们可以把代码送到P0口,就可以是数码管显示需要的数字; 当然, 必须有位选,因为我们的实验板是动态扫描数码管, 两个8的位选分别是P2.6 P2.7. LOOP: ; 标号 CLR P2.6 ;选中p2.6 数码管左边的8字使能 SETB P2.7 ;p2.7不使能。 右边的数码管消隐 MOV P0,#28H ;把28h送p0口;数码管显示 0 LCALL DELAY ;延时 MOV P0,#0FFH ;0ffh 送p0口,数码管清除 CLR P1.0 ;点亮p1.0发光管 MOV P0,#7EH ;把7eh送p0口;数码管显示 1 LCALL DELAY MOV P0,#0FFH
CLR P1.1 ;点亮p1.0发光管 CLR P1.0 ;点亮p1.0发光管 MOV P0,#0A2H ;数码管显示 2 LCALL DELAY MOV P0,#0FFH CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#62H ;数码管显示 3 LCALL DELAY MOV P0,#0FFH
CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#74H ; ;数码管显示 4 LCALL DELAY MOV P0,#0FFH CLR P1.4 CLR P1.3 CLR P1.2 CLR P1.1 CLR P1.0 MOV P0,#61H ;数码管显示 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,#21H ; 数码管显示 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,#7AH ; 数码管显示 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,#20H ; 数码管显示 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指示灯依次点亮 SETB P2.6 ; 左边的8消隐 CLR P2.7 ;选中p2.7 数码管右边的8字使能 ,; MOV P0,#28H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH
CLR P1.0 MOV P0,#7EH LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.1 MOV P0,#0A2H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.2 MOV P0,#62H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.3 MOV P0,#74H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.4 MOV P0,#61H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.5 MOV P0,#21H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.6 MOV P0,#7AH LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH CLR P1.7 MOV P0,#20H LCALL DELAY MOV P0,#0FFH MOV P1,#0FFH MOV P0,#0FFH MOV P1,#0FFH ;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮; ;同时p1口的灯流动显示: AJMP LOOP; 注意: 程序运行到此跳转到开始标号,重复执行: DELAY: ;延时子程序;参考前面的教程: CLR P3.3 ;注意小喇叭在3.3口, 这里可以使小喇叭发出嗒,嗒声 MOV R7,#255 NOP NOP D1:MOV R6,#255 setb p3.3 D2: DJNZ R6,D2 clr p3.3 DJNZ R7,D1 SETB P3.3 RET END |