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

上传人:小飞机 文档编号:5520174 上传时间:2023-07-18 格式:PPT 页数:23 大小:296.49KB
返回 下载 相关 举报
《数码管显示实验》PPT课件.ppt_第1页
第1页 / 共23页
《数码管显示实验》PPT课件.ppt_第2页
第2页 / 共23页
《数码管显示实验》PPT课件.ppt_第3页
第3页 / 共23页
《数码管显示实验》PPT课件.ppt_第4页
第4页 / 共23页
《数码管显示实验》PPT课件.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《数码管显示实验》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数码管显示实验》PPT课件.ppt(23页珍藏版)》请在三一办公上搜索。

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

2、,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口数据方向寄存器,10,*-串行口地址定义-SCS1 EQU$0016;SCI状态寄存器1SCDR EQ

3、U$0018;SCI数据寄存器SCC1 EQU$0013;SCI控制寄存器1SCC2 EQU$0014;SCI控制寄存器2SCBR EQU$0019;SCI波特率寄存器RAMstartAddr equ$0040;RAM的起始地址(因芯片不同可以更改)FlashStartAddr equ$8000;程序开始地址(因芯片不同可以更改)*-内存变量定义-ORG RAMstartAddrPC_Buffer RMB 4;存放从PC接收的数据 Show_Buffer RMB 4;存放待显示的数据Cs RMB 1;位选信号,11,*-主程序-ORG FlashStartAddr;初始化Main:LDA#$F

4、F;定义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;波特率为9600 STA SCBR,13,Display_Init:;起始数据赋值 MOV#$1,PC_Buffer MOV#$2,PC_Buffer+$1 MOV#$3,PC_Buffe

5、r+$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,*;等待数据,无就转向自己,;有就往下执行 LDA SCDR;取数据寄存器中内容放入A STA PC_Buffer,X;将PC_Buffer中的数据;依次存入A INCX CPX#!4;接收满4个数就开始显示 BLO Rece_Num1 B

6、RA Start,15,*-显示子程序(Show_Num)-*入口:以Show_Buffer首地址的内存区,共4个字节*出口:无*占用寄存器:HX,A*占用内存:CS*调用子程序:Delay_ns*描述:显示Show_Buffer中的四个字符*-Show_Num:PSHH;进栈,保存HX,A中内容 PSHX PSHA LDHX#$00;清空缓冲区 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中输

7、出 LDA#!100;延时100毫秒 JSR Delay_ns ASL CS;算术左移,修改位选信号 INCX CPX#!4;判断是否已经扫描完毕 BLO Show_Num_LOOP;小于则循环,17,PULA;出栈 PULX PULH RTS*-转码子程序(Translate_Num)-*子程序名:Translate_Num*入口:以PC_Buffer 为首地址的内存区四个字节*出口:以Show_Buffe为首地址的内存区四个字节*占用寄存器:HX,A*占用内存:Show_Buffer*调用子程序:无*描述:将PC_Buffer中字符转换为相应的字型码*放入Show_Buffer中*-,18

8、,Translate_Num:PSHH;进栈,保存HX,A中内容 PSHX PSHA LDHX#$0000;清空缓冲区Translate_Num1:LDA PC_Buffer,X;取PC_Buffer中一个数;放入A PSHH;进栈,保存HX内容 PSHX,19,TAX;将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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号