- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机学习编程之流水灯篇OK
第一章 单片机的基础学习 第一个实验 LED发光二极管的左移右移(D1到D8依次)点亮 二极管点亮的原理图如下。实际上是接在P1口。 原理图说明:发光二极管阴极接单片机,让电流流入单片机,因为单片机输出电流小,点不亮发光二极管。发光二极管点亮电流为5 mA至20mA。 编程说明: (1)做一个LED的左移右移,有硬件电路可知,输出“0”才能使LED亮。开始时P1.0亮,——P1.1亮——P1.2亮….——P1.7亮——P1.0亮,重复循环点亮LED。 (2)延时时间的设计:石英晶体为12MHz,1个机器周期为1微秒,采用单片机每走一步指令需要的时间来延时。 延时时间子程序(10.002毫秒) Delay: MOV R4,#20 ;2个机器周期,2微秒 D1: MOV R5,#248 ;2个机器周期,2微秒 DJNZ R5,$ ;2个机器周期,2*248微秒 DJNZ R4,D1 ;2个机器周期,2*20微秒 RET 这个延时子程序:20*(498+2)+2=10002个机器周期=10.002毫秒。 延时时间子程序(200毫秒) Delay: MOV R3,#20 ; 200微秒 D1: MOV R4,#20 ;10微秒 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET (3)汇编程序源代码 注意:向电脑上编辑程序时注意标点符号要在英文的格式下输入。 ORG 00H MAIN: MOV A,#0FFH CLR C MOV R2,#08H ;左移点亮发光二极管 LOOP: RLC A ;带进位左移一位 MOV P1,A;点亮LED发光二极管 CALL DELAY;调用延时子程序 DJNZ R2,LOOP;左移、轮流点亮发;光二极管 ;左移点亮发光二极管后,再右移点亮发光二极管 MOV R2,#07H LOOP1: RRC A ;带进位右移一位 MOV P1,A;点亮LED发光二极管 CALL DELAY;调用延时子程序 DJNZ R2,LOOP1 JMP MAIN; 返回到初始位置 ;设置延时时间 DELAY: MOV R3,#20 D1: MOV R4,#20 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET END (4)C程序源代码 #include reg51.h void Delay()//延时子程序 { int i,j; for(i=0;i=255;i++) for(j=0;j=255;j++); } void main() { unsigned int i; unsigned int temp; P1=0xff; while(1) { temp=0x01; for(i=0;i8;i++) { P1=~temp;逐位取反 Delay(); temp=temp1; } } } (4)实验结果图(注意学习板上的JJ_P1连接器连上) 第二个实验 采用定时器来设置延时时间(方式0) 说明: (1)开始时p1.0亮,延时0.2秒后左移至p1.1亮,如此左移7次后至,再延时0.2秒右移至p1.6亮,如此右移7次后至p1.0亮; (2)延时时间0.2秒,使用定时器0在方式0下工作;采用查询的方式 (3)程序源代码 ORG 00H MOV TMOD,#00H /***设置定时器的工作方式***/ START: CLR C MOV A,#0FFH MOV R2,#08 /***设置循环次数***/ LOOP: RLC A /***带进位左循环累加器,点亮发光二极管***/ MOV P1,A /***设置定时器定时时间***/ MOV R3,#100 CALL DELAY DJNZ R2,LOOP /***点亮了八个发光二极管吗,没有继续***/ MOV R2,#07 LOOP1: RRC A MOV P2,A MOV R3,#100 CALL DELAY DJNZ R2,LO
文档评论(0)