1、1第第5讲讲 软件设计软件设计-数码管控制数码管控制n书本第5章(P91-92)本讲内容:介绍单片机控制数码管的硬件与软件介绍单片机控制数码管的硬件与软件用Proteus画出单片机控制数码管的硬件图。软件设计框图。软件设计。观察观察:学会系统设计,特别是软件设计的细节编程实例实例:完成对单个、多个数码管的仿真设计。2共阴极连接共阴极连接数码管介绍数码管介绍3Proteus中的数码管中的数码管共阳极共阳极7SEG-MPX1-CA共阴极共阴极7SEG-MPX1-CC数字形式的编码数字形式的编码?4十六进制数字型代码表十六进制数字型代码表思考:y、J、L、H的编码?5讨论讨论n如何判断数码管的对应引
2、脚?n画出单片机控制一个共阳极数码管的电路图。6程序设计程序设计n比较:比较:控制LED设计 控制数码管设计(1)一个)一个LED VS 某一数位:某一数位:复述:P1控制一个LED闪烁的程序结构问题:如果改成控制数码管的某个数位?7程序设计程序设计n比较:比较:控制LED设计 控制数码管设计(2)多个)多个LED VS 多个数位:多个数位:复述:P1控制一个LED跑马灯的程序结构问题:如果改成控制数码管的多个数位?8程序设计程序设计n比较:比较:控制LED设计 控制数码管设计(3)多个)多个LED VS 多个数位(查表方式)多个数位(查表方式):复述:P1控制一个LED闪烁的程序结构问题:如
3、果改成控制数码管的某个数位?9实验实验n1、用Proteus设计:单片机P1口控制一个共阳极数码管的电路n2、编写程序:(1)控制一个7SEG的一个数位的闪烁;(2)从09、A、B、C、D、E、F的循环显示;思考:可以显示其它哪些字母?思考:可以显示其它哪些字母?10前面的程序设计的答案前面的程序设计的答案11程序设计对比分析程序设计对比分析一个共阳数码管一个码位的闪烁程序n ORG 0000HnSTART:MOV P1,#0C0Hn ACALL DELAYn MOV P1,#0FFHn ACALL DELAYn SJMP STARTnDELAY:MOV R4,#0FFHnD1:MOV R5,
4、#0FFHn DJNZ R5,$n DJNZ R4,D1n RETn END一个LED的闪烁程序n ORG 0000HnSTART:MOV P1,#0FEHn ACALL DELAYn MOV P1,#0FFHn ACALL DELAYn SJMP STARTnDELAY:MOV R4,#0FFHnD1:MOV R5,#0FFHn DJNZ R5,$n DJNZ R4,D1n RETn END12一个共阳数码管显示数码的程序n ORG 0000HnSTART:MOV P1,#0C0Hn ACALL DELAYn MOV P1,#0F9Hn ACALL DELAY n SJMP STARTnDE
5、LAY:MOV R4,#0FFHnD1:MOV R5,#0FFHn DJNZ R5,$n DJNZ R4,D1n RETn ENDLED跑马灯的程序(1)n ORG 0000HnSTART:MOV P1,#0FEHn ACALL DELAYn MOV P1,#0FDHn ACALL DELAYn n SJMP STARTnDELAY:MOV R4,#0FFHnD1:MOV R5,#0FFHn DJNZ R5,$n DJNZ R4,D1n RETn END程序设计对比分析程序设计对比分析13一个共阳数码管显示数码的程序(查表)ORG 0000HSTART:MOV DPTR,#TABST1:CLR
6、 AST2:MOVC A,A+DPTRCJNE A,#0FFH,SEG7SJMP STARTSEG7:MOV P1,AACALL DELAYSJMP ST1DELAY:MOV R7,#0FFHD1:MOV R6,#0FFHD2:DJNZ R6,D2DJNZ R7,D1RETTAB:DB 0C0H,0F9H,0A4H DB 0FFHENDLED跑马灯的程序(查表)ORG 0000HSTART:MOV DPTR,,#TABST1:CLR AST2:MOVC A,A+DPTRCJNE A,#0FFH,SEG7SJMP STARTSEG7:MOV P1,AACALL DELAYSJMP ST1DELAY:MOV R7,#0FFHD1:MOV R6,#0FFHD2:DJNZ R6,D2DJNZ R7,D1RETTAB:DB 11111110B.DB 0FFHEND程程序序设设计计:对对比比分分析析1415更复杂的问题更复杂的问题n如何控制多个数码管:2个、4个?