单片机c语言简单编程_第1页
单片机c语言简单编程_第2页
单片机c语言简单编程_第3页
单片机c语言简单编程_第4页
单片机c语言简单编程_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、点亮2、3、5、8四个发光二极管。课后作业#includesbitLED2=P1A0;sbitLED3=P1A3;sbitLED5=P1A5;sbitLED8=P1A6;main()LED2=0;/第二盏灯亮LED3=0;/第三盏灯亮LED5=0;/第五盏灯亮LED8=0;/第八盏灯亮while(1);2、设计走马灯和数码管逐一显示数字。课后作业#includevoidDelay()unsignedintj;j=30000;while(j-);/时间延时函数voidmain()inta10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0

2、x80,0 x90;/数码管显示段码intb10=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xaa,0 x55;/点亮灯的段码unsignedchari;while(1)for(i=0;i10;i+)P1=bi;P2=ai;Delay();3、开关K1控制加,开关K2控制减,开关K3控制复位。当减到小于0的时候再从99开始减,当加到99的时候又从0开始加。课后作业#includesbitBIT1=P3A0;sbitBIT2=P3A1;sbitButton1=P3A7;sbitButton2=P3A6;sbitButton3=P3A5;u

3、nsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/数码管显示段码voidDelay(unsignedintt)unsignedinti,j;for(i=0;it;i+)for(j=0;j252;j+);/时间延迟函数的定义voidmain()chardat=0;/有符号数intb10=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xaa,0 x55;/跑马灯显示的段码unsignedcharz;while(1)for(z=0;z=99)da

4、t=0;while(Button1=0);/按键1是控制加的,当加到大于等于99时又从0开始加if(Button2=0)dat-;if(dat=0)dat=99;while(Button2=0);/按键2是控制减的,当减到小于等于0时再从99开始减if(Button3=0)dat=0;while(Button3=0);/按键3是控制复位的,任何时候按下就归4、开始1、2、3、4闪烁,按一下K1,5、6、7、8闪烁,再按一下K1全部闪烁。课堂作业#includesbitK1=P3A0;unsignedcharstate=0;voidDelay(unsignedintt)unsignedinti,

5、j;for(i=0;it;i+)for(j=0;j=3)state=0;while(K1=0);25、先是1、2、3、4灯闪8下,再5、6、7、8灯闪8下。循环闪烁。#includevoidDelay()unsignedintj;j=50000;while(j-);main()chari=0;while(1)for(i=0;i16;i+)if(i8)P2=0Xf0;Delay();P2=0 xff;Delay();elseif(i16)P2=0X0f;Delay();P2=0 xff;Delay();6、逐个点亮8个发光二极管第一次亮一个。最后全亮,然后再重新开始(实验一1)#includev

6、oidDelay()unsignedintj;j=30000;while(j-);/时间按延时函数voidmain()inta8=0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00;/点亮灯的段码unsignedchari;while(1)for(i=0;i8;i+)P2=ai;Delay();7、用中断函数控制加减用数码管显示数字。八盏发光二极管可以根据加减控制左右移。课后作业)#include#includeunsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8;unsign

7、edcharx=0 xfe;ss=0;main()IT0=1;EX0=1;IT1=1;EX1=1;EA=1;while(1)P1=x;P2=ass;if(ss9)ss=0;if(ss0)ss=9;voiddat1()interrupt0ss+;x=_crol_(x,1);voiddat2()interrupt2ss-;x=_cror_(x,1);8、按开关K1点亮1、2、3、4,松手灭,开关K2点亮5、6、7、8,松手灭。课堂作业#includeSbitK1=P3A0;SbitK2=P3A1;Voidmain()Whlie(1)P1=0 xf0;Elseif(K2=0)P1=0 x0f;Els

8、eP1=0 xff;9、点亮一盏灯,并使其闪烁。课堂作业#includeSbitLED1=P1A0;VoidDelay()Unsignedintj;j=50000;whlie(j-);Voidmain()Whlie(1)LED1=0;Delay();LED1=1;Delay();10、先点亮1、3、5、7灯,熄灭,再点亮2、4、6、8灯。课堂作业#includevoidDelay(unsignedintt)unsignedinti,j;for(i=0;it;i+)for(j=0;j252;j+);voidmain()inta2=0 xaa,0 x55;unsignedchari;while(1

