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

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

ID:61033732

大小:899.00 KB

页数:23页

时间:2021-01-20

单片机实验及PROTEUS仿真_C语言.doc_第1页
单片机实验及PROTEUS仿真_C语言.doc_第2页
单片机实验及PROTEUS仿真_C语言.doc_第3页
单片机实验及PROTEUS仿真_C语言.doc_第4页
单片机实验及PROTEUS仿真_C语言.doc_第5页
资源描述:

《单片机实验及PROTEUS仿真_C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、单片机实验:说明,以下是我整理了一些在学习单片机的过程中所做的一些典型的实验,所有程序均用C语言编写,为了方便,在仿真时电路能省的都被省掉了(比如省去晶振用了外部时钟)。程序不一定很优化,也不一定完全没有错误,仅供大家参考。希望大家一块学习!!!!第一:I/O操作篇实验一.闪烁的灯图:程序:#include"AT89X51.H"voiddelay02s();voidmain(void){while(1){P1_0=0;//P1.0=0led点亮delay02s();//延时0.2sP1_0=1;//P1.0=1led熄灭delay0

2、2s();//延时0.2s}}voiddelay02s(void)//延时0.2s的函数{unsignedchari,j,k;for(j=20;j>0;j--)for(i=20;i=0;i--)for(k=248;k=0;k--);}实验二:模拟开关程序:#include"AT89X51.H"voidmain(){while(1){if(P1_7==0)P1_0=0;//key按下P1_7=0,led点亮elseif(P1_7==1)P1_0=1;//key弹起P1_7=1,led熄灭}}实验三:多路开关程序:#include"AT

3、89X51.H"voidmain(){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"voiddelay02s();voidmain(){unsignedinta;while(1){P1=0xfe;d

4、elay02s();for(a=7;a>0;a--)//右移{P1=(P1<<1)+1;delay02s();}for(a=6;a>0;a--)//左移{P1=(P1>>1)+0x80;delay02s();}}}voiddelay02s(){unsignedinti,j,k;for(i=0;i<20;i++)for(j=0;j<20;j++)for(k=0;k<248;k++);}实验五:跑马灯(二、查表方式)图:程序:#include"AT89X51.H"voiddelay02s();voidmain(){unsignedcha

5、rtable[]={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};//闪烁两次unsignedchara;while(1){for(a=0;a

6、<35;a++){P1=table[a];delay02s();}}}voiddelay02s(){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}实验六:led计数程序:#includevoiddelay02s();voidmain(){unsignedcharcodetable[]={0x40,0xf9,0x24,0x30,0x19,0x12,0x03,0xf8,0x00,0x18};unsignedchardi

7、sp;while(1){for(disp=0;disp<10;disp++){P0=table[disp];delay02s();}}}voiddelay02s(){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}实验七:二进制计数程序://用四个发光二极管模拟计数点击开关次数.#include"AT89X51.H"voiddelay10ms();voidmain(){P0=0xff;while(1){/*////////////////

8、//////////////////////////////if(P0_7==1)//按键按下{delay10ms();if(P0_7==0)//按键弹起,此时灯亮.P0=P0-1;}/////////////////////////

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。