定时液晶显示实验.ppt





《定时液晶显示实验.ppt》由会员分享,可在线阅读,更多相关《定时液晶显示实验.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时液晶显示实验 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望实验目的:实验目的:LCD与定时中断的联合编程,与定时中断的联合编程,显示时钟显示时钟2实验器材:实验器材:1.SD-1型在线编程实验仪型在线编程实验仪2.导线若干导线若干3硬件接线:硬件接线:使用实验板使用实验板LCD固定接线固定接线(1.单片机的单片机的PTB0-PTB7作为输出与作为输出与LCD的的D0-D7连接连接;2.单片机的单片机的PTC0,PTC1,PTC2分别接分别接LCD的的RS R
2、/W E;3.单片机的单片机的PTA7-4接接4根键盘列线(根键盘列线(X4-1),),PTA3-0接接4根键盘行线(根键盘行线(Y4-1))4软件功能:软件功能:n开始时开始时,LCD显示两行显示两行“Current Time is:00:00:00 SUDA”“*”键为设置键键为设置键,按下后可设置时按下后可设置时,分分,秒秒,随随后后 按按“#”时钟开始运行时钟开始运行。5程序清单:程序清单:n口地址定义口地址定义n定时器的寄存器地址定时器的寄存器地址定义定义n变量定义变量定义n系统初始化系统初始化n总循环总循环n扫描读键值子程序扫描读键值子程序n键盘中断子程序键盘中断子程序n定时器溢出
3、子程序定时器溢出子程序键盘中断初始化子程键盘中断初始化子程序序键盘转化为具体值子键盘转化为具体值子程序程序LCD初始化子程序初始化子程序LCD命令执行子程序命令执行子程序LCD显示子程序显示子程序转码子程序转码子程序中断矢量中断矢量6备注说明:备注说明:n运行时请与标准时间进行校对运行时请与标准时间进行校对7口地址定义口地址定义n*单片机的PTA7-4接4根键盘列线(X4-1),PTA3-0接4根键盘行线(Y4-1)nDDRA EQU$0004 ;A口数据方向寄存器nPTA EQU$0000 ;A口数据寄存器nPTAPUE EQU$000D ;A口上拉电阻允许寄存器n*单片机的PTB0-PTB
4、7作为输出与LCD的D0-D7连接nDDRB equ$0005 ;B口数据方向寄存器 nPTB equ$0001 ;B口数据寄存器n*单片机的PTC0,PTC1,PTC2分别接LCD的RS R/W EnPTC EQU$0002 ;C口数据寄存器nDDRC EQU$0006 ;C口数据方向寄存器nLCD-RS EQU 0 ;LCD寄存器选择信号接PTC0nLCD-RW EQU 1 ;读写信号接PTC1nLCD_E EQU 2 ;LCD使能信号接PTC2nINTKBSCR EQU$001A ;键盘状态和控制寄存器nINTKBIER EQU$001B ;键盘中断允许寄存器8定时器的寄存器地址定义nT
5、1SC EQU$0020 ;定时器1状态和控制寄存器nT1CNTHEQU$0021 ;定时器1计数寄存器(高位)nT1CNTLEQU$0022 ;定时器1计数寄存器(低位)nT1MODHEQU$0023 ;定时器1模数寄存器(高位)nT1MODLEQU$0024 ;定时器1模数寄存器(低位)9变量定义nRAMstartAddr equ$0040;RAM的起始地址(因芯片不同可以更改)nFlashStartAddr equ$8000;程序开始地址(因芯片不同可以更改)nORG RAMstartAddrnLCD_Buffer1 RMB 16 ;存放16字节显示缓冲数据(第一行)nLCD_Buffe
6、r2 RMB 16 ;存放16字节显示缓冲数据(第二行)nSec RMB 1 ;时钟的秒 nMin RMB 1 ;时钟的分nHou RMB 1 ;时钟的小时nBeginRun RMB 1 ;nSetByte RMB 1 ;nKBValue RMB 1 ;执行键盘中断程序后,存放键值的内存KbValuenTmpvar1 RMB 1 ;变量Tmpvar1,缓冲使用nTmpvar2 RMB 1 ;变量Tmpvar2,缓冲使用nTmpvar3 RMB 1 ;变量Tmpvar3nTmpvar4 RMB 1 ;变量Tmpvar410初始化n系统初始化nPLL初始化n口初始化n定时器1初始化n设定初始时间n
7、键盘中断初始化11系统初始化NOP ;初始化开始 SEI ;禁止所有中断 LDHX#$023F ;堆栈初始化,放入GP32的RAM最高端 TXS MOV#%00000001,$001E ;初始化CONFIG2,内部总线时钟用作SCI的时钟 MOV#%00111101,$001F ;初始化CONFIG1,允许LVI复位信号,;禁止LIV模块的电源,LIV工作在5V,;经过32个周期退出STOP模式,禁止COP模块12PLL初始化;外接晶阵32.768KHz,初始化成总线频率为2.4576MHz CLR$0036 ;清零,初始化PCTL,MOV#$01,$0036 MOV#$01,$0038 MO
8、V#$2C,$0039 MOV#$80,$003A BSET 5,$0036 BSET 7,$0037 ;自动方式 BSET 4,$0036 ;选择PLL为系统时钟源13口初始化 LDA#%11110000 STA PTAPUE LDA#%11111111 ;B口为输出 STA DDRB LDA#%00000111 ;C口的PTC0-2为输出 STA DDRC14定时器1初始化 LDA#%01100110 ;允许溢出中断、不启动计数、分频因子=64 STA T1SC LDHX#$0000 ;计数寄存器初值=$0000 STHX T1CNTH LDHX#$9600 ;设1秒产生1次溢出中断 ST
9、HX T1MODH ;模数寄存器设定值=1(2457600/64)=$9600 15设定初始时间 LDHX#$0000Display1:;把要显示的16个初始字符放入LCD_Buffer12中 LDA DisplayBytes1,X STA LCD_Buffer1,X LDA DisplayBytes2,X STA LCD_Buffer2,X AIX#1 CPHX#$10 BNE Display1 ;循环16次 JSR Init_LCD ;LCD初始化 JSR Show_LCD ;将内存LCD_Buffer12的32字节ASCII字符送LCD显示 MOV#$00,SEC MOV#$00,MIN
10、 MOV#$00,HOU16键盘中断初始化 JSR KBInit ;执行键盘中断初始化子程序-初始化完毕-17总循环n;允许定时器1计数寄存器计数,n;开放定时中断,开放键盘中断 n BCLR 1,INTKBSCR ;开放键盘中断n BCLR 5,T1SC ;允许定时器1计数寄存器计数n CLI ;开放中断n*总循环nStart_1:;总循环开始处 n NOP ;仅为实验例程,主循环无实际工作n BRA Start_118扫描读键值子程序(从KBA开始)n功能:扫描一次接在PTA口的4*4键盘n (PTA7-4接4根键盘列线(X4-1),PTA3-0接 n 4根键盘行线(Y4-1)上的按键(使
11、用行扫描法),n 键值放在A中若无按键,A中值$FF n占用内存:Tmpvar1(缓冲使用)n出口:A=键值 n-19扫描读键值子程序nKBA:MOV#%11111110,Tmpvar1 ;第一根行线为0 LDX#$04 ;扫描4根行线KB1:LDA PTA ;取PTA给A ORA#%00001111 ;PTA7-4保留原态,PTA3-0为1 AND Tmpvar1 ;令PTAn=0,n=0,1,2,3 STA PTA ;处理后给PTA以便查询 NOP NOP LDA PTA ;查第n列上是否有键按下 AND#%11110000 ;保留PTA7-4列值,令低PTA3-0=0 CBEQA#$F0
12、,KB2 ;A等于$F0,本行线没键按下,转到KB2 ;A不等于$F0,本行有键按下 LDA PTA ;A放键值 BRA KB3 ;转到KB3结束中断KB2:SEC ;令C=1 ROL Tmpvar1 ;使下一个行线为0,查下一行 DBNZX KB1 ;对行线循环 LDA#$FF ;没有键被按下为$FFKB3:RTS20键盘中断初始化子程序(从KBInit开始)n功能:对被定义为键盘中断的引脚进行初始化,n 但未开放 键盘中断 n占用CPU内寄存器:A 21键盘中断初始化子程序nKBInit:n LDA#$00 ;定义A口之前复位PTAn STA PTAn LDA#%00001111 ;定义A
13、口7-4输入(作为列),3-0输出(作为行)n STA DDRAn LDA#%11110000 ;定义A口7-4有上拉电阻n STA PTAPUEn BSET 1,INTKBSCR ;屏蔽键盘中断n LDA#%11110000 ;允许KBIE7-4PIN中断进入n STA INTKBIERn BSET 2,INTKBSCR ;清除键盘中断n RTS22键盘中断子程序(从KBint开始)n-键盘中断子程序(从KBint开始)-n功能:键盘中断程序,键值放入内存KbValue中 n调用子程序:扫描法读键值子程序(KBA),键盘中断初始化子程序(KBInit)n出口:第0页内存单元KbValue中为
14、键值 -23键盘中断子程序1nKBint:n PSHH ;保护Hn SEI ;禁止中断n BSET 1,INTKBSCR ;禁止键盘中断n JSR KBA ;调子程序KBA,键值放在A中n STA KbValue ;放入内存KbValuen JSR KBdef ;执行键盘转化为具体值子程序,转成键定义值 n ;是否为*?,不是退出KBint_Exitn CMP#!42 ;ASCI*键n BEQ SetUpBegin n JMP KBint_Exit ;不是,等待*键nSetUpBegin:;是*,xx:xx:xx n BSET 2,INTKBSCR ;清除键盘中断n MOV#$0,SetByt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时 液晶显示 实验

限制150内