ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:17.09KB ,
资源ID:4453640      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4453640.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机期末考试编程题.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机期末考试编程题.docx

1、单片机期末考试编程题/*实验题目要求:P23- P26口做输出口,接发光二极管,编写并调试程序,使其闪烁。时间:2012年12月21日程序撰写者:邹康*/#includevoid delay(unsigned int t) /软延时大致时间为1ms unsigned int a,b; for(a=0;at;a+) for(b=0;b120;b+);void main() while(1) P2=P2; delay(1000); /延时1s /* 实验题目要求:P23- P26口做输出口,接发光二极管,编写并调试跑马灯程序。时间:2012年12月21日程序撰写者:邹康 */#includevoi

2、d delay(unsigned int t) /延时1ms左右 unsigned int a,b; for(a=0;at;a+) for(b=0;b120;b+);void main() unsigned char i=0,m=0; while(1) for(i=0;i4;i+) /向左移动 P2=(0x08i); delay(1000); m=P2; for(i=0;ii); delay(1000); /*实验题目要求:设计一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。时间:2012年12月21日程序撰写者:邹康*/#includesbit

3、 key1=P20;sbit LED0=P26; /单片机板子最右边的led灯sbit LED1=P25; /右边数第二个灯sbit LED2=P24; /右边数第三个灯sbit LED3=P23; /右边数第四个灯char number=15;unsigned char num4;void key() /通过按键对NUMBER的数值进行减计数 static unsigned char m=0; if(key1=0) m+; if(m=30) number-; if(number0) number=15; m=0; void number_change() /将十进制转换为二进制 unsign

4、ed int n=0; unsigned char j=0; n=number; for(j=0;j4;j+) numj=n%2; n=n/2; void show() /通过LED将二进制显示出来 LED0=!num0; LED1=!num1; LED2=!num2; LED3=!num3; void main() while(1) key(); number_change(); show(); /*实验题目要求:用1个按键控制LED的显示,要求显示3种以上的不同模式。时间:2012年12月22日程序撰写者:邹康*/#includesbit led0=P23;sbit led1=P24;sb

5、it led2=P25;sbit led3=P26;sbit mode_key=P20;char mode=0;void delay(unsigned int t) /延时时间大约1ms unsigned int a,b; for(a=0;at;a+) for(b=0;b=30) mode+; if(mode=3) mode=0; m=0; void mode_1() /模式一 根据开发板,LED循环右移,时间间隔1s左右 unsigned char i=0,c=0; for(i=0;i4;i+) P2|=0xf8; c=(0x08i); P2&=c; delay(1000); void mo

6、de_2() /模式二 根据开发板,LED一闪一灭,时间间隔1s左右 led0=0; led1=0; led2=0; led3=0; delay(1000); led0=1; led1=1; led2=1; led3=1; delay(1000);void mode_3() /模式三 , 先循环右移,再循环左移,时间间隔1s左右 unsigned char i=0,n=0,c=0; for(i=0;i4;i+) P2|=0xf8; P2&=(0x08i); delay(1000); for(i=0;ii); delay(1000); void main() while(1) key(); sw

7、itch(mode) case 0 : mode_1();break; case 1 : mode_2();break; case 2 : mode_3();break; /*实验题目要求:用1个按键控制LED的显示,要求显示3种以上的不同模式。时间:2012年12月22日程序撰写者:邹康*/#includesbit led0=P23;sbit led1=P24;sbit led2=P25;sbit led3=P26;sbit mode_key=P20;char mode=0;void delay(unsigned int t) /延时时间大约1ms unsigned int a,b; for

8、(a=0;at;a+) for(b=0;b=30) mode+; if(mode=3) mode=0; m=0; void mode_1() /模式一 根据开发板,LED循环右移,时间间隔1s左右 unsigned char i=0,c=0; for(i=0;i4;i+) P2|=0xf8; c=(0x08i); P2&=c; delay(1000); void mode_2() /模式二 根据开发板,LED一闪一灭,时间间隔1s左右 led0=0; led1=0; led2=0; led3=0; delay(1000); led0=1; led1=1; led2=1; led3=1; del

