《数码管显示实验》PPT课件

上传人:re****.1 文档编号:578924887 上传时间:2024-08-25 格式:PPT 页数:23 大小:351KB
返回 下载 相关 举报
《数码管显示实验》PPT课件_第1页
第1页 / 共23页
《数码管显示实验》PPT课件_第2页
第2页 / 共23页
《数码管显示实验》PPT课件_第3页
第3页 / 共23页
《数码管显示实验》PPT课件_第4页
第4页 / 共23页
《数码管显示实验》PPT课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《数码管显示实验》PPT课件》由会员分享,可在线阅读,更多相关《《数码管显示实验》PPT课件(23页珍藏版)》请在金锄头文库上搜索。

1、数码管显示实验数码管显示实验实验目的实验目的实验器材实验器材硬件接线硬件接线VBVB界面界面软件功能软件功能程序清单程序清单备注说明备注说明1实验目的实验目的: :数码管的显示数码管的显示2实验器材实验器材:1. SD-1型在线编程实验仪型在线编程实验仪2. 数码管数码管3. 导线若干导线若干3硬件接线硬件接线: :PTB0PTB1PTB2PTB3PTB4PTB5PTB6PTB7PTC0PTC1PTC2PTC3MC68HC908GP32LALBLCLDLELFLGLDPL11L12L13L14LED4LEDLED的的VBVB界面界面: :5软件功能软件功能: : 从从PC机收到数字机收到数字(

2、整数或小数整数或小数),使使4个数字并排在一个数码管上显示个数字并排在一个数码管上显示,由由PC机的机的VB界面控制显示。界面控制显示。6程序清单程序清单: :程序说明程序说明口地址定义口地址定义串行口地址定义串行口地址定义内存变量定义内存变量定义主程序主程序串行口初始化串行口初始化子程序子程序显示子程序显示子程序 转码子程序转码子程序延时子程序延时子程序中断矢量中断矢量7*-程序说明程序说明-*文件名文件名:LED.ASM*使用数码管对数字使用数码管对数字(整数或小数整数或小数)进行显示进行显示*硬件连接硬件连接:PTB0,1,2,3,4,5,6,7分别接分别接 * LA,LB,LC,LD,

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

4、U $0003 ;D口数据寄存器口数据寄存器DDRD EQU $0007 ;D口数据方向寄存器口数据方向寄存器9*-串行口地址定义串行口地址定义-SCS1 EQU $0016 ;SCI状态寄存器状态寄存器1SCDR EQU $0018 ;SCI数据寄存器数据寄存器SCC1 EQU $0013 ;SCI控制寄存器控制寄存器1SCC2 EQU $0014 ;SCI控制寄存器控制寄存器2SCBR EQU $0019 ;SCI波特率寄存器波特率寄存器RAMstartAddr equ $0040 ;RAM的起始地址(因芯片不同可以更改)的起始地址(因芯片不同可以更改)FlashStartAddr equ

5、 $8000 ;程序开始地址(因芯片不同可以更改)程序开始地址(因芯片不同可以更改)*-内存变量定义内存变量定义- ORG RAMstartAddrPC_Buffer RMB 4 ;存放从存放从PC接收的数据接收的数据 Show_Buffer RMB 4 ;存放待显示的数据存放待显示的数据Cs RMB 1 ;位选信号位选信号10*-主程序主程序- ORG FlashStartAddr ;初始化初始化Main: LDA #$FF ;定义定义B口为输出口为输出 STA DDRB LDA #$FF ;定义定义C口为输出口为输出 STA DDRC LDA #$FF ;定义定义D口为输出口为输出 STA

6、 DDRD11*-串行口初始化串行口初始化-LDA #%01000000 ;D6(ENSCI)=1,允许允许SCI, ;其它位为其它位为0,正常码输出正常码输出, ;8位数据位数据,无检验无检验 STA SCC1 LDA #%00001100 ;允许发送器允许发送器,允许接收器允许接收器, ;不允许发送与接收中断不允许发送与接收中断 STA SCC2 LDA #%00000010 ;波特率为波特率为9600 STA SCBR 12Display_Init: ;起始数据赋值起始数据赋值 MOV #$1,PC_Buffer MOV #$2,PC_Buffer+$1 MOV #$3,PC_Buffe