9、)for(i=0;i2;i+)P1=ai;Delay(100);11、要求使用8个按键K1K8,当按下按键时,用数码管显示出相应按键值K11,K22,。放开时显示0。实验二#includesbitK1=P3A0;sbitK2=P3A1;sbitK3=P3A2;sbitK4=P3A3;sbitK5=P3A4;sbitK6=P3A5;sbitK7=P3A6;sbitK8=P3A7;voidmain()while(1)if(K1=0)P2=0 xf9;elseif(K2=0)P2=0 xa4;elseif(K3=0)P2=0 xb0;elseif(K4=0)P2=0 x99;elseif(K5=0)

10、P2=0 x92;elseif(K6=0)P2=0 x82;elseif(K7=0)P2=0 xf8;elseif(K8=0)P2=0 x80;elseP2=0 xc0;12、用中断程序K3、K4分别控制加减及发光二极管左右挪动。实验三实际操作#include#includesbitK3=P3A2;sbitK4=P3A3;unsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;unsignedcharx=0 xfe;ss=0;voiddelay(unsignedintt)unsignedinti,j

11、;for(i=0;it;i+)for(j=0;j9)ss=0;if(ss0)ss=9;voiddat1()interrupt0delay(10);if(K3=0)ss+;x=_crol_(x,1);voiddat2()interrupt2delay(10);if(K4=0)ss-;x=_cror_(x,1);13、8051单片机主振为12MHz,在P1A5引脚上接一个发光二极管和蜂鸣器,如用T0定时,每1S控制该灯亮一次,一直循环下去。实验四,用方式1,1s=10A3ms#includesbittest=P1A5;unsignedchari=0;main()TMOD=0 x01;TH0=155

12、36/256;TL0=15536%256;TR0=1;ET0=1;EA=1;while(1);voidsb()interrupt1TH0=15536/256;TL0=15536%256;i+;if(i19)test=test;i=0;14、制作一个9秒钟倒计时装置,时间由一位数码管显示,并要求使用一个按键控制倒计时的开始,当时间到0时,停顿计时,并驱动蜂鸣器发声。实验五#includesbitK=P3A1;sbittest=P1A5;unsignedchari=0;ss=9;unsignedchara10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0

13、xf8,0 x80,0 x90;main()TMOD=0 x01;TH0=15536/256;TL0=15536%256;ET0=1;EA=1;while(1)P2=ass;if(K=0)TR0=1;voidjk()interrupt1TH0=15536/256;TL0=15536%256;i+;if(i19)ss-;i=0;if(ss=0) TR0=0;ss=0;test=test;15、用串口中断函数设计出显示自己姓名首写字母和学号,式 1 下。 课后作业#includevoid Send(unsigned char dat) 11.5200MZ、9200b/s,工作在方SBUF=dat;

14、 while(!TI); TI=0;/发送函数/发送/等待发送完毕TI=1void Delay(unsigned int t) unsigned int i,j;for(i=0;it;i+) for(j=0;j256;j+) ;/时间延迟函数void UART_Init() SCON=0 x50;TMOD=0X20;TH1=0 xfd;TL1=0 xfd;TR1=1;ES=1;/程序初始函数/ 0101 0000/ 0010 0000/ 初始值设定/ 备用初始值串口工作在方式一定时器工作在方式二/串口中断允许/调用程序初始函数/ Send(0 x32);/ Send(0 x30);/ Send

15、(0 x30);/ Send(0 x38);/ Send(0 x30);/ Send(0 x33);/ Send(0 x35);/ Send(0 x34);main()UART_Init();while(1)Send(Y);Send(J);Send();Send(2);Send(0);Send(0);Send(8);Send(0);Send(3);Send(5);Send(4);Send();Delay(300);/主函数16、利用定时器T1,在方式1的工作条件下,定时40ms,P1A0口输出的周期是80ms,晶振频率为6MHz。课堂作业#includesbittest=P1A0;main()TMOD=0 x10;TH1=0 xb1;TL1=0 xe0;TR1=1;ET1=1;EA=1;while(1)voidsb()interrupt3TH1=0 xb1;TL1=0 xe0;test=test;17、T0方式一定时30msT=90ms高电平30ms低电平60ms晶振频率为12MHz。课堂作业#includesbitTest=P1A0;unsignedcharflag=1;main()TMOD=0 x01;TH0=0 xba;TL0=0 xd0;TR0=1;ET0=1;EA=1;while(1)voiddat()inter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论