单片机程序编写代码(单片机如何编写程序)

单片机程序编写代码(单片机如何编写程序)仅供个人参考 仅供个人参考 不得用于商业用途 不得用于商业用途 不得用于商业用途 不得用于商业用途 第二章 任务一 闪烁广告灯的设计 利用 89C51 单片机的端口控制两个 LED DO 和 D1 编写程序 实现两个 LED 互闪 includereg52 h defineuintun defineucharu sbitLED 仁 POP

大家好,我是讯享网,很高兴认识大家。

仅供个人参考 仅供个人参考 不得用于商业用途 不得用于商业用途 不得用于商业用途 不得用于商业用途 第二章 任务一:闪烁广告灯的设计 利用89C51单片机的端口控制两个LED(DO和D1),编写程序,实现两个LED互闪。 #includereg52.h #defineuintunsignedint #defineucharunsignedchar sbitLED仁POP; sbitLED2=P0A1; voiddelayms(uintms) { uinti; while(ms–) { for(i=0;i120;i++); } } voidmain() { while(1) { LED1=O; LED2=1; delayms(500); LED1=1; LED2=0; delayms(500); } } 任务二:流水广告灯的设计 利用89C51单片机的端口控制8个LED(D0~D7)循环点亮,刚开始时DO点亮,延时片刻后,接着D1点亮,然后依次点亮D2-D3-D4-D5-D6-D7,然后再点亮D7-D6-D5-D4-D3-D2-D1-D0,重复循环。 #includereg52.h #includevintrins.h #defineuintunsignedint #defineucharunsignedchar uinti; uchartemp; uinta[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; voiddelayms(uintms) { while(ms–) {uintj; for(j=0;j120;j++); } } voidmain() { while(1) { P0=0xfe; while(P0!=0x7f) { 〃P仁temp;〃delayms(500);P0=crol(P0,1);delayms(250); } temp=0x7f;while(P0!=0xfe){ P0=temp;delayms(500);temp=cror(temp,1); } } } 任务三:拉幕式与闭幕式广告灯的设计 利用89C51单片机的P0端口实现8个LEDD0~D7的拉幕式与闭幕式广告灯设计。 拉幕式:开始D0~D7全灭,延时片刻后首先D3和D4亮,其次是D2和D5亮,再是D1 和D6亮,最后是D0和D7亮。 闭幕式:开始D0~D7全亮,延时片刻后首先D0和D7灭,其次是D1和D6灭,再是D2 和D5灭,最后是D3和D4灭。 #includereg52.h #defineuintunsignedint #defineucharunsignedchar ucharcodetable[]={0xe7,0xc3,0x81,0x00}; voiddelay(uintx) { uinti,j; for(i=x;i0;i–) for(j=120;j0;j–); } voidmain() { uinti; while(1) { P仁Oxff; delay(500); for(i=0;i4;i++) { P仁table[i];delay(500); } for(i=3;i0;i–) { P仁table[i-1];delay(500); } } } 任务四:复杂广告灯的设计 利用89C51单片机的端口实现8个LED(D0~D7)复杂广告灯的控制,要求显示规律为: 正向流水-反向流水-隔灯闪烁3次-高四盏、低四盏闪烁2次-隔两盏闪烁3次,再重复 循环。 #includereg52.h #defineuintunsignedint #includeintrins.h voiddelayms(uintms) { uinti; while(ms–) { for(i=0;i110;i++); } } voidmain() { uinti,j,xx[2]={0xaa,0xff},yy[2]={0xf0,0x0f},zz[2]={0xb6,0xff}; unsignedcharaa; while(1) { aa=0xfe; for(i=0;i7;i++) { P0=aa; aa=crol(aa,1); delayms(500); } for(i=0;i8;i++) { P0=aa; aa=cror(aa,1); delayms(500); } for(i=0;i3;i++) for(j=0;j2;j++) { PO=xx[j]; delayms(500); } for(i=0;i2;i++) for(j=0;j2;j++) { P0=yy[j]; delayms(500); } for(i=0;i3;i++) for(j=0;j2;j++) { PO=zz[j]; delayms(500


讯享网

小讯
上一篇 2025-05-25 15:01
下一篇 2025-04-29 16:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190265.html