9、ay(1000);void mode_3() /模式三 , 先循环右移,再循环左移,时间间隔1s左右 unsigned char i=0,n=0,c=0; for(i=0;i4;i+) P2|=0xf8; P2&=(0x08i); delay(1000); for(i=0;ii); delay(1000); void main() while(1) key(); switch(mode) case 0 : mode_1();break; case 1 : mode_2();break; case 2 : mode_3();break; /*实验题目要求:采用外部中断的方式实现用1个按键控制LE

10、D的显示,要求显示3种以上的不同模式。时间:2012年12月22日程序撰写者:邹康*/#includesbit led0=P23;sbit led1=P24;sbit led2=P25;sbit led3=P26;unsigned char mode=0; void delay(unsigned int t) /延时时间大约1ms unsigned int a,b; for(a=0;at;a+) for(b=0;b120;b+);void mode_1() /模式一 根据开发板,LED循环右移,时间间隔1s左右 unsigned char i=0,c=0; for(i=0;i4;i+) P2|

11、=0xf8; c=(0x08i); P2&=c; delay(1000); void mode_2() /模式二 根据开发板,LED一闪一灭,时间间隔1s左右 led0=0; led1=0; led2=0; led3=0; delay(1000); led0=1; led1=1; led2=1; led3=1; delay(1000);void mode_3() /模式三 , 先循环右移,再循环左移,时间间隔1s左右 unsigned char i=0,n=0,c=0; for(i=0;i4;i+) P2|=0xf8; P2&=(0x08i); delay(1000); for(i=0;ii)

12、; delay(1000); void init() EA=1; IT0=1; EX0=1;void main() init(); while(1) switch(mode) case 0:mode_1();break; case 1:mode_2();break; case 2:mode_3();break; void come0() interrupt 0 mode+; if(mode2) mode=0;/*实验题目要求:采用外部中断的方式实现一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。时间:2012年12月22日程序撰写者:邹康*/#i

13、ncludesbit led0=P26;sbit led1=P25;sbit led2=P24;sbit led3=P23;unsigned char num4;char number=15;void init() EA=1; IT0=1; EX0=1;void num_change() char i=0,n=0; n=number; for(i=0;i4;i+) numi=n%2; n=n/2; led0=!num0; led1=!num1; led2=!num2; led3=!num3;void main() init(); while(1) num_change(); void come

14、0() interrupt 0 number-; if(number0) number=15;/*实验题目要求:采用外部中断的方式实现用1个按键控制LED的显示,要求显示3种以上的不同模式。时间:2012年12月22日程序撰写者:邹康*/#includesbit led0=P23;sbit led1=P24;sbit led2=P25;sbit led3=P26;unsigned char mode=0; void delay(unsigned int t) /延时时间大约1ms unsigned int a,b; for(a=0;at;a+) for(b=0;b120;b+);void mo

15、de_1() /模式一 根据开发板,LED循环右移,时间间隔1s左右 unsigned char i=0,c=0; for(i=0;i4;i+) P2|=0xf8; c=(0x08i); P2&=c; delay(1000); void mode_2() /模式二 根据开发板,LED一闪一灭,时间间隔1s左右 led0=0; led1=0; led2=0; led3=0; delay(1000); led0=1; led1=1; led2=1; led3=1; delay(1000);void mode_3() /模式三 , 先循环右移,再循环左移,时间间隔1s左右 unsigned char

16、 i=0,n=0,c=0; for(i=0;i4;i+) P2|=0xf8; P2&=(0x08i); delay(1000); for(i=0;ii); delay(1000); void init() EA=1; IT0=1; EX0=1;void main() init(); while(1) switch(mode) case 0:mode_1();break; case 1:mode_2();break; case 2:mode_3();break; void come0() interrupt 0 mode+; if(mode2) mode=0;/*实验题目要求:设计1个秒计数器,

17、每秒计1次数,在LED上显示出来,计至16清零后重新计数时间:2012年12月22日程序撰写者:邹康*/#includeunsigned int k=0;char number=0;unsigned char num4;sbit led0=P23;sbit led1=P24;sbit led2=P25;sbit led3=P26;void init() EA=1; ET0=1; TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1;void num_change() unsigned char i=0,n=0; n=num

18、ber; for(i=0;i=20) k=0; number+; if(number15) number=0; /*实验题目要求:在上题基础上用按键控制秒计数器的启停,按一次键开始计数,按2次停止计数,按3次又开始计数。时间:2012年12月22日程序撰写者:邹康*/#includesbit led0=P23;sbit led1=P24;sbit led2=P25;sbit led3=P26;sbit keyz=P20;unsigned char flag=0;unsigned char k=0,number=0;unsigned char num4;void init() EA=1; ET0=1; TH0=(65536-50000)%256; TL0=(65536-50000)/256;void key() unsigned int m=0; if(keyz=0) m+; if(m=30) flag=!flag; m=0; void num_change() unsigned char i=0,n=0; n=number; for(i=0;i19) number+; if(number15) number=0; k=0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1