单片机实验报告一_第1页
单片机实验报告一_第2页
单片机实验报告一_第3页
单片机实验报告一_第4页
单片机实验报告一_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 发光二极管实验一、实验目的1、掌握AT89C51 单片机IO 口的输入输出。2、掌握用查表方式实现AT89C51 单片机IO 口的控制。3、练习单片机简单延时子程序的编写。4、熟练运用Proteus 设计、仿真AT89C51 系统。二、实验内容1、编写延时子程序,延时时间为0.1S。程序代码如下: #include<reg51.h> void delay100ms() int m,n; for(m=0;m<100;m+) for(n=0;n<100;n+); 2、见图一。通过AT89C51 单片机控制8 个发光二极管发光,实现亮点以由上到下循环移动,间隔时间为0

2、.1S。程序代码如下:#include<reg51.h>void delay();/#define uchar unsigned char/#define uint unsigned intvoid main() int k; while(1) P1=0Xfe; delay(); for(k=0;k<7;k+) P1=P1<<1|0X01; delay(); void delay() int m,n; for(m=0;m<100;m+) for(n=0;n<120;n+); 仿真电路图如下:3、见图一。通过AT89C51 单片机控制8 个发光二极管发光

3、,循环实现亮点由上到下移动1 次(间隔时间为0.2S),由下到上移动1 次(间隔时间为0.2S),闪烁1 次(即先全亮0.1S,再全灭0.1S)。程序代码如下: #include<reg51.h> int k; void delay(int k); void main() while(1) int m,n; P1=0Xfe;delay(200);for(m=0;m<7;m+) P1=P1<<1|0X01; delay(200); for(n=0;n<7;n+) P1=P1>>1|0X80; delay(200); P1=0X00; delay(1

4、00); P1=0Xff; delay(100); void delay(int k) int i,j;for(i=0;i<k;i+)for(j=0;j<120;j+);仿真电路图: 4、见图一。用数组方式实现 题3 。程序代码如下: #include<reg51.h> int k; void delay(int k); char A=0Xfe,0Xfd,0Xfb,0Xf7,0Xef,0Xdf,0Xbf,0X7f; void main() while(1) int m,n;for(m=0;m<8;m+) P1=Am; delay(200); for(n=6;n&g

5、t;=0;n-) P1=An; delay(200); P1=0X00; delay(100); P1=0Xff; delay(100); void delay(int k) int i,j;for(i=0;i<k;i+)for(j=0;j<120;j+);电路图如题三。5、P2 口作为输入口,接8 只开关。P1 口做为输出口,接8 只发光二极管,通过设置8只拨动开关的状态控制8 只发光二极管的亮灭。程序代码如下: #include<reg51.h> sbit k0=P20; sbit k1=P21; sbit k2=P22; sbit k3=P23; sbit k4=

6、P24; sbit k5=P25; sbit k6=P26; sbit k7=P27; sbit y0=P10; sbit y1=P11; sbit y2=P12; sbit y3=P13; sbit y4=P14; sbit y5=P15; sbit y6=P16; sbit y7=P17; char a0,a1,a2,a3,a4,a5,a6,a7; void main() while(1) if(k0=0) y0=0 ; else y0=1; if(k1=0) y1=0 ; else y1=1; if(k2=0) y2=0 ; else y2=1; if(k3=0) y3=0 ; else

7、 y3=1; if(k4=0) y4=0 ; else y4=1; if(k5=0) y5=0 ; else y5=1; if(k6=0) y6=0 ; else y6=1; if(k7=0) y7=0 ; else y7=1; 仿真电路图如下:6、用蜂鸣器发出固定电话回音声音。见图三。 固定电话回音声音:450Hz,通1秒断4秒。程序代码如下: #include<reg51.h> int k; void delay(int k); sbit P37=P37; void main() int i; while(1) for(i=0;i<500;i+) P37=1; delay

8、(1); P37=0; delay(1); P37=0; delay(4000); void delay(int k) int m,n; for(m=0;m<k;m+) for(n=0;n<120;n+); 7、1、按键若不按下,LED灯全灭。2、按键每按下一次,LED灯亮状态实现加法功能。 即:第一次按下,灯状态为1111 1110;第二次按下,灯状态为1111 1101; 第三次按下,灯状态为1111 1100;.。 直到灯状态为0000 0000 。再次按下后,状态又如同第一次按下。3、按键每次按下时,蜂鸣器有声音发出。(高电平1毫秒,低电平1毫秒,表明确实有按键按下)。程序

9、代码如下:#include<reg51.h>sbit P20=P20;sbit P37=P37;void delay(int k);void main() P1=0Xff; P37=0; while(1) if(P20=0) delay(20);if(P20=0) P37=0; delay(1); P37=1; delay(1); P1=P1-1; while(!P20); P37=0; void delay(int k) int m,n; for(m=0;m<k;m+) for(n=0;n<120;n+); 仿真电路图如下: 图三8、 简易模拟交通灯说明:东西向绿灯亮

10、10秒,黄灯闪烁3次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,15秒后南北向黄灯闪烁3次后变红灯,东西向变绿灯,如此重复。程序代码如下:#include<reg51.h>#define uint unsigned int void delay(uint k); void main () while(1) P3=0X1E; delay(10000); uint i;for(i=0;i<3;i+) P3=0X2E; delay(1000); P3=0X3E; delay(1000); P3=0X33; delay(15000); uint m;for(m=0;m<3;m+

11、) P3=0X35; delay(1000); P3=0X37; delay(1000); void delay(uint k) uint i,j; for(i=0;i<k;i+) for(j=0;j<110;j+); 仿真电路图如下: 9、利用开关控制LED。要求:1、 每次按下K1时递增点亮一只LED,全亮时再次按下则再次循环开始;2、 K2按下后点亮上面4只LED3、 K3按下后点亮下面4只LED4、 K4按下后关闭所有LED程序代码如下: #include<reg51.h> #define uchar unsigned char sbit k1=P14; sbi

12、t k2=P15; sbit k3=P16; sbit k4=P17; static uchar i=0;m; uchar tab=0Xff,0Xfe,0Xfc,0Xf8,0Xf0,0Xe0,0Xc0,0X80,0X00; void keyboardscan(); void main() while(1) keyboardscan(); void keyboardscan() if(k1=0) if(i=8) i=0;else i=i+1; P0=tabi;while(!k1); if(k2=0) P0=0Xf0; if(k3=0) P0=0X0f; if(k4=0) P0=0Xff; 仿真电路图如下:按下K1: 按下K2:按下K3:按下K4:三、实验心得:第一次做单片机的实验,说实话是感慨万分。从写代码到仿真

温馨提示

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

最新文档

评论

0/150

提交评论