⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 动态扫描显示接口.htm

📁 单片机快速入门
💻 HTM
📖 第 1 页 / 共 2 页
字号:
lang=ZH-CN face=宋体>和</FONT><FONT lang=ZH-CN face=System,黑体>5BH</FONT></P><FONT 
lang=ZH-CN face=System,黑体>
<P align=justify>ORG 0000H</P>
<P align=justify>AJMP START</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>ORG 000BH ;</FONT><FONT 
lang=ZH-CN face=宋体>定时器</FONT><FONT lang=ZH-CN face=System,黑体>T0</FONT><FONT 
lang=ZH-CN face=宋体>的入口</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>AJMP DISP ;</FONT><FONT lang=ZH-CN face=宋体>显示程序</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>ORG 30H</FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>START:</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV SP,#5FH ;</FONT><FONT 
lang=ZH-CN face=宋体>设置堆栈</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV P1,#0FFH</FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>MOV P0,#0FFH</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV P2,#0FFH ;</FONT><FONT 
lang=ZH-CN face=宋体>初始化,所显示器,</FONT><FONT lang=ZH-CN 
face=System,黑体>LED</FONT><FONT lang=ZH-CN face=宋体>灭</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV TMOD,#00000001B ;</FONT><FONT lang=ZH-CN 
face=宋体>定时器</FONT><FONT lang=ZH-CN face=System,黑体>T0</FONT><FONT lang=ZH-CN 
face=宋体>工作于模式</FONT><FONT lang=ZH-CN face=System,黑体>1</FONT><FONT lang=ZH-CN 
face=宋体>(</FONT><FONT lang=ZH-CN face=System,黑体>16</FONT><FONT lang=ZH-CN 
face=宋体>位定时</FONT><FONT lang=ZH-CN face=System,黑体>/</FONT><FONT lang=ZH-CN 
face=宋体>计数模式)</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV TH0,#HIGH(65536-2000)</FONT></P><FONT lang=ZH-CN 
face=System,黑体>
<P align=justify>MOV TL0,#LOW(65536-2000)</P>
<P align=justify>SETB TR0</P>
<P align=justify>SETB EA</P>
<P align=justify>SETB ET0</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV Counter,#0 ;</FONT><FONT 
lang=ZH-CN face=宋体>计数器初始化</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV DISPBUFF,#0 ;</FONT><FONT lang=ZH-CN 
face=宋体>第一位始终显示</FONT><FONT lang=ZH-CN face=System,黑体>0</FONT></P><FONT 
lang=ZH-CN face=System,黑体>
<P align=justify>MOV A,#0</P>
<P align=justify>LOOP: </P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV DISPBUFF+1,A ;</FONT><FONT 
lang=ZH-CN face=宋体>第二位轮流显示</FONT><FONT lang=ZH-CN 
face=System,黑体>0-9</FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>INC A</P>
<P align=justify>LCALL DELAY</P>
<P align=justify>CJNE A,#10,LOOP</P>
<P align=justify>MOV A,#0</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>AJMP LOOP</FONT><FONT 
lang=ZH-CN face=宋体> </FONT><FONT lang=ZH-CN face=System,黑体>;</FONT><FONT 
lang=ZH-CN face=宋体>在此中间可以按排任意程序,这里仅作示范。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=System,黑体>;</FONT><FONT lang=ZH-CN 
face=宋体>主程序到此结束</FONT></P>
<P align=justify><FONT lang=ZH-CN face=System,黑体>DISP: ;</FONT><FONT lang=ZH-CN 
face=宋体>定时器</FONT><FONT lang=ZH-CN face=System,黑体>T0</FONT><FONT lang=ZH-CN 
face=宋体>的中断响应程序</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>PUSH ACC ;ACC</FONT><FONT lang=ZH-CN face=宋体>入栈</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>PUSH PSW ;PSW</FONT><FONT lang=ZH-CN face=宋体>入栈</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV TH0,#HIGH(65536-2000) ;</FONT><FONT lang=ZH-CN 
face=宋体>定时时间为</FONT><FONT lang=ZH-CN face=System,黑体>2000</FONT><FONT lang=ZH-CN 
face=宋体>个周期,约</FONT><FONT lang=ZH-CN face=System,黑体>2170</FONT><FONT lang=ZH-CN 
face=宋体>微秒(</FONT><FONT lang=ZH-CN face=System,黑体>11.0592M</FONT><FONT 
lang=ZH-CN face=宋体>)</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV TL0,#LOW(65536-2000)</FONT></P><FONT lang=ZH-CN 
face=System,黑体>
<P align=justify>SETB FIRST</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>SETB SECOND ;</FONT><FONT 
lang=ZH-CN face=宋体>关显示</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV A,#DISPBUFF ;</FONT><FONT lang=ZH-CN 
face=宋体>显示缓冲区首地址</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>ADD A,Counter </FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>MOV R0,A</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV A,@R0 ;</FONT><FONT 
lang=ZH-CN face=宋体>根据计数器的值取相应的显示缓冲区的值</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV DPTR,#DISPTAB ;</FONT><FONT lang=ZH-CN 
face=宋体>字形表首地址</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOVC A,@A+DPTR ;</FONT><FONT lang=ZH-CN face=宋体>取字形码</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV P0,A ;</FONT><FONT lang=ZH-CN face=宋体>将字形码送</FONT><FONT 
lang=ZH-CN face=System,黑体>P0</FONT><FONT lang=ZH-CN face=宋体>位(段口)</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>MOV A,Counter ;</FONT><FONT lang=ZH-CN face=宋体>取计数器的值</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>JZ DISPFIRST ;</FONT><FONT lang=ZH-CN face=宋体>如果是</FONT><FONT 
lang=ZH-CN face=System,黑体>0</FONT><FONT lang=ZH-CN face=宋体>则显示第一位</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>CLR SECOND ;</FONT><FONT lang=ZH-CN face=宋体>否则显示第二位</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>AJMP DISPNEXT</FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>DISPFIRST:</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>CLR FIRST ;</FONT><FONT 
lang=ZH-CN face=宋体>显示第一位 </FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>DISPNEXT:</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>INC Counter ;</FONT><FONT 
lang=ZH-CN face=宋体>计数器加</FONT><FONT lang=ZH-CN face=System,黑体>1</FONT></P><FONT 
lang=ZH-CN face=System,黑体>
<P align=justify>MOV A,Counter </P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>DEC A ;</FONT><FONT lang=ZH-CN 
face=宋体>如果计数器计到</FONT><FONT lang=ZH-CN face=System,黑体>2</FONT><FONT lang=ZH-CN 
face=宋体>,则让它回</FONT><FONT lang=ZH-CN face=System,黑体>0</FONT></P><FONT lang=ZH-CN 
face=System,黑体>
<P align=justify>DEC A </P>
<P align=justify>JZ RSTCOUNT </P>
<P align=justify>AJMP DISPEXIT</P>
<P align=justify>RSTCOUNT:</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>MOV Counter,#0 ;</FONT><FONT 
lang=ZH-CN face=宋体>计数器的值只能是</FONT><FONT lang=ZH-CN face=System,黑体>0</FONT><FONT 
lang=ZH-CN face=宋体>或</FONT><FONT lang=ZH-CN face=System,黑体>1</FONT></P><FONT 
lang=ZH-CN face=System,黑体>
<P align=justify>DISPEXIT:</P>
<P align=justify>POP PSW</P>
<P align=justify>POP ACC</P>
<P align=justify>RETI</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System,黑体>DELAY: ;</FONT><FONT lang=ZH-CN 
face=宋体>延时</FONT><FONT lang=ZH-CN face=System,黑体>130</FONT><FONT lang=ZH-CN 
face=宋体>毫秒</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN 
face=System,黑体>PUSH PSW</FONT></P><FONT lang=ZH-CN face=System,黑体>
<P align=justify>SETB RS0</P>
<P align=justify>MOV R7,#255</P>
<P align=justify>D1: MOV R6,#255</P>
<P align=justify>D2: NOP</P>
<P align=justify>NOP</P>
<P align=justify>NOP</P>
<P align=justify>NOP</P>
<P align=justify>DJNZ R6,D2</P>
<P align=justify>DJNZ R7,D1</P>
<P align=justify>POP PSW</P>
<P align=justify>RET</P>
<P align=justify>DISPTAB:DB 28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H </P>
<P align=justify>END</P></FONT><FONT lang=ZH-CN face=宋体>
<P 
align=justify>从上面的程序可以看出,和静态显示相比,动态扫描的程序稍有点复杂,不过,这是值得的。这个程序有一定的通用性,只要改变端口的值及计数器的值就可以显示更多位数了。下面给出显示程序的流程图。</P></FONT><FONT 
lang=ZH-CN face=System,黑体>
<P align=justify> <IMG height=409 src="动态扫描显示接口.files/dpj261.gif" width=398><IMG 
height=273 src="动态扫描显示接口.files/dpj262.gif" width=410></P>
<P align=center><A href="http://www.onestudy.net/"><FONT 
face=黑体>返回“一学网</FONT><FONT face="Times New Roman" color=#000000> </FONT><FONT 
face="Times New Roman"><FONT color=#000000>www.</FONT><FONT 
color=#ff0000>one</FONT><FONT color=#008000>study</FONT>.net</FONT><FONT 
face=黑体> ”首页</FONT></A></P>
<P align=justify> </P></FONT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -