单片机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一闪烁灯
1. 实验任务
在单片机的P1.0端口上接一个发光二极管D1,使D1在不停地一亮一灭。
2. 电路原理图
3. 硬件连线
将单片机中J2接口的P1.0端口用导线连接到J15接口的发光二极管D1的端口上。
4. 程序设计内容
1、编写一段程序,用P1.0接口作为控制端口,使发光二极管亮和灭。
5. 程序框图
6. C语言程序
#include
//延时
void delay(unsigned char time) {
unsigned char a,b,c;
for(a=0;a<=time;a++)
for(b=0;b<=10;b++)
for(c=0;c<=120;c++); }
//主程序
main(void)
{
while(1)
{
P1_0=1; //发光二极管D1亮
delay(10);
P1_0=0; //发光二极管D1灭
delay(10);
}
}
7、实验思考题
(1)请用户思考下,怎样让几个发光二极管同时亮。
实验二跑马灯
1. 实验任务
做单一灯的右移,硬件电路如图4.4.1所示,八个发光二极管D1-D8分别接在单片机的P1.0-P1.7接口上,输出“1”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7亮,重复循环。
2. 电路原理图
3 .硬件连线
将单片机中J2接口的P1.0-P1.7连接到J15接口发光二极管D1-D8端口上,要求:P1.0对应着D1,P1.1对应着D2,……,P1.7对应着D8。
4 程序设计内容
我们可以运用查表方式,将数据送到P1口上,每次送出的数
据是不同,具体的数据如下表1所示
表1 5. 程序框图
6.C 语言程序
#include
unsigned char shuzu[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //送到P1口的数组 //延时程序
void delay(unsigned char time) {
unsigned char a,b,c; for(a=0;a<=time;a++) for(b=0;b<=10;b++) for(c=0;c<=120;c++); }
//主程序
void main(void) {
unsigned char i; while(1) {
for(i=0;i<8;i++) {
P1=shuzu[i]; //把数组里面的数据送给
P1口 delay(10); } } }
7、实验思考题 (1)、请用户思考下,想出几种实现以上功能的编程方法。 (2)、请用户思考下,使以上实验从左道右,又右到左怎么实现。
实验三串并转换
1、实验任务
熟悉并掌握串转并的I/O口扩展方法,同时熟悉74HC595的使用方法。
2、实验原理图
3、硬件连线
将单片机J2接口的P1.0,P1.1,P1.2,P1.3分别与74HC595区J9接口的OE,SCLK,LCK,SDI连接。然后将74HC595区J8接口的Q0到Q7分别与发光二极管区J15接口的D1到D8连接。
4、程序设计的内容
编写一段代码,从74HC595写入一个数据,通过外接8个发
光将数据显示出来5、程序框图
6、C语言程序
#include
/*控制引脚定义*/ sbit CLK = P1^0;
sbit RCLK = P1^1; sbit SER = P1^2;
void delayms(unsigned char x) //////延时x ms 误差16us {
unsigned char y=123;
unsigned char j;
while(x--)
{
for(j=0;j } } void wr595(unsigned char wrdat) { unsigned char i; for(i=8;i>0;i--)//循环八次,写一个字节 { CLK=0; SER=wrdat&0x01; //发送BIT0 位 wrdat=wrdat>>1; //要发送的数据左移,准备发送下一位_nop_(); _nop_(); CLK=1; _nop_(); _nop_(); } RCLK=0; _nop_(); _nop_(); RCLK=1; } void main() { wr595(0x08); delayms(100); }7、实验思考题 (1)请用户编写一段程序,来实现8位发光二极管流水灯的控制。 实验四数码管显示 1、实验任务 认识共阳和共阴LED数码显示管,知道怎样通过三极管来驱动数码管,通过数码管来显示一个00—59的计数器。 2、实验原理图 LN3461 3、硬件连线 将单片机的J1接口的P0.0—P0.7接到数码管区的J32接口上,P0.0对应segA ,P0.1对应segB,…,P0.6对应segG,P0.7对应segDp,数码管的控制端J31接口的Q1,Q2,Q3,Q4分别接到P2.0 ,P2.1, P2.2, P2.3。 4、程序设计的内容 编写一段程序,使数码管Q1和Q2能显示从00到59的计数。 5、程序框图