单片机整理文档.docxVIP

  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文档。上传文档
查看更多
利用独立按键实现对 LED进行控制,每当 按下一次键时, LED显示方式变化左移一 次,用以显示按键控制的结果。 #i nclude AT89X51.H #in elude vintrin s.h un sig ned char count; void delay10ms(void) {un sig ned char i,j; for(i=250;i0;i--) for(j=248;j0;j--);} void mai n(void) { coun t=0xfe; while(1) {if(P0_3==0) {delay10ms(); if(P0_3==0) {P 仁count; coun t=_crol_(co un t,1); while(P0_3==0); } }}} 2、汇编语言程序 ORG 00h mov a,#0feh REL: JB P0.3,REL ;判断SP1是否按下 LCALL DELAY ;若按下,则延时10ms 左右 JB P0.3,REL ;再判断SP1是否真得按 下 mov p1,a rl a JNB P0.3,$ ;等待 SP1 释放 SJMP rel ;继续对 K1按键扫描 DELAY: MOV R6,#20 ;延时 10ms 子程序 L1: MOV R7,#248 DJNZ R7,$ DJNZ R6,L1 RET END 利用独立按键实现对数码管的控制, 每当按 下一次键时, 数码管显示按键次数 0-9。 、C语言程序: #i nclude AT89X51.H un sig ned char count; un sig ned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; void delay10ms(void) {un sig ned char i,j; for(i=250;i0;i--) for(j=248;j0;j--);} void mai n(void) {while(1) {if(P0_3==0) {delay10ms(); if(P0_3==0) {co un t++; if(cou nt==10) {co un t=0; } P仁 table[cou nt]; while(P0_3==0); } }}} 2、汇编程序 ORG 00h START: MOV R1,#00H ;初始化 R1 为 0, REL: JB P0.3,REL ;判断SP1是否按下 LCALL DELAY ;若按下,则延时 10ms 左右 JB P0.3,REL ;再判断SP1是否真得按 下 MOV A,R1 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P1,A INC R1 JNB P0.3,$ ;等待 SP1 释放 CJNE R1,#10,REL SJMP START ;继续对K1按键扫描 DELAY: MOV R6,#20 ;延时 10ms 子程序 L1: MOV R7,#248 DJNZ R7,$ DJNZ R6,L1 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH END 本任务目标是用矩阵键盘控制数码管显示。 ? 1602液晶显示 C语言程序 #in elude reg51.h #defi ne uchar un sig ned char #defi ne uint un sig ned int sbit lede n=P2^2; sbit lcdrs=P2A0; sbit lcdrw=P2A1; uchar num; uchar code table[]=l LIKE MCU!; uchar code table1[]= ; void delay( uint z) { uint x,y; for (x=z;x0;x--) for(y=110;y0;y--); } void write_com(uchar com) {lcdrs=0; P仁com; delay(5); lcde n=1; delay(5); lcde n=0; } void in it() { lcde n=0; write_com(0x38); write_com(0x0c); write_com(0x0f); write_com(0x06); write_com(0x01); write_com(0x80);} void write_data(uchar date) {lcdrs=1; P仁 date; delay(5); lcde n=1; delay(5); lcde n=0; } void mai n() { lcdrw=0; i

文档评论(0)

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

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

1亿VIP精品文档

相关文档