- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验报告(一)
题目:键盘/显示实验姓名:赵帅
专业:控制09级
学号:2009430111009
实验一 键盘/显示实验
一、实验目的
掌握键盘显示专用芯片CH451的编程;
掌握单片机与CH451接口电路的连接方法。
二、实验设备
LJD-SY-5100实验板、计算机、Keil软件。
三、实验内容与要求
LJD-SY-5100实验板上的CH451与键盘/显示器接口电路和键盘编码表如下列所示,编写程序实现:上电后数码管从左向右轮显0—F;当按键时,在最左边一位显示键符。
图1.1 CH451与键盘、数码管的接口电路
键盘编码表
键符
键码
键符
键码
0
40H
8
50H
1
41H
9
51H
2
42H
A
52H
3
43H
B
53H
4
48H
C
58H
5
49H
D
59H
6
4AH
E
5AH
7
4BH
F
5BH
四、实验原理
实验板上的CH451与单片机的接口电路如图1.2所示。
图
图1.2 CH451与单片机接口电路图
电路图中单片机P1.0接CH451的DIN端口,为CH451提供串行数据;P1.1接DCLK端口,为其提供串行时钟;P1.2接LOAD端口,为其提供加载串行数据的脉冲;INT0接DOUT端口,用于响应按键中断和读出键码。
程序设计首先要对单片机和CH451芯片初始化,然后对CH451写入数据0—F显示。当有按键时,由中断子程序读出键码,再写入CH451显示键符。程序流程图见图1.3和1.4.
五、程序设计
INT1中断入口保护现场,关中断
INT1中断入口
保护现场,关中断
读出键码
置有键标志
恢复现场,开中断
中断返回
单片机初始化
CH451初始化
轮显0—F
N
有按键?
Y
显示键符
图1.3 按键显示主程序流程图图
图1.3 按键显示主程序流程图
2、源程序LOADBITP1.2DINBITP1.0DCLKBITP1.1DOUTBITP3.3
TIMERDATA030HTIMER1DATA031HTIMER2DATA032HTIMER3DATA033HKEY_FDATA034HKEYDATA035HORG0000H
JMPSTARTORG0013H
LJMPCH451_INTORG080HSTART:MOVSP,#60H
MOVP1,#60HCLRDINSETBDCLKSETBDINSETBLOADSETBDOUTMOVB,#04HMOVA,#03H
LCALLWRITE_CH451MOVB,#05H
MOVA,#80H
LCALLWRITE_CH451NOP
CLRIT1CLRIE1SETBPX1SETBEX1SETBEA
LX0:MOVR5,#00HLX:MOVA,R5
MOVB,#08H
LCALLWRITE_CH451NOP
LCALLDELAY_1S
MOVB,#03HMOVA,#00H
LCALLWRITE_CH451INCR5
CJNER5,#10H,LXJMPLX0
DELAY_1S:
MOVTIMER1,#1DLY:MOVTIMER2,#255DLY1:MOVTIMER3,#255DLY2:NOP
NOP
DJNZTIMER3,DLY2DJNZTIMER2,DLY1DJNZTIMER1,DLYRET
WRITE_CH451:PUSHPSW
PUSHACCCLREX1CLRLOADMOVR7,#08H
WRITE_8:RRCA
CLRDCLKMOVDIN,CSETBDCLK
DJNZR7,WRITE_8MOVA,B
MOVR7,#04HWRITE_4:RRCA
CLRDCLKMOVDIN,CSETBDCLK
DJNZR7,WRITE_4SETBLOAD
SETBEX1POPACCPOPPSWRET
CH451_INT:CLREX1
PUSHPSWPUSHACCPUSHB
PUSHTIMER1PUSHTIMER2PUSHTIMER3MOVB,#03HMOVA,#00H
LCALLWRITE_CH451NOP
LCALLREAD_CH451DISPKEY:MOVR7,#00H
LOOP:MOVA,R7
MOVDPTR,#TAB1MOVCA,@A+DPTRCJNEA,KEY,RLOOPMOVA,R7
MOVB,#08H
LCALLWRI
文档评论(0)