7、r+$2 MOV #$4,PC_Buffer+$3 Start: JSR Translate_Num ;起始数据转码起始数据转码 JSR Show_Num ;显示起始数据显示起始数据 BRSET 5,SCS1,Rece_Num ;等待接受数据等待接受数据,有有 ;就跳向就跳向Rece_Num BRA Start13Rece_Num: LDHX #$0000 ;清空缓冲区清空缓冲区Rece_Num1: BRCLR 5,SCS1,* ;等待数据等待数据,无就转向自己无就转向自己, ;有就往下执行有就往下执行 LDA SCDR ;取数据寄存器中内容放入取数据寄存器中内容放入A STA PC_Buff

8、er,X ;将将PC_Buffer中的数据中的数据 ;依次存入依次存入A INCX CPX #!4 ;接收满接收满4个数就开始显示个数就开始显示 BLO Rece_Num1 BRA Start 14*-显示子程序显示子程序(Show_Num)-*入口入口:以以Show_Buffer首地址的内存区首地址的内存区,共共4个字节个字节*出口出口:无无*占用寄存器占用寄存器:HX,A*占用内存占用内存:CS*调用子程序调用子程序:Delay_ns*描述描述:显示显示Show_Buffer中的四个字符中的四个字符*-Show_Num: PSHH ;进栈进栈,保存保存HX,A中内容中内容 PSHX PSH

9、A LDHX #$00 ;清空缓冲区清空缓冲区 LDA #$01 ;先取第一位先取第一位 STA CS 15Show_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_

10、Num_LOOP ;小于则循环小于则循环16 PULA ;出栈出栈 PULX PULH RTS *-转码子程序转码子程序(Translate_Num)-*子程序名子程序名:Translate_Num*入口入口:以以PC_Buffer 为首地址的内存区四个字节为首地址的内存区四个字节*出口出口:以以Show_Buffe为首地址的内存区四个字节为首地址的内存区四个字节*占用寄存器占用寄存器:HX,A*占用内存占用内存:Show_Buffer*调用子程序调用子程序:无无*描述描述:将将PC_Buffer中字符转换为相应的字型码中字符转换为相应的字型码* 放入放入Show_Buffer中中*-17Tr

11、anslate_Num: PSHH ;进栈进栈,保存保存HX,A中内容中内容 PSHX PSHA LDHX #$0000 ;清空缓冲区清空缓冲区Translate_Num1: LDA PC_Buffer,X ;取取PC_Buffer中一个数中一个数 ;放入放入A PSHH ;进栈进栈,保存保存HX内容内容 PSHX18 TAX ;将将A中内容放入中内容放入X中中 LDA Table,X ;取出对应的字形码取出对应的字形码 PULX PULH STA Show_Buffer,X ;将将Show_Buffer中字符中字符 ;依次放入依次放入A中中 INCX CPX #$4 BLO Translat

12、e_Num1 ;小于四个字符则循环小于四个字符则循环19 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 ;显示码表显示码表 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. ; 10 11 12 13 14 15 16 17 18 19 20*-延时子程序(延时子程序(Delay_ms)

13、 -*入口入口: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 ;4Cycles21*-延时子程序(延时子程序(Delay_ns) -* 入口:入口:A*占用内部寄存器:无占用内部寄存器:无*占用内存:无占用内存:无*使用方法:设延时使用方法:设延时10s,A=(T-4)/2=3* LDA #!3 ; 延时延时10s* BSR Delay_nus*-Delay_ns: NOP ;1Cycles NOP ;1Cycles DBNZA Delay_ns ;3Cycles RTS ;4Cycles22*-中断矢量中断矢量- ORG $FFFE DW MAIN23

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号