单片机程序源代码新.docVIP

  • 28
  • 0
  • 约2.73万字
  • 约 43页
  • 2018-12-16 发布于湖北
  • 举报
单片机程序源代码新

第二章 任务一:闪烁广告灯的设计 利用89c51单片机的端口控制两个LED(D0和D1),编写程序,实现两个LED互闪。 #includereg52.h #define uint unsigned int #define uchar unsigned char sbit LED1=P0^0; sbit LED2=P0^1; void delayms(uint ms) { uint i; while(ms--) { for(i=0;i120;i++); } } void main() { while(1) { LED1=0; LED2=1; delayms(500); LED1=1; LED2=0; delayms(500); } } 任务二:流水广告灯的设计 利用89c51单片机的端口控制8个LED(D0~D7)循环点亮,刚开始时D0点亮,延时片刻后,接着D1点亮,然后依次点亮D2-D3-D4-D5 -D6-D7 ,然后再点亮D7-D6-D5-D4 -D3-D2-D1-D0,重复循环。 #includereg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uint i; uchar temp; uint a[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delayms(uint ms) { while(ms--) { uint j; for(j=0;j120;j++); } } void main() { while(1) { P0=0xfe; while(P0!=0x7f) { //P1=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个LED D0~D7的拉幕式与闭幕式广告灯设计。 拉幕式: 开始D0~D7全灭,延时片刻后首先D3和D4亮,其次是 D2和D5亮,再是D1和D6亮,最后是D0和D7亮。 闭幕式:开始D0~D7全亮,延时片刻后首先D0和D7灭,其次是 D1和D6灭,再是D2和D5灭,最后是D3和D4灭。 #includereg52.h #define uint unsigned int #define uchar unsigned char uchar code table[]={0xe7,0xc3,0x81,0x00}; void delay(uint x) { uint i,j; for(i=x;i0;i--) for(j=120;j0;j--); } void main() { uint i; while(1) { P1=0xff; delay(500); for(i=0;i4;i++) { P1=table[i]; delay(500); } for(i=3;i0;i--) { P1=table[i-1]; delay(500); } } } 任务四:复杂广告灯的设计 利用89c51单片机的端口实现8个LED(D0~D7)复杂广告灯的控制,要求显示规律为:正向流水-反向流水-隔灯闪烁3次-高四盏、低四盏闪烁2次-隔两盏闪烁3次,再重复循环。 #includereg52.h #define uint unsigned int #includeintrins.h void delayms(uint ms) { uint i; while(ms--) { for(i=0;i110;i++); } } void main() { uint i,j,xx[2]={0xaa,0xff},yy[2]={0xf0,0x0f},zz[2]={0xb6,0xff}; unsigned char aa; while(1) { aa=0xfe; for(i=0;i7;i++) { P0=aa; aa=_crol_(aa,1); delay

文档评论(0)

1亿VIP精品文档

相关文档