ledplc数码管0到9循环显示循环三次体形图怎么做

四位七段LED数码管显示如上图 单片机要那些脚输出才可以使数码管显示1234如何让他的个位和十位同时显示2个不同的字 比如显示数字17要怎么控制引
循环{P1输出 1 的编码,13脚打开,延时;P1输出 2 的编码,12脚打开,延时;P1输 出 3 的编码,11脚打开,延时;P1输出 4 的编码,10脚打开,延时;}
为您推荐:
其他类似问题
扫描下载二维码浏览:650次
评论:0条 &时间:
(4)S7-300PLC改造Z3040钻床控制线路的程序设计说明
程序段1为主轴电动机M1启动与停止..8454人阅读
任务一、1位LED数码管的显示
一、学习目标
1、了解七段LED数码管的结构、分类以及数码管的显示码。
2、学习1位LED数码管静态显示与动态显示的编程方法。
二、相关知识
1、七段LED数码管:
LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果以及输入输出信号的状态。
①LED数码管的结构:
LED数码管是由8个发光二极管中的7个长条形发光二极管(俗称7笔段)
按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管dp放在右下方,用来显示小数点,如图3-1-1(a)所示。只要控制7笔段按一定的要求亮与灭,就能显示出十六进制0~F。
&& (a)&&&&&&&&&&& (b)&&&&&&&&&&&&&& (c)&&&&&&&&
&&&&&&&&&&& 图3-1-1 LED数码管的结构&&&&&&&&&&&&&& 3-1-2 LED引脚
LED数码管按内部连接方式又分为“共阳极数码管”和“共阴极数码管”两种。若8个发光二极管的阳极连在一起接电源正极为共阳极数码管,如图3-1-1(b)所示。若8个发光二极管的阴极连在一起接地则为共阴极数码管,如图3-1-1(c)图所示。下文如不特别说明,所用LED数码管都为共阴极数码管。
共阴极数码管的引脚如图3-1-2所示,共有10只引脚,其中3、8引脚连通,作为公共端接地。
②数码管显示码:
数码管显示码是表述二进制数与数码管所显示字符的对应关系的。如表
3-1-3所示。
表3-1-3数码管显示码
2、一位LED数码管静态显示“6”
①硬件电路如图3-1-4所示。&&&&&&&&&&&&&&&
图3-1-4 1位LED数码管显示电路图
为了保证LED数码管的正常运行,必须在连接P0口的基础上,各位串联一限流电阻R,阻值可取360。LED数码管的公共端通过限流电阻接P1.0,由P1.0的信号来选通LED数码管,当P1.0=0数码管选通,当P1.0=1数码管未选通。
②程序流程图如图3-1-5所示:
图3-1-5 程序流程图
③程序清单:“一位LED数码管静态显示6.a”
:选通个位数码管
存入表的起始地址
将欲显示的数字存入
按地址取代码并存入
将代码送转变数字显示
程序运行在当前状态
3、一位LED数码管动态循环显示0~9。
①硬件电路如图3-1-4所示。
②程序流程图:
图3-1-6& 程序流程图
③程序清单:“一位LED数码管动态循环显示0~9.a”
:选通个位数码管
设定初始值
调延时程序存表取表
值加
不是,循环
重新开始判断循环
;程序结束
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“一位LED数码管静态显示6.a”以及“一位LED数码管动态循环显示0~9.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭,点击RUN按钮 运行程序,观察LED数码管静态显示6以及动态循环显示0~9的情况。
任务二、2位LED数码管的显示
一、学习目标
1、学习2位LED数码管静态显示与动态显示的编程方法。
二、相关知识
1、两位LED数码管静态显示“34”。
①硬件电路如路3-2-1所示:
图3-2-1两位数码管显示电路
图中需注意上述两位LED数码管,他们的公共端通过限流电阻连接P2.0及P2.1。由P2.0与P2.1的信号来选通个位或十位LED数码管。
②程序流程如图3-2-2所示:
先选通个位
送的字形码
再选通十位
送的字形码
图3-2-2 程序流程图
③程序清单:“两位LED数码管静态显示3、4.a”
:存入查表启始地址
:设导通频率次
:个位数显示
调显示子程序
;开个位显示
调延时程序
关闭个位显示
调取表显示子程序
开十位显示
调延时程序十位
关闭十位显示
次没完,继续循环
取表子程序
P2.0=0时,与其相连的共阳极数码管显示器开始工作。P2.0=1时,与其相连的数码管显示器停止工作。同理,当P2.1=0时,与其相连的共阳极数码管显示器开始工作。P2.1=1时,与其相连的数码管显示器停止工作。
本程序采用了扫描方式,采描方式是指让两位数码管轮流工作,即个位显示时,十位关闭;十位显示时,个位关闭。这样做的目的一是省电,二是节省输出端口。在静态显示时,一个端口只能接一个数码管。而利用扫描方式一个端口可以接几个数码管,并由数码管公共阴极的P2.0与P2.1的信号来决定哪只数码管显示。
两位数码管是轮流工作的,可是人眼却感到同时在亮,这是由于人眼的视觉暂留,只要足够快,就能形成同时亮的感觉。
数码管显示的亮度及清晰度与每位点亮时间和每位显示的时间内轮换导通次数有关。
2、两位数码管动态循环显示00~99。
①硬件电路如路3-2-1所示:&&&&&&&&&&&&&&&&&&&&&&
②程序流程如图3-2-3所示:
图3-2-3 程序流程图
③程序清单:“两位数码管动态循环显示00~99.a”
:初始化计数器
存入查表启始地址
:调显示子程序
进制换成进制
÷商存余数存
内存放十位数
内存放个位数
设导通频率次
:个位数显示
调显示子程序
;开个位显示
调延时程序
关闭个位显示
调取表显示子程序
开十位显示
调延时程序十位
关闭十位显示
次没完,继续循环
取表子程序
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“两位LED数码管静态显示“34”.a”以及“两位数码管动态循环显示00~99.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭,点击RUN按钮 运行程序,观察2位LED数码管静态显示34以及动态循环显示00~99的情况。
任务三、6位LED数码管的显示
一、学习目标
1、学习6位LED数码管静态显示的编程方法。
二、相关知识
1、6位LED数码管恒定显示“123456”
①硬件电路如图6-3-1所示:
图6-3-1 6位LED数码管恒定显示电路
单片机的P0端口通过限流电阻接6位LED数码管,每个数码管的段线并联在一起,由P0口控制。每个LED数码管的公共端(位选端)由P1.0、P1.1、P1.2、P1.3、P1.4、P1.5控制。当P1.5=0时,选通个位LED数码管,当P1.4=0时,选通十位LED数码管,以此类推,一直到当P1.0=0时,选通十万位LED数码管。
②程序流程如图6-3-2所示:
送的字形码
送的字形码
送的字形码
送的字形码
送的字形码
选通十万位
送的字形码
图6-3-2 程序流程图
③程序清单:“6位LED数码管恒定显示“1、2、3、4、5、6.a”
:存入查表启始地址
:设导通频率次
:个位数显示
调显示子程序
;开个位显示
调延时程序
关闭个位显示
调取表显示子程序
开十位显示
调延时程序十位
关闭十位显示
调取表显示子程序
开百位显示
调延时程序百位
关闭百位显示
调取表显示子程序
开千位显示
调延时程序千位
关闭千位显示
调取表显示子程序
开万位显示
调延时程序万位
关闭万位显示
取十万位数
调取表显示子程序
开十万位显示
调延时程序十万位
关闭十万位显示
次没完,继续循环
取表子程序
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
教学设计:LED数码管的显示
任务一、1位LED数码管的显示
一、学习目标
1、了解七段LED数码管的结构、分类以及数码管的显示码。
2、学习1位LED数码管静态显示与动态显示的编程方法。
二、相关知识
1、七段LED数码管:
LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果以及输入输出信号的状态。
①LED数码管的结构:
LED数码管是由8个发光二极管中的7个长条形发光二极管(俗称7笔段)
按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管dp放在右下方,用来显示小数点,如图3-1-1(a)所示。只要控制7笔段按一定的要求亮与灭,就能显示出十六进制0~F。
&& (a)&&&&&&&&&&& (b)&&&&&&&&&&&&&& (c)&&&&&&&&
&&&&&&&&&&& 图3-1-1 LED数码管的结构&&&&&&&&&&&&&& 3-1-2 LED引脚
LED数码管按内部连接方式又分为“共阳极数码管”和“共阴极数码管”两种。若8个发光二极管的阳极连在一起接电源正极为共阳极数码管,如图3-1-1(b)所示。若8个发光二极管的阴极连在一起接地则为共阴极数码管,如图3-1-1(c)图所示。下文如不特别说明,所用LED数码管都为共阴极数码管。
共阴极数码管的引脚如图3-1-2所示,共有10只引脚,其中3、8引脚连通,作为公共端接地。
②数码管显示码:
数码管显示码是表述二进制数与数码管所显示字符的对应关系的。如表
3-1-3所示。
表3-1-3数码管显示码
2、一位LED数码管静态显示“6”
①硬件电路如图3-1-4所示。&&&&&&&&&&&&&&&
图3-1-4 1位LED数码管显示电路图
为了保证LED数码管的正常运行,必须在连接P0口的基础上,各位串联一限流电阻R,阻值可取360。LED数码管的公共端通过限流电阻接P1.0,由P1.0的信号来选通LED数码管,当P1.0=0数码管选通,当P1.0=1数码管未选通。
②程序流程图如图3-1-5所示:
图3-1-5 程序流程图
③程序清单:“一位LED数码管静态显示6.a”
START:& CLR&&& P1.0&&&&&&&&&&& ; &选通个位LED数码管
MOV&& DPTR, #TABLE& ; &存入表的起始地址
MOV&& A, #6&&&&&&&&&& ;& 将欲显示的数字6存入A
&&&&&&&& &MOVC& A, @A+DPTR&& ; &按地址取代码并存入A
&&&&&& &MOV&& P0, A&&&&&&&& &&;& 将代码送P0转变数字显示
&&&&&& &SJMP&& &$&&&&&&&&&&& &;& 程序运行在当前状态
TABLE: &DB& 3FH, &06H,& 5BH,& 4FH&
&&& &&&&DB& 66H,& 6DH,& 7DH,& 07H&
&& &DB& 7FH,& 6FH,& 77H,& 7CH&&
DB& 39H, &5EH, &79H,& 71H& ;代码表
END&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&
3、一位LED数码管动态循环显示0~9。
①硬件电路如图3-1-4所示。
②程序流程图:
图3-1-6& 程序流程图
③程序清单:“一位LED数码管动态循环显示0~9.a”
START: CLR&&&& P1.0&&&&&&&&&&&& ;选通个位LED数码管
MOV&&& DPTR, #TABLE &&&; 存表
&& MOV& &&R0, #0&&&&&&&& &&&; 设定初始值
LOOP : MOV&&& A, R0&&&&&&&&& &&&
&&&&&&& MOVC&& A, @A+DPTR&& &&; 取表代码
&&&& &MOV&&& &P0, A&&&&&&&&& &&; 送P0输出&&&&&&
&&&&&&& &ACALL& &DLY1S&&&&&&& &&&; 调延时程序&&& &&&&&&&&&&&&&&&&&存表取表&
&&&&&& INC&&& &&R0&&&&&&&&&& &&&&; R0值 加1&&&&&&
&&&&&&&& CJNE&&& R0, #10 , LOOP &&&&; 不是10,循环
&&&&&&& JMP&& &&START&&&&&&&& &&&; 重新开始&&&&& &&&&&&&&&&&&&&&&&判断循环
DLY1S: MOV&&& R5, #50&&&&& &&&&&&;
D1:&& &&MOV&&& R6, #100&&&&&&&&& &;
D2:&&& &MOV&&& R7, #100&&&&&&&&& &;
&&& &DJNZ&&& R7, $&&&&&&&&&&&& &;
&&&& &DJNZ&&& R6, D2&&&&&&&&&&& &;
&&&&& &DJNZ&&& R5, D1&&&&&&&&&&& &;&&&&&&&&&&&&&& &&&&&&&&&&&&&&&1秒延时
&&& RET&&&&&&&&&&&&&&&&&&&& &&&;&& &&&&&&&&&&&&&&&&&&&&&&&&&&子程序
TABLE: DB& 3FH, &06H,& 5BH,& 4FH&
&&&&& &DB& 66H,& 6DH,& 7DH,& 07H&
&& DB& 7FH,& 6FH,& 77H,& 7CH&&
DB& 39H, &5EH, &79H,& 71H& ;&&&&&&&&&&&&&&&&&&&&&&&&&&&& 代码表
&&&&&& &&END&&&&&&&&&&&&&&&&&& &&&&&;&&& &&&&&&&&&&&&&&&&&&&&&&&&&程序结束
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“一位LED数码管静态显示6.a”以及“一位LED数码管动态循环显示0~9.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭 ,点击RUN按钮 运行程序,观察LED数码管静态显示6以及动态循环显示0~9的情况。
任务二、2位LED数码管的显示
一、学习目标
1、学习2位LED数码管静态显示与动态显示的编程方法。
二、相关知识
1、两位LED数码管静态显示“34”。
①硬件电路如路3-2-1所示:
图3-2-1两位数码管显示电路
图中需注意上述两位LED数码管,他们的公共端通过限流电阻连接P2.0及P2.1。由P2.0与P2.1的信号来选通个位或十位LED数码管。
②程序流程如图3-2-2所示:
先选通个位
送的字形码
再选通十位
送的字形码
图3-2-2 程序流程图
③程序清单:“两位LED数码管静态显示3、4.a”
&START: &MOV &&&DPTR, #TABLE ;存入查表启始地址&&&&&&&&& &&&&&&&&&&
&DISPLAY:MOV& &&R3, #50&&&&&& ; 设导通频率50次
&LOOP1: &MOV& &&A, &#4 &&&&&&; 个位数显示
&&&&&&&& &&ACALL& CHANG &&&&&; 调显示子程序&&&&&&&&&&&&&&&&&
&&&&&&&& &&CLR&& &&P2.0&&&& &&&&;开个位显示
&&&&&&&&& &ACALL& DLY10mS&&& ; 调延时10ms程序&&&&&&&&& &&&&&
&&&&&& &&&&SETB &&&P2.0&& &&&&&&; 关闭个位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&MOV &&&A, #3&& &&&&&; 取十位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&& &&&&&&&
&&&&&&&&& &CLR&& &&P2.1&&& &&&&&;& 开十位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 十位
&&&&&&&&& &SETB&& &P2.1&&& &&&&&;& 关闭十位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&DJNZ&&& R3, LOOP1 &&; 100次没完,继续循环&&&&&&&&&
&&&&&&&& &&JMP&&&& START&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&&& &&&&
&CHANG: MOVC &&A, @A+DPTR ;
&&&&&&&&& &MOV& &&P0, A&&&&&&& ;&&&&&&&&&&&&&&&&&
&&&&&&&&& &RET&&&&&&&&&&&&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 取表子程序
&DLY10mS:MOV& &&R6, #20&&&&& ;&
&D1:&&& &&MOV& &&R7, #248&&&& ;
&&&&&&&&& &&DJNZ &&&R7, $&&&&&&& ;
&&&&&&&&& &&DJNZ &&&R6, D1& &&&&&;&&&&&&&&&&&& &&&&&&&&&&&&&&&&延时10 m.S&& &&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&&RET&&&&&&&&&&&&&&&&& ;& &&&& &&&&&&&&&&&&&&&&&&&&&&&子程序
TABLE: &DB& 3FH, &06H,& 5BH,& 4FH&
&&&&& &&&DB& 66H,& 6DH,& 7DH,& 07H&
&& &&DB& 7FH,& 6FH,& 77H,& 7CH&&
DB& 39H, &5EH, &79H,& 71H;&&&&&& &&&&&&&&&&&&&&&&代码表&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&END&&&&&&&& &&&&&&&&&&&&&&&&;&&&&&& &&&&&&&&&&&&&&&&程序结束
P2.0=0时,与其相连的共阳极数码管显示器开始工作。P2.0=1时,与其相连的数码管显示器停止工作。同理,当P2.1=0时,与其相连的共阳极数码管显示器开始工作。P2.1=1时,与其相连的数码管显示器停止工作。
本程序采用了扫描方式,采描方式是指让两位数码管轮流工作,即个位显示时,十位关闭;十位显示时,个位关闭。这样做的目的一是省电,二是节省输出端口。在静态显示时,一个端口只能接一个数码管。而利用扫描方式一个端口可以接几个数码管,并由数码管公共阴极的P2.0与P2.1的信号来决定哪只数码管显示。
两位数码管是轮流工作的,可是人眼却感到同时在亮,这是由于人眼的视觉暂留,只要足够快,就能形成同时亮的感觉。
数码管显示的亮度及清晰度与每位点亮时间和每位显示的时间内轮换导通次数有关。
2、两位数码管动态循环显示00~99。
①硬件电路如路3-2-1所示:&&&&&&&&&&&&&&&&&&&&&&
②程序流程如图3-2-3所示:
图3-2-3 程序流程图
③程序清单:“两位数码管动态循环显示00~99.a”
&START: &MOV&& &R0, #0&&&&&& &&;初始化计数器&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&MOV &&&DPTR, #TABLE ;存入查表启始地址
&LOOP:& &ACALL &DISPLAY&&& &&; 调显示子程序
&&&&&&&&& &INC& &&&R0&&&&&&& &&&&; 计数器加1&&&&&&&
&&&&&&& &&&CJNE &&&R0 ,#100, LOOP ; 没到100 循环&&&&
&&&&&&&& &&JMP& &&&START&&& &&&&; 到开始处&&&&&&&&&& &&&&&&&&&&
&DISPLAY:& MOV &&A, R0&&& &&&&&
&&&&&&&& &&MOV& &&B, #10&&& &&&&&; 16进制换成10进制
&&&&&&&& &&DIV &&&&AB&&&&& &&&&&; A÷B商存A,余数存B
&&&&&&&& &&MOV& &&R1, A&&&&& &&&; R1内存放十位数&&&& &&&&&&&&&
&&&&&&&& &&MOV& &&R2, B&&&& &&&&; R2内存放个位数&&&& &&&&&&&&&
&&&&&&&& &&MOV& &&R3, #50&&&&&& ; 设导通频率50次
&LOOP1: &MOV& &&A, &R2& &&&&&; 个位数显示
&&&&&&&& &&ACALL& CHANG &&&&&; 调显示子程序&&&&&&&&&&&&&&&&&
&&&&&&&& &&CLR&& &&P2.0&&&& &&&&;开个位显示
&&&&&&&&& &ACALL& DLY10mS&&& ; 调延时10ms程序&&&&&&&&& &&&&&
&&&&&& &&&&SETB &&&P2.0&& &&&&&&; 关闭个位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&MOV &&&A, R1&& &&&&&; 取十位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P2.1&&& &&&&&;& 开十位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 十位
&&&&&&&&& &SETB&& &P2.1&&& &&&&&;& 关闭十位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&DJNZ&&& R3, LOOP1 &&; 100次没完,继续循环&&&&&&&&&
&&&&&&&& &&RET&&&&&&&&&&&&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&& &&&&&
&CHANG: MOVC &&A, @A+DPTR ;
&&&&&&&&& &MOV& &&P0, A&&&&&&& ;&&&&&&&&&&&&&&&&&
&&&&&&&&& &RET&&&&&&&&&&&&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 取表子程序
&DLY10mS:MOV& &&R6, #20&&&&& ;&
&D1:&&& &&MOV& &&R7, #248&&&& ;
&&&&&&&&& &DJNZ &&&R7, $&&&&&&& ;
&&&&&&&&& &DJNZ &&&R6, D1&&&&&& ;&&&&&&&&&&&& &&&&&&&&&&&&&&&&延时10 m.S&& &&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&RET&&&&&&&&&&&&&&&&& ;& &&&&&& &&&&&&&&&&&&&&&&&&&&&&子程序
TABLE: &DB& 3FH, &06H,& 5BH,& 4FH&
&&&&& &&&DB& 66H,& 6DH,& 7DH,& 07H&
&& &&DB& 7FH,& 6FH,& 77H,& 7CH&&
DB& 39H, &5EH, &79H,& 71H&& ;&&&&&& &&&&&&&&&&&&&&&&代码表&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&END&&&&&&&& &&&&&&&&&&&&&&&&;&&&&&& &&&&&&&&&&&&&&&&程序结束
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“两位LED数码管静态显示“34”.a”以及“两位数码管动态循环显示00~99.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭 ,点击RUN按钮 运行程序,观察2位LED数码管静态显示34以及动态循环显示00~99的情况。
任务三、6位LED数码管的显示
一、学习目标
1、学习6位LED数码管静态显示的编程方法。
二、相关知识
1、6位LED数码管恒定显示“123456”
①硬件电路如图6-3-1所示:
图6-3-1 6位LED数码管恒定显示电路
单片机的P0端口通过限流电阻接6位LED数码管,每个数码管的段线并联在一起,由P0口控制。每个LED数码管的公共端(位选端)由P1.0、P1.1、P1.2、P1.3、P1.4、P1.5控制。当P1.5=0时,选通个位LED数码管,当P1.4=0时,选通十位LED数码管,以此类推,一直到当P1.0=0时,选通十万位LED数码管。
②程序流程如图6-3-2所示:
送的字形码
送的字形码
送的字形码
送的字形码
送的字形码
选通十万位
送的字形码
图6-3-2 程序流程图
③程序清单:“6位LED数码管恒定显示“1、2、3、4、5、6.a”
START: &MOV &&&DPTR, #TABLE ;存入查表启始地址&&&&&&&&& &&&&&&&&&&
&DISPLAY:MOV& &&R3, #50&&&&&& ; 设导通频率50次
&LOOP1: &MOV& &&A, &#6 &&&&&&; 个位数显示
&&&&&&&& &&ACALL& CHANG &&&&&; 调显示子程序&&&&&&&&&&&&&&&&&
&&&&&&&& &&CLR&& &&P1.5&&&& &&&&;开个位显示
&&&&&&&&& &ACALL& DLY10mS&&& ; 调延时10ms程序&&&&&&&& &&&&&
&&&&&& &&&&SETB &&&P1.5&& &&&&&&; 关闭个位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
MOV &&&A, #5&& &&&&&; 取十位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P1.4&&& &&&&&;& 开十位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 十位
&&&&&&&&& &SETB&& &P1.4&&& &&&&&;& 关闭十位显示
MOV &&&A, #4&& &&&&&; 取百位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P1.3&&& &&&&&;& 开百位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 百位
&&&&&&&&& &SETB&& &P1.3&&& &&&&&;& 关闭百位显示
MOV &&&A, #3&& &&&&&; 取千位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P1.2&&& &&&&&;& 开千位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 千位
&&&&&&&&& &SETB&& &P1.2&&& &&&&&;& 关闭千位显示&&&&&&&&&&&&&&&&&&&&&&&&&&&
MOV &&&A, #2&& &&&&&; 取万位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P1.1&&& &&&&&;& 开万位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 万位
&&&&&&&&& &SETB&& &P1.1&&& &&&&&;& 关闭万位显示
&&&&&&&&&& MOV &&&A, #1&& &&&&&; 取十万位数
&&&&&&&& &&ACALL& CHANG&&&& &; 调取表显示子程序&&&&&&&&&&&&&
&&&&&&&&& &CLR&& &&P1.0&&& &&&&&;& 开十万位显示
&&&&&&& &&&ACALL& DLY10mS&&& ; 调延时10ms程序& 十万位
&&&&&&&&& &SETB&& &P1.0&&& &&&&&;& 关闭十万位显示
&&&&&&&& &&DJNZ&&& R3, LOOP1 &&; 100次没完,继续循环&&&&&&&&&
&&&&&&&& &&JMP&&&& START&&&&& &;&&&&&&&&&&&&&&&&&&&&&&&& &&&&
&CHANG: MOVC &&A, @A+DPTR ;
&&&&&&&&& &MOV& &&P0, A&&&&&&& ;&&&&&&&&&&&&&&&&&
&&&&&&&&& &RET&&&&&&&&&&&&&&&&& ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 取表子程序
&DLY10mS:MOV& &&R6, #20&&&&& ;&
&D1:&&& &&MOV& &&R7, #248&&&& ;
&&&&&&&&& &DJNZ &&&R7, $&&&&&&& ;
&&&&&&&&& &DJNZ &&&R6, D1&&&&&& ;&&&&&&&&&&&& &&&&&&&&&&&&&&&&延时10 m.S&& &&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&RET&&&&&&&&&&&&&&&&& ;& &&&&&& &&&&&&&&&&&&&&&&&&&&&&子程序
TABLE: &DB& 3FH, &06H,& 5BH,& 4FH&
&&&&& &&&DB& 66H,& 6DH,& 7DH,& 07H&
&& &&DB& 7FH,& 6FH,& 77H,& 7CH&&
DB& 39H, &5EH, &79H,& 71H&& ;&&&&&& &&&&&&&&&&&&&&&&代码表&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& &&END&&&&&&&& &&&&&&&&&&&&&&&&;&&&&&& &&&&&&&&&&&&&&&&程序结束
三、实践操作:
用THDPJ-3型单片机开发综合实验箱完成单片机软硬件系统的调试。
(1)使用单片机最小应用系统。打开该模块电源,用扁平数据线连接单片机P0口与八位动态数码管段码模块,用扁平数据线连接单片机P1口与八位动态数码管位码模块。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“6位LED数码管恒定显示“1、2、3、4、5、6.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭 ,点击RUN按钮 运行程序,观察6位LED数码管静态显示123456的情况。
(2)将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源,
此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。
(3)把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着分别添加“6位LED数码管恒定显示“1、2、3、4、5、6.a”源程序,进行编译,直到编译无误。
(5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭。
(6)打开模块电源和总电源,点击开始调试按扭,点击RUN按钮 运行程序,观察6位LED数码管静态显示123456的情况。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:391457次
积分:4853
积分:4853
排名:第3434名
原创:116篇
转载:45篇
评论:83条
(1)(3)(2)(11)(2)(2)(5)(7)(1)(2)(4)(13)(6)(2)(2)(6)(1)(13)(3)(4)(3)(5)(15)(15)(9)(24)

我要回帖

更多关于 32led心形循环灯制作 的文章

 

随机推荐