【8-19】使用DA转换器DAC0832产生梯形波,梯形波的上.docVIP

【8-19】使用DA转换器DAC0832产生梯形波,梯形波的上.doc

  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文档。上传文档
查看更多
【8-19】使用DA转换器DAC0832产生梯形波,梯形波的上.doc

第八章作业: 1、设某一MCS-51系统,要求连接16个4×4的键盘,其硬件原理如下图所示,请编写相应键值扫描和识别程序。 答: 线路反转法: 程序说明: 本程序通过线路反转法实现对按键扫描码的判读和其他相关操作。 所谓线路反转法就是先通过将列清零读取按键的行值,在通过行清零读取列值,得到按键的扫描码,在通过查表的方式与0~F数值对应的按键扫描码比较得到相应的按键值。本程序通过在有键按下和键松开时添加的延时10ms子程序实现了防抖功能,同时利用了按键状态标志位(有键按下时标志为1,无键按下时标志为0)实现了对键按下与键松开的判断,同时也基于该状态标志位的操作实现了对连击和串键的避免,即通过在执行完相应的按键操作子程序并返回主程序后,通过不断读取按键值并判断状态标志位,如果始终为1(即该键始终按下或有其他键串键)则程序不向下执行,直至检测到键松开才继续执行。 程序流程图:(为简便只画出了主程序和按键获取子程序的流程图,因为延时子程序和按键操作子程序十分明了就不画了) 源程序: ORG 0000H LJMP MAIN ORG 0030H KEY: MOV P1, #00H ;按键获取与判断子程序 MOV P0, #0FH ;线路反转法,读行值 MOV A, P0 ANL A, #0FH MOV B, A MOV P0, #00H MOV P1, #0FH ;线路反转法,读列值 MOV A, P1 ANL A, #0FH SWAP A ORL A, B ;行数与列数合并得按键扫描码 CJNE A, #0FFH, DOWN JB 00H, UP SJMP KEY ;没有键按下且 UP: CLR 00H SJMP RETU DOWN: SETB 00H RETU: RET ;键按下或松开时才返回主程序 MAIN: CLR 00H ;按键状态标志位为1则键按下 LCALL KEY LCALL DELAY LCALL KEY MOV DPTR, #KEYCD MOV R1, #30H ;存储键值首地址 MOV R2, #0FFH MOV B, A SEARCH: INC R2 MOV A, R2 MOVC A, @A+DPTR ;查表获得R2对应的扫描码 CJNE A, B, JUDGE ;与获得的实际扫描比较 MOV A, R2 ;找到按键值 LCALL OP ;转向按键处理子程序 SJMP SLACK JUDGE: CJNE A, #0FFH, SEARCH MOV A, #0FFH ;未找到按键值 SJMP MAIN ;返回重新获取 SLACK:LCALL KEY JB 00H, SLACK ;按键未松开不执行等待松开 LCALL DELAY SJMP MAIN ;按键松开返回主程序重新获取 KEYCD: DB 0EEH, 0DEH, 0BEH, 7EH DB 0EDH, 0DDH, 0BDH, 7DH DB 0EBH, 0DBH, 0BBH, 7BH DB 0E7H, 0D7H, 0B7H, 77H DB 0FFH DELAY: MOV R6, #0AH ;延时10ms防抖子程序 A1: MOV R7, #0FFH A2: NOP NOP DJNZ R7, A2 DJNZ R6, A1 RET OP: MOV @R1, A ;按键操作处理子程序 INC R1 RET END 2、设某一MCS-51系统,要求外接8个LED数码管,其硬件原理如下图所示,请编写相应的动态显示程序,设显示内容为。 (输出口1地址为:BFH;输出口2地址为:7FH;) 答: 程序说明: 本程序实现了单片机驱动动态LED显示的功能,其中使用了外部存储器哦扩展技术。将段码输出口地址规定为BFH,即当P2.6口输出为低电平时且有向外的写信号(WR=0)时被选通输出LED显示的段码;而将位码输出口地址规定为7FH,即当P2.7口输出为低电平是且有向外的写信号(WR=0)时被选通输出LED显示的位码,通过一排反相器后控制8个LED的共阴极的点位,即控制其是否显示。于是可知可以将位码初始值设定为01H而仅使第一个LED显示,并通过

文档评论(0)

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

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

1亿VIP精品文档

相关文档