数码管显示实验.ppt_第1页
数码管显示实验.ppt_第2页
数码管显示实验.ppt_第3页
数码管显示实验.ppt_第4页
数码管显示实验.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,数码管显示实验,实验目的 实验器材 硬件接线 VB界面,软件功能 程序清单 备注说明,2,实验目的:,数码管的显示,3,实验器材:,1. SD-1型在线编程实验仪 2. 数码管 3. 导线若干,4,硬件接线:,5,LED的VB界面:,6,软件功能:,从PC机收到数字(整数或小数),使4个数字并排在一个数码管上显示,由PC机的VB界面控制显示。,7,程序清单:,程序说明 口地址定义 串行口地址定义 内存变量定义 主程序 串行口初始化,子程序 显示子程序 转码子程序 延时子程序 中断矢量,8,*-程序说明- *文件名:LED.ASM *使用数码管对数字(整数或小数)进行显示 *硬件连接:PTB

2、0,1,2,3,4,5,6,7分别接 * LA,LB,LC,LD,LE,LF,LG,LDP * PTC0,1,2,3分别接L11,L12,L13,L14 *功能描述:从PC机收到数字(整数或小数),使4个数字并排 * 在一个数码管上显示,由PC机的VB界面显示控制 *目的:数码管的显示 *-,9,*-口地址定义- PTB EQU $0001 ;B口数据寄存器 DDRB EQU $0005 ;B口数据方向寄存器 PTC EQU $0002 ;C口数据寄存器 DDRC EQU $0006 ;C口数据方向寄存器 PTD EQU $0003 ;D口数据寄存器 DDRD EQU $0007 ;D口数据方

3、向寄存器,10,*-串行口地址定义- SCS1 EQU $0016 ;SCI状态寄存器1 SCDR EQU $0018 ;SCI数据寄存器 SCC1 EQU $0013 ;SCI控制寄存器1 SCC2 EQU $0014 ;SCI控制寄存器2 SCBR EQU $0019 ;SCI波特率寄存器 RAMstartAddr equ $0040 ;RAM的起始地址(因芯片不同可以更改) FlashStartAddr equ $8000 ;程序开始地址(因芯片不同可以更改) *-内存变量定义- ORG RAMstartAddr PC_Buffer RMB 4 ;存放从PC接收的数据 Show_Buff

4、er RMB 4 ;存放待显示的数据 Cs RMB 1 ;位选信号,11,*-主程序- ORG FlashStartAddr ;初始化 Main: LDA #$FF ;定义B口为输出 STA DDRB LDA #$FF ;定义C口为输出 STA DDRC LDA #$FF ;定义D口为输出 STA DDRD,12,*-串行口初始化- LDA #%01000000 ;D6(ENSCI)=1,允许SCI, ;其它位为0,正常码输出, ;8位数据,无检验 STA SCC1 LDA #%00001100 ;允许发送器,允许接收器, ;不允许发送与接收中断 STA SCC2 LDA #%00000010

5、 ;波特率为9600 STA SCBR,13,Display_Init: ;起始数据赋值 MOV #$1,PC_Buffer MOV #$2,PC_Buffer+$1 MOV #$3,PC_Buffer+$2 MOV #$4,PC_Buffer+$3 Start: JSR Translate_Num ;起始数据转码 JSR Show_Num ;显示起始数据 BRSET 5,SCS1,Rece_Num ;等待接受数据,有 ;就跳向Rece_Num BRA Start,14,Rece_Num: LDHX #$0000 ;清空缓冲区 Rece_Num1: BRCLR 5,SCS1,* ;等待数据,无

6、就转向自己, ;有就往下执行 LDA SCDR ;取数据寄存器中内容放入A STA PC_Buffer,X ;将PC_Buffer中的数据 ;依次存入A INCX CPX #!4 ;接收满4个数就开始显示 BLO Rece_Num1 BRA Start,15,*-显示子程序(Show_Num)- *入口:以Show_Buffer首地址的内存区,共4个字节 *出口:无 *占用寄存器:HX,A *占用内存:CS *调用子程序:Delay_ns *描述:显示Show_Buffer中的四个字符 *- Show_Num: PSHH ;进栈,保存HX,A中内容 PSHX PSHA LDHX #$00 ;清

7、空缓冲区 LDA #$01 ;先取第一位 STA CS,16,Show_Num_Loop: LDA Show_Buffer,X ;取出Show_Buffer中 ;第一个字符放入A STA PTB ;再将A中内容存入B输出 LDA CS STA PTC ;将A中内容存入C中输出 LDA #!100 ;延时100毫秒 JSR Delay_ns ASL CS ;算术左移,修改位选信号 INCX CPX #!4 ;判断是否已经扫描完毕 BLO Show_Num_LOOP ;小于则循环,17,PULA ;出栈 PULX PULH RTS *-转码子程序(Translate_Num)- *子程序名:Tra

8、nslate_Num *入口:以PC_Buffer 为首地址的内存区四个字节 *出口:以Show_Buffe为首地址的内存区四个字节 *占用寄存器:HX,A *占用内存:Show_Buffer *调用子程序:无 *描述:将PC_Buffer中字符转换为相应的字型码 * 放入Show_Buffer中 *-,18,Translate_Num: PSHH ;进栈,保存HX,A中内容 PSHX PSHA LDHX #$0000 ;清空缓冲区 Translate_Num1: LDA PC_Buffer,X ;取PC_Buffer中一个数 ;放入A PSHH ;进栈,保存HX内容 PSHX,19,TAX

9、;将A中内容放入X中 LDA Table,X ;取出对应的字形码 PULX PULH STA Show_Buffer,X ;将Show_Buffer中字符 ;依次放入A中 INCX CPX #$4 BLO Translate_Num1 ;小于四个字符则循环,20,PULA ;出栈 PULX PULH RTS Table FCB $C0,$CF,$A4,$B0,$99,$92,$82,$F8,$80, $90 ;显示码表 0 1 2 3 4 5 6 7 8 9 ;0 1 2 3 4 5 6 7 8 9 FCB $40 ,$4F ,$24,$30,$19,$12,$02,$78,$00 ,$10

10、;显示码表 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. ; 10 11 12 13 14 15 16 17 18 19,21,*-延时子程序(Delay_ms) - *入口:HX(表示要延时的毫秒数) HX=1延时1毫秒 *占用内部寄存器:A *占用内存:无 *- Delay_ms: LDA #!248 ;0.5ms JSR Delay_ns LDA #!248 ;0.5ms JSR Delay_ns AIX #-!1 CPHX #!0 BNE Delay_ms ;4Cycles RTS ;4Cycles,22,*-延时子程序(Delay_ns) - * 入口:A *占用内部寄存器:无 *占用内存:无 *使用方法:设延

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论