1、单片机基本训练霓虹灯控制学习情境学习情境1.4单片机基本训练做什么?利用单片机制作一个模拟霓虹灯的控制系利用单片机制作一个模拟霓虹灯的控制系统,实现不同模式下的霓虹灯显示控制。统,实现不同模式下的霓虹灯显示控制。单片机基本训练基本任务基本任务1 1:实现八个发光二极管亮灭闪烁的显示效果实现八个发光二极管亮灭闪烁的显示效果单片机基本训练跟我做跟我做1-画出硬件电路图画出硬件电路图 你能说出你能说出P1P1口是什口是什么电平点灯吗?么电平点灯吗?单片机基本训练跟我做跟我做2-准备器件、焊板准备器件、焊板 元件名称元件名称参数参数数量数量元件名称元件名称参数参数数量数量插座插座DIP40DIP401
2、 1按键按键1 1单片机单片机89C5189C511 1电阻电阻4704701 1电阻电阻1K1K8 8电解电容电解电容2222f f1 1发光二极管发光二极管电源电源直流直流+5V+5V8 81 1晶体振荡器晶体振荡器瓷片电容瓷片电容6M6M或或12M12M20pf20pf、33pf33pf1 12 2单片机基本训练单片机基本训练跟我做跟我做3-用实验板来连接线路用实验板来连接线路 A01A01A06A06连接连接1 1+5V+5V+5V+5V连接连接2 2GNDGNDGNDGND连接连接3 3P1.0-P1.7P1.0-P1.7LED1-LED8LED1-LED8单片机基本训练跟我做跟我做
3、4-编写控制程序编写控制程序ORG 0000HSTART:MOV P1,#00HACALL DELAYMOV P1,#0FFH ACALL DELAYSJMP STARTDELAY:MOV R3,#0FFHDEL2:MOV R4,#0FFHDEL1:NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END;点亮;点亮8个个LED;熄灭;熄灭8个个LED;调用延时子程序;调用延时子程序此此DELAYDELAY子程序的延子程序的延时时间是多长?时时间是多长?单片机基本训练源程序:源程序:指令周期指令周期DELAY:MOV R3,#(X )H 1个个T机器机器 DEL2:MOV R
4、4,#(Y )H 1个个T机器机器 DEL1:NOP 1个个T机器机器 NOP 1个个T机器机器 DJNZ R4,DEL1 2 个个T机器机器 DJNZ R3,DEL2 2个个T机器机器 RET上段程序中延时时间为上段程序中延时时间为(1+1+2)255 255 1s=260.1ms(1+1+2)X Y T机器机器 你可以将你可以将DELAYDELAY延延时子程序执行时间时子程序执行时间修改为修改为1 1秒吗?秒吗?设晶振频率为设晶振频率为12MHz,则,则T机器机器=1s单片机基本训练基本任务基本任务2 2:从从P1.0P1.0到到P1.7P1.7依次循环点亮一个依次循环点亮一个LEDLED
5、 完成这个任务,硬完成这个任务,硬件需要修改吗?件需要修改吗?单片机基本训练P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 RL A循循环环8次次你可以编写出你可以编写出这个循环结构这个循环结构的程序吗?的程序吗?跟我做跟我做1-程序分析程序分析单片机基本训练跟我做跟我做2-设计程序流程图设计程序流程图YN显示
6、模式字左移1位次数-1=0延时开始设循环次数设循环初值显示模式字送P1口8次次#0FEHACALL DELAYRL ADJNZ Rn,rel单片机基本训练 ORG 0000HSTART:MOV R2,#08H MOV A,#0FEHNEXT:MOV P1,A ACALL DELAY RL A DJNZ R2,NEXT SJMP STARTDELAY:RET END 跟我做跟我做3-编写控制程序编写控制程序单片机基本训练进阶任务:进阶任务:任意模式霓虹灯显示任意模式霓虹灯显示 各显示模式字之间无任各显示模式字之间无任何变化规律,无法采用何变化规律,无法采用移位指令和循环结构的移位指令和循环结构的
7、程序来实现。应该采用程序来实现。应该采用什么结构的程序呢?什么结构的程序呢?单片机基本训练 ORG 0000H MOV P1,#00H ;灭灯;灭灯 MOV R2,#5 ;循环;循环5遍遍DP0:MOV R3,#8 ;每遍;每遍8个状态个状态 MOV DPTR,#TAB ;取表基址;取表基址 MOV R0,#0 ;取表变址;取表变址 DP1:MOV A,R0 ;变址送;变址送A MOVC A,A+DPTR ;查控制码;查控制码 MOV P1,A ;控制码送;控制码送P1口亮灯口亮灯 ACALL DELAY ;延时;延时 INC R0 ;修改地址指针;修改地址指针 DJNZ R3,DP1 ;查;查8个状态个状态 DJNZ R2,DP0 ;查;查5遍遍 MOV P1,#00H ;灭灯;灭灯 SJMP$DELAY:RET TAB:DB 81H,42H,24H,18H,18H,24H,42H,81H END