网站大量收购独家精品文档,联系QQ:2885784924

单片机实验及proteus仿真_C语言篇..doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验及proteus仿真_C语言篇.

单片机实验: 说明,以下是我整理了一些在学习单片机的过程中所做的一些典型的实验,所有程序均用C语言编写,为了方便,在仿真时电路能省的都被省掉了(比如省去晶振用了外部时钟)。程序不一定很优化,也不一定完全没有错误,仅供大家参考。 希望大家一块学习!!!! 第一:I/O操作篇 实验一.闪烁的灯 图: 程序: #include AT89X51.H void delay02s(); void main(void) {while(1) {P1_0=0; //P1.0=0 led点亮 delay02s(); //延时0.2s P1_0=1; //P1.0=1 led熄灭 delay02s(); //延时0.2s } } void delay02s(void) //延时0.2s的函数 {unsigned char i,j,k; for(j=20;j0;j--) for(i=20;i=0;i--) for(k=248;k=0;k--); } 实验二:模拟开关 程序: #include AT89X51.H void main() { while(1) {if (P1_7==0) P1_0 = 0;//key按下P1_7=0,led点亮 else if ( P1_7==1) P1_0 = 1;//key弹起P1_7=1,led熄灭 } } 实验三: 多路开关 程序: #include AT89X51.H void main() {while(1) {P1_0 = P1_7; P1_1 = P1_6; P1_2 = P1_5; P1_3 = P1_4; } } 实验四:跑马灯(一) 图: 程序: //单一灯的左移右移 //八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上 //输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。 #include AT89X51.H void delay02s(); void main() {unsigned int a; while (1) {P1=0xfe; delay02s(); for(a=7;a0;a--)//右移 {P1=(P11)+1; delay02s(); } for(a=6;a0;a--)//左移 {P1=(P11)+0x80; delay02s(); } } } void delay02s() {unsigned int i,j,k; for(i=0;i20;i++) for(j=0;j20;j++) for(k=0;k248;k++); } 实验五:跑马灯(二、查表方式) 图: 程序: #include AT89X51.H void delay02s(); void main() {unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, //第一次,右移一行 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, //第二次,右移一行 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, //第一次,左移一行 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, //第二次,左移一行 0x00,0xff,0x00,0xff}; //闪烁两次 unsigned char a; while(1) { for (a=0;a35;a++) {P1=table[a]; delay02s(); } } } void delay02s() {unsigned char i,j,k; for(i=20;i0;i--) for(j=20;j0;j--) for(k=248;k0;k--); } 实验六:led计数 程序: #include AT89X51.H void delay02s(); void main() {unsigned char code table[]={0x40,0xf9,0x24,0x30,0x19,0x12,

文档评论(0)

cv7c8hj6b4I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档