历史上的今天
今天是:2025年01月15日(星期三)
2018年01月15日 | 定时中断实现显示的程序
2018-01-15 来源:eechina
第一位始终显示0,第二位显示在0-9之间循环
;**************************************************
Counter EQU 59H ;计数器,显示程序通过它得知现正显示哪个数码管
FIRST EQU P2.7 ;第一位数码管的位控制
SECOND EQU P2.6 ;第二位数码管的位控制
DISPBUF EQU 5AH ;显示缓冲区为5AH和5BH
ORG 0000H
AJMP START
ORG 000BH ;定时器T0的入口
AJMP DISP ;显示程序
ORG 30H
START:
MOV SP,#5FH ;设置堆栈
MOV P1,#0FFH
MOV P0,#0FFH
MOV P2,#0FFH ;初始化,所显示器,LED灭
MOV TMOD,#00000001B ;定时器T0工作于模式1(16位定时/计数模式)
MOV TH0,#HIGH(65536-2000)
MOV TL0,#LOW(65536-2000)
SETB TR0
SETB EA
SETB ET0
MOV Counter,#0 ;计数器初始化
MOV DISPBUF,#0 ;第一位始终显示0
MOV A,#0
LOOP:
MOV DISPBUF+1,A ;第二位轮流显示0-9
INC A
LCALL DELAY
CJNE A,#10,LOOP
MOV A,#0
AJMP LOOP ;在此中间可以按排任意程序,这里仅作示范。
;主程序到此结束
DISP: ;定时器T0的中断响应程序
PUSH ACC ;ACC入栈
PUSH PSW ;PSW入栈
MOV TH0,#HIGH(65536-2000);定时时间为2000个周期,约2170微秒
MOV TL0,#LOW(65536-2000)
SETB FIRST
SETB SECOND ;关显示
MOV A,#DISPBUF ;显示缓冲区首地址
ADD A,Counter
MOV R0,A
MOV A,@R0 ;根据计数器的值取相应的显示缓冲区的值
MOV DPTR,#DISPTAB ;字形表首地址
MOVC A,@A+DPTR ;取字形码
MOV P0,A ;将字形码送P0位(段口)
MOV A,Counter ;取计数器的值
JZ DISPFIRST ;如果是0则显示第一位
CLR SECOND ;否则显示第二位
AJMP DISPNEXT
DISPFIRST:
CLR FIRST ;显示第一位
DISPNEXT:
INC Counter ;计数器加1
MOV A,Counter
DEC A ;如果计数器计到2,则让它回0
DEC A
JZ RSTCOUNT
AJMP DISPEXIT
RSTCOUNT:
MOV Counter,#0 ;计数器的值只能是0或1
DISPEXIT:
POP PSW
POP ACC
RETI
DELAY: ;延时130毫秒
PUSH PSW
SETB RS0
MOV R7,#255
D1: MOV R6,#255
D2: NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
POP PSW
RET
DISPTAB:DB 28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H
END
史海拾趣
|
做了一段时间嵌入式,发现自己憔悴了很多 又研究硬件,看电路图,DATASHEET,又要搞代码,方案公司的代码长的不得了,有时候真想一头装死,还是舍不得。。。 真的太累啊[ … 查看全部问答> |
|
恩智浦微控制器LPC2478和LPC2470支持需高速通信的LCD应用 恩智浦半导体发布其全新的LPC2478微控制器,这是业界唯一的提供集成的LCD支持的基于闪存的ARM7 MCU。同时推出的LPC2470是其无闪存版本。全新的微控制器配有双路ARM高速总线,可实现多种高带 ...… 查看全部问答> |
|
问题如标题。我需要用应用程序实现一个简单的客户端,需要调用winsnmp的API。但是我发现wince下打不开winsnmp.h头文件。有人在这下面用过吗?… 查看全部问答> |
|
在keilc51中我用c语言要写个精确的时间,怎么写?(不可以用中断) 在keilc51中我用c语言要写个精确的时间,怎么写?(不可以用中断) 如:12MHz晶振 void dalay() { uchar i,j,k; for(i=0;i… 查看全部问答> |
|
需要开发如下项目: 基本需求: 使用视频处理芯片处理两个信号: 其一,由摄像头获得的实时视频(模拟或数字信号) 其二,某一个预制好的两色BMP文件(黑白)。 将1和2叠加,叠加方法为将黑色部分保留,白色部分设置成透明的 白色地方就可以 ...… 查看全部问答> |
|
猜猜看,这是什么? 这个带有法拉利标志的头盔,实际上是一款咖啡机。将头盔的护目镜打开,就可以看到隐藏在其中的咖啡操作台。为了起到更好的装饰作用和隐蔽效果,咖啡机的操作按钮都隐藏在滑片之后。您可以将它 ...… 查看全部问答> |




