历史上的今天
今天是:2025年01月14日(星期二)
2018年01月14日 | 拨码开关显示试验程序
2018-01-14 来源:eefocus
图2
图1就是我们试验板上的拨码开关和四个指示灯,拨码开关拨向左边为高电平(为1),拨码开关拨向右边为低电平(为0),右边指示灯也点亮, 原理图见图2所示。
这个实验实现的功能是: 根据拨码的编码方式进行显示,显示为8421BCD码,例如:将图1中拨码开关2和3拨向右边,则显示6(低电平有效);程序如下:
ORG 1000H
A_BIT EQU 20H
B_BIT EQU 21H
YI EQU 22H
ER EQU 23H
SI EQU 24H
BA EQU 25H
HUO1 EQU 26H
HUO2 EQU 27H
MOV A_BIT,#0
MOV A_BIT,#0
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
START: LCALL DISP
MOV YI,#0
MOV ER,#0
MOV SI,#0
MOV BA,#0
JB P0.0,STAR1
LCALL DELAY
JB P0.0,STAR1
MOV YI,#1
STAR1: JB P0.1,STAR2
LCALL DELAY
JB P0.1,STAR2
MOV ER,#2
STAR2: JB P0.2,STAR3
LCALL DELAY
JB P0.2,STAR3
MOV SI,#4
STAR3: JB P0.3,STAR4
LCALL DELAY
JB P0.3,STAR4
MOV BA,#8
STAR4: CLR C
MOV A,YI
ADD A,ER
ADD A,SI
ADDC A,BA
MOV A_BIT,A
JNC STAR5
MOV B_BIT,#1
STAR5: MOV B_BIT,#0
LJMP START
DISP: MOV DPTR,#NUMTAB ;指定查表启始地址
MOV A,A_BIT;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P1,A ;送出个位的7段代码
CLR P2.0 ;开个位显示
CALL DELAY;显示1毫秒
SETB P2.0;关闭个位显示
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR
MOV P1,A
CLR P2.1
ACALL DELAY
SETB P2.1
RET
DELAY: NOP
MOV R4,#2 ;1毫秒延时子程序
D1: MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C7H,0A0H,86H,8EH
END
上一篇:节约端口线及器件的新型键盘程序
下一篇:单片机AT89C系列的解密原理
史海拾趣
|
我现在想学PCB EDA设计不知道学哪个软件好些请给点意见. 看了很多,都说学POWER PCB实用一点,有的又说学protel 我现在都不知道学哪个好. … 查看全部问答> |
|
单路镍氢电池快速充电管理芯片GM6802A/ GM6802B/GM6802C/GM6802D 5. GM6802应用数据手册下载 6. GM6802应用方案串联镍氢电池快充方案下载 (1)单路串联&n ...… 查看全部问答> |
|
我是在用PXA270D。。。我想更改自带的触摸屏的分辨率。现在是480*272,我想改成640*480 我在PB里面定制NK的时候。。改了PLATFORM.reg里面的一个注册表里的选项 Cx: 640 Cy: 480 然后烧入后,启动CE。。发现屏幕一直在闪动,根本无法操作。。 ...… 查看全部问答> |
|
1、完成以上内容的时间安排; 10月15-10月31日 M4特性分析和简单例程学习 11月1日-11月30日 M4例程分析和外设的系统学习 12月1日-12月31日 ...… 查看全部问答> |
|
always @ (posedge clk_1hz)if(!(sec1^8\'h59) | turn&(!m))begin sec1<=0; if(!(turn&(!m))) minclk<=1; .................................................................................................... ...… 查看全部问答> |




