1、综合性实验实验七定时器方波脉冲实验八计数器实验九数码管显示实验十键盘扫描实验十一串行通信实验十二液晶显示 1602实验十三I2C 串行总线实验十四A/D 转换 ADC0809实验十五D/A 转换 DAC0832实验一 单片机最小系统班级 、 姓名 、 学号 、指导教师 实验学时数 、 实验位置 、 实验日期 年 月 日一、实验目的掌握 51 单片机工作的最基本电路,理解最小系统的硬件电路连接。二、实验要求用 Proteus 画出最小系统电路图。三、实验仿真(画出实验电路)四、总结碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。五、评语实验二 点亮一盏灯了解二极管的显示原理,
2、掌握二极管显示的编程方法,理解二极管与单片机的硬件电路连接。用 proteus 画出电路图,用 keil 软件编程,并生成 HEX 文件,在 proteus 上面仿真实现,结果无误,在试验箱上下载验证。四、实验程序#include #define uint unsigned int#define uchar unsigned char sbit led=P27;void main()while(1)led=1;五、总结:单片机课是一门实践性很强的课程,仅有课堂上理论知识的学习,对运用好单片机是完全不够的,必须亲自做实验,从实验中吸取教训,总结经验,增加实战经验,加深对单片机的理解,更好的运用单
3、片机。六、评语实验三 流水灯了解二极管的显示原理,掌握二极管流水显示的编程方法,理解二极管与单片机的硬件电路连接。用 proteus 画出电路图,用 keil 软件编程,并生成 HEX 文件,在 proteus 上面仿真实现,结果无误,在试验箱上下载验证。 #include#define uchar unsigned char void delay(uint);P2=0x01;delay(500);P2=_crol_(P2,1);void delay(uint x)uint i,j; for(i=x;i0;i-)for(j=110;jj-);单片机实验课让我将课堂上学到的理论知识运用到实验当中
4、去,在实验中发现问题,解决问题,强化理论知识的运用。实验四 脉冲触发外部中断了解中断的原理,掌握脉冲触发方式中断的编程方法,理解编写中断程序用到的寄存器。用 proteus 画出电路图,用 keil 软件编程,并生成 HEX 文件,在 proteus 上面仿真实现,结果无误,在试验箱上下载验证。EA=1;EX0=1;IT0=1;P1=0x00;void INT0_tiaobian() interrupt 0uint i;EA=0;for(i=0;i9)void T0_jishu3() interrupt 1 /void T1_jishu6() interrupt 3TH1=0xff;通过本次实
5、验我更加熟练的掌握了中断的使用。实验九 数码管显示了解数码管的动态显示和静态显示,掌握数码管的动态显示编程,理解数码管与单片机的硬件电路连接。#define uchar unsigned char uchar num;void delay(uint);P3=0xfe; P2=table1; delay(5); P3=0xfd; P2=table2; P3=0xfb; P2=table3; P3=0xf7;P2=table4; P3=0xef; P2=table5; P3=0xdf; P2=table6;要注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一
6、点点的错误就会使你整个程序不能运行。因此我们不仅仅要有整体意识, 也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。实验十 键盘扫描了解键盘扫描原理,掌握键盘的延时去抖、识别方法,理解键盘与单片机的硬件电路连接,掌握键盘的编程方法。用 proteus 画出电路图,用 keil 软件编程,并生成 HEX 文件,在 proteus 上面仿真实现,结果无误,在试验箱上下载验证。三、实验仿真(画出电路图)#define uint unsigned int #define uchar unsigned char uchar num;uchar temp;P3=0x0f;if(P3=0x0e)de
7、lay(10); if(P3=0x0e) P3=0xf0;temp=P3; switch(temp)case 0xe0:P2=table0; break;case 0xd0:break; case 0xb0:P2=table2;case 0x70:if(P3=0x0d) if(P3=0x0d)case 0xb0: case 0x70:P2=table7;if(P3=0x0b) if(P3=0x0b)P2=table8; P2=table9;P2=table10; P2=table11; if(P3=0x07)P2=table12; P2=table13;P2=table14; P2=table
8、15;做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。实验十一 串行通信了解串行通信工作原理,掌握工作方式 1 下的编程方法。#define uint unsigned int #define uchar unsigned char uchar flag,a,i;uchar code table=I get ; void init()TMOD=0x20;TL1=0xf1;TR1=1;REN=1;SM0=0;SM1=1;ES=1;void main()init(); while(1
9、)if(flag=1)ES=0;6;SBUF=tablei; while(!TI);TI=0; SBUF=a;while(!flag=0;void ser() interrupt 4RI=0; a=SBUF;flag=1;要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。实验十二 液晶显示 1602掌握液晶显示的工作原理,理解 1602 液晶模块与单片机的硬件电路连接,掌握液晶显示的编程方法。用 proteus 画出电路图,用 keil 软件编程,并生成 HEX 文件,在 proteus 上面仿真实现,结果无误,在试验箱上下载验证。#define uint unsigned int #define uchar unsigned charHello danpianji uchar code table1=XCU-wulianwang sbit lcden=P16;sbit lcdrs=P17; uchar num;for(j=50;void write_com(uchar com)lcdrs=0; P3=com; delay(1); lcden=1; lcden=0;void write_data(uchar date)lcdrs=1; P3=date;lcden=1;void init()lcden=0; write_com
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1