资源描述:
《定时液晶显示实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、定时液晶显示实验实验目的实验器材硬件接线软件功能程序清单备注说明<<<1实验目的:LCD与定时中断的联合编程,显示时钟2实验器材:1.SD-1型在线编程实验仪2.导线若干3硬件接线:使用实验板LCD固定接线(1.单片机的PTB0-PTB7作为输出与LCD的D0-D7连接;2.单片机的PTC0,PTC1,PTC2分别接LCD的RSR/WE;3.单片机的PTA7-4接4根键盘列线(X4-1),PTA3-0接4根键盘行线(Y4-1))4软件功能:开始时,LCD显示两行“CurrentTimeis:00:
2、00:00SUDA”“*”键为设置键,按下后可设置时,分,秒,随后按“#”时钟开始运行。5程序清单:口地址定义定时器的寄存器地址定义变量定义系统初始化总循环扫描读键值子程序键盘中断子程序定时器溢出子程序键盘中断初始化子程序键盘转化为具体值子程序LCD初始化子程序LCD命令执行子程序LCD显示子程序转码子程序中断矢量6备注说明:运行时请与标准时间进行校对7口地址定义*单片机的PTA7-4接4根键盘列线(X4-1),PTA3-0接4根键盘行线(Y4-1)DDRAEQU$0004;A口数据方向寄存器PT
3、AEQU$0000;A口数据寄存器PTAPUEEQU$000D;A口上拉电阻允许寄存器*单片机的PTB0-PTB7作为输出与LCD的D0-D7连接DDRBequ$0005;B口数据方向寄存器PTBequ$0001;B口数据寄存器*单片机的PTC0,PTC1,PTC2分别接LCD的RSR/WEPTCEQU$0002;C口数据寄存器DDRCEQU$0006;C口数据方向寄存器LCD-RSEQU0;LCD寄存器选择信号接PTC0LCD-RWEQU1;读写信号接PTC1LCD_EEQU2;LCD使能信号接
4、PTC2INTKBSCREQU$001A;键盘状态和控制寄存器INTKBIEREQU$001B;键盘中断允许寄存器<<<8定时器的寄存器地址定义T1SCEQU$0020;定时器1状态和控制寄存器T1CNTHEQU$0021;定时器1计数寄存器(高位)T1CNTLEQU$0022;定时器1计数寄存器(低位)T1MODHEQU$0023;定时器1模数寄存器(高位)T1MODLEQU$0024;定时器1模数寄存器(低位)<<<9变量定义RAMstartAddrequ$0040;RAM的起始地址(因芯片不
5、同可以更改)FlashStartAddrequ$8000;程序开始地址(因芯片不同可以更改)ORGRAMstartAddrLCD_Buffer1RMB16;存放16字节显示缓冲数据(第一行)LCD_Buffer2RMB16;存放16字节显示缓冲数据(第二行)SecRMB1;时钟的秒MinRMB1;时钟的分HouRMB1;时钟的小时BeginRunRMB1;SetByteRMB1;KBValueRMB1;执行键盘中断程序后,存放键值的内存KbValueTmpvar1RMB1;变量Tmpvar1,缓冲
6、使用Tmpvar2RMB1;变量Tmpvar2,缓冲使用Tmpvar3RMB1;变量Tmpvar3Tmpvar4RMB1;变量Tmpvar4<<<10初始化系统初始化PLL初始化口初始化定时器1初始化设定初始时间键盘中断初始化<<<11系统初始化NOP;初始化开始SEI;禁止所有中断LDHX#$023F;堆栈初始化,放入GP32的RAM最高端TXSMOV#%00000001,$001E;初始化CONFIG2,内部总线时钟用作SCI的时钟MOV#%00111101,$001F;初始化CONFIG1,
7、允许LVI复位信号,;禁止LIV模块的电源,LIV工作在5V,;经过32个周期退出STOP模式,禁止COP模块<<<12PLL初始化;外接晶阵32.768KHz,初始化成总线频率为2.4576MHzCLR$0036;清零,初始化PCTL,MOV#$01,$0036MOV#$01,$0038MOV#$2C,$0039MOV#$80,$003ABSET5,$0036BSET7,$0037;自动方式BSET4,$0036;选择PLL为系统时钟源<<<13口初始化LDA#%11110000STAPTAPU
8、ELDA#%11111111;B口为输出STADDRBLDA#%00000111;C口的PTC0-2为输出STADDRC<<<14定时器1初始化LDA#%01100110;允许溢出中断、不启动计数、分频因子=64STAT1SCLDHX#$0000;计数寄存器初值=$0000STHXT1CNTHLDHX#$9600;设1秒产生1次溢出中断STHXT1MODH;模数寄存器设定值=1×(2457600/64)=$9600<<<15设定初始时间LDHX#$0000Display1:;把要显