任务要求:?单片机的I/O口作输出口,接8个LED发光二极管,通过编程实现发光二极管的点亮、闪烁和流水灯效果。 1.?硬件电路制作?:(1)电路原理图 (2)制作要点及元器件清单 3)电路的调试 通电之前,先用万用表检查各种电源线与地线之间是否有短路现象。 然后给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值、接地端电压是否为0V。 在不插上单片机时,模拟单片机输出低电平,检查相应的外部电路是否正常。方法是:用一根导线将低电平(接地端)分别引到P1.0到P1.7相对应的集成电路插座的管脚上,观察相应的发光二极管是否正常发光。 2.程序编写 (1)发光二极管的点亮 欲点亮某只二极管,只需使与之相连的口线输出低电平即可。点亮从高位到低位的第1、3、5、7只二极管,实现的方法有字节操作和位操作两种。?方法一(字节操作):?ORG 0000H ;复位入口地址LJMP MAIN ;转移到主程序MAINMAIN: MOV P1,#55H ;将立即数55H(即二进制数01010101B)送到P1口?LJMP MAIN ;循环执行主程序 (2)发光二极管的闪烁?欲使某位二极管闪烁,可先点亮该位,再熄灭,然后循环。?方法二(位操作):?ORG 0000H?;复位入口地址LJMP MAIN?;转移到主程序MAINMAIN: CPL P1.7?;P1.7取反?LCALL DELAY?;调延时子程序?LJMP MAIN?;循环执行主程序DELAY:MOV R0,#0FFH?;延时子程序?LOOP2:MOV R1,#0FFHLOOP1:DJNZ R1,LOOP1?DJNZ R0,LOOP2?RET (3)流水灯效果?ORG 0000H ;复位入口地址?LJMP START ;转移到程序初始化部分START?START: MOV A,#7FH ;初始化A值,使最高位为“0”?MAIN: MOV P1,A ;A值送P1口?LCALL DELAY ;调延时子程序?RR A ;循环右移?LJMP MAIN ;循环执行主程序?DELAY: MOV R0,#0FFH ;延时子程序?LOOP2: MOV R1,#0FFH?LOOP1: DJNZ R1,LOOP1?DJNZ R0,LOOP2?RET |
|
来自: 2457274631 > 《科技》