实验三 数码管动态显示程序设计1.doc
文本预览下载声明
实验三 数码管动态显示程序设计
实验目的
1、理解数码管动态显示原理
2、理解数码管动态显示电路的设计方法
3、掌握数码管动态显示程序的设计方法
实验仪器
单片机开发板、万利仿真机、稳压电源、计算机
实验内容
1、动态扫描显示程序
2、特征位小数点控制显示程序
实验电路图
数码管动态显示
初始化显示缓冲区首地址,显示计数器
取缓冲区一字节数,并转换成显示码
输出位选数据,并延时1ms
显示指针指向下一字节,计数器减1
显示计数为0
返回
Y
N
程序流程图
实验步骤及调试信息
1、新建实验项目
2、输入实验程序并补充完整
;------------------------------------------------------
;数码管动态显示程序
;包含小数点显示
;位选码输出有两种方式:
; DispSelection1: 一次一位
; DispSelection2: 一次一字节
;
; 2009-08-20
;-------------------------------------------------------
LEDCLK bit P3.4
LEDDIN bit P2.3
LEDDATA data P0
dseg at 30h
dispbuf: ds 8 ;显示缓冲区8字节
disppoint: ds 1 ;小数点控制数据
maincode SEGMENT CODE
CSEG at 0
LJMP Start
RSEG maincode
Start: CLR EA
mov sp,#0c0h
mov dispbuf ,#08h
mov dispbuf+1, #04h
mov dispbuf+2, #00h
mov dispbuf+3, #08h
mov dispbuf+4, #02h
mov dispbuf+5, #00h
mov dispbuf+6, #02h
mov dispbuf+7, #07h
mov disppoint,#02h ;第2位小数点亮
LCALL disp
SJMP $-3
;------------------------------------------------------
;数码管动态显示程序
;包含小数点显示
;位选码输出有两种方式:
; DispSelection1: 一次一位
; DispSelection2: 一次一字节
;
; 2009-08-20
;-------------------------------------------------------
Disp: MOV R7,#8
MOV R0,#dispbuf
CLR LEDCLK
SETB LEDDIN
Disp1: MOV A,@R0
MOV DPTR,#DispTab
MOVC A,@A+DPTR
cpl a
; LCALL Dispdot ;显示小数点程序
MOV LEDDATA,A ;在输出之前加入显示小数点程序
LCALL DispSelection1 ;输出位选择信号,DispSelection2是第二种
; lcall dispsel3
LCALL Delay1ms
mov p2,#0ffh
INC R0
DJNZ R7,Disp1
mov p2,#0ffh
RET
;-------------------------------------------------
;位选码以一次一位方式输出
;-------------------------------------------------
dispsel3:
mov dptr,#DispSTab
mov a,r7
movc a,@a+dptr
cpl a
; swap a
mov p2,a
ret
DispSelection1:
CJNE R7,#8,DispSelection11
CLR LEDDIN
DispSelection11:
SETB LEDCLK
NOP
CLR LEDCLK
SETB LEDDIN
RET
;-------------------------------------------------
;位选码以一次一字节方式输出
;-------------------------------------------------
DispSelection2:
MOV B,#8
MOV DPTR,#DispSTab
显示全部