2008-2009学年冬季学期.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2008-2009学年冬季学期.doc

1、在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现;   2、循环显示6个数码管的边缘各段,形成一个运动着的大边框。(能力选做题)   3、用按键输入自己的学号,并在静态或动态数码管上显示出来。   4、按键连击的消除和利用。利用连击现象,当按键时间长于2秒时,每0.5秒在个位上加1,连续累加,直到按键释放。(能力选做题)   实验三例程: 例程1: 显示器为6个共阴极LED数码管构成。单片机的P0口经一片74LS245驱动后接到LED的8个段码;单片机的P1口经74LS06驱动后接到数码管的公共端(即位选端),即P1口输出位码。 例程运行结果是6LED显示“168168”。 电路图: 查询式键盘和静态显示实验说明 8个按钮的小键盘与P0口连接,如果有键按下,相应的口线输出为低,否则输出为高。单片机通过读取接口的状态,判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。 8个按键的键值从右至左为0~7。实验例程是查询按键操作,并将按下的键值在6个静态数码管上显示出来。 6个静态数码管与6片74LS164(串变并移位寄存器)连接,与单片机通过串行口连接,串口工作在工作方式0。 电路图: 独立式按键电路 静态显示电路 实验内容: 实验一: 在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现。 源代码: DBUF EQU 30H TEMP EQU 40H ORG 0000H MOV R7,#2 LJMP DISP ORG 0100H DISP: MOV 30H,#0 MOV 31H,#1 MOV 32H,#2 MOV 33H,#3 MOV 34H,#4 MOV 35H,#5 MOV R0,#DBUF MOV R1,#TEMP MOV R2,#6 MOV DPTR,#SEGTAB DP00: MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC R1 INC R0 DJNZ R2,DP00 DISP0: MOV R0,#TEMP MOV R1,#6 DP01: MOV A,@R0 MOV P0,A MOV P2,#1 ACALL DELAY INC R0 DJNZ R1,DP01 LJMP DISP0 DELAY: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H CLR ET0 SETB TR0 CLR TF0 HERE: JNB TF0,HERE CLR TF0 DJNZ R7,HERE CLR TR0 MOV R7,#2 RET SEGTAB: DB 01H,02H,04H,08H,10H,20H END 程序说明: 我采用T0查询的方式进行定时,使得定时程序较为简单。单次循环50ms,循环2次,一共100ms。所以赋初值如下: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H 2、循环显示6个数码管的边缘各段,形成一个运动着的大边框。(能力选做题) ORG 0000H MOV R5,#255 MOV R6,#255 DISP1: MOV R1,#5 MOV R2,#20H LOOP1: CJNE R1,#5,NEXT1 MOV A,#39H LJMP BEGIN1 NEXT1: MOV A,#01H LJMP BEGIN1 BEGIN1: MOV P2,R2 MOV P0,A MOV A,R2 ACALL DELAY RR A MOV R2,A DJNZ R1,LOOP1 DISP2: MOV R1,#5 MOV R2,#01H LOOP2: CJNE R1,#5,NEXT2 MOV A,#0FH LJMP BEGIN2 NEXT2: MOV A,#08H BEGIN2: MOV P2,R2 MOV P0,A MOV A,R2 ACALL DELAY RL A MOV R2,A DJNZ R1,LOOP2 LJMP DISP1 DELAY: HERE: DJNZ R5,HERE MOV R5,#255 DJNZ R6,HERE MOV R5,#255 MOV R6,#255 RET END 程序说明: 为了使得沿6个数码管的各段循环,形成一个运动的大边框。我将循环的情况分成了3种: 在数码管的上半部分即a段运动 在数码管的下半部分即d段运动 在最左边让a,d,e,f段同时亮,在最右边让a,b,c,d段同时亮。 所以我将循

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档