杭电单片机实验报告六

合集下载

杭电单片机实验报告六(优秀范文5篇)

杭电单片机实验报告六(优秀范文5篇)

杭电单片机实验报告六(优秀范文5篇)第一篇:杭电单片机实验报告六单片机原理与应用技术实验报告实验题目: :A D/A 转换器得接口与应用姓名: :* **学号: :*** *** * **实验日期: :17 7、6 6、6 6指导教师: :高惠芳1、实验内容、1波得波齿锯现实程编请,V01—为压电考参,接所上堂课如线接得机片单与2380CADﻩ形,锯齿波得周期为20+作业号,单位就是ms。

我得作业号就是6,所以周期就就是26ms。

经过计算后时间应为0、102ms左右。

1)程序代码:H0000 GROﻩ WASAD PMJAﻩ H0020 GROﻩDASAW:CLR A LOOP1:MOV P1,A DELAY: 61#,7R VOMﻩDLY1: MOV R6,#1 DLY2: DJNZ R6,DLY2PONﻩ DJNZ R7,DLY1INC A1POOL PMJSﻩEND 2)软件程序截图3)编译通过截图4)调试截图时间满足 0 0、s 102ms 左右5)仿真电路图6)仿真波形图2、DAC0832 与单片机得接线如课堂上所接,参考电压为—10V,请编程实现三角波得波形,三角波得周期为 20+作业号,单位就是ms。

我得作业号就是6,所以周期就就是26ms。

经过计算后时间应为0、102ms 左右。

1)程序代码:ORG 0000HWASAD PMJAﻩORG0200HDASAW:CLRA LOOP 1:MOV P1,A; DELAY: 61#,7R VOMﻩDLY1:1#,6R VOMﻩDLY2: DJNZ R6,DLY2PONﻩ 1YLD,7R ZNJDﻩ A CNIﻩCJNE A,#00H,LOOP1 LOOP2:MOV P1,A;DEC A2POOL,H00#,A ENJCﻩ SJMP DASAWEND 2)代码程序截图3)编译通过截图4)仿真电路图5)仿真结果3、实验心得通过以上得实验,对DAC 得转换原理有了比较深刻得了解,也对D/A 转换器有了一定得了解,DAC得基本原理就是把数字量得每一位按照权重转换成相应得模拟分量,然后根据叠加定理将每一位对应得模拟分量相加,输出对应得电流或电压。

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。

系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。

踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。

当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。

我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对汇编语言有了更深的认识。

当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。

这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后学习中激励我继续进步。

【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。

了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。

LED显示器:LED显示器是由发光二管组成显示字段的器件。

通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。

有段选码和和位选码。

当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。

LED显示器的显示方式有动态和静态两种。

7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。

这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。

2、数码管显示利用单片机驱动数码管,实现数字的显示。

需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。

3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。

例如,通过按键切换不同的显示模式或控制其他外部设备。

4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。

例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。

5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。

四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。

2、编程语言本次实验采用 C 语言进行编程。

C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。

3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。

通过对这些引脚的合理配置和控制,可以实现各种功能。

4、数码管驱动原理数码管分为共阴极和共阳极两种类型。

通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。

5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

单片机第六份实验报告

单片机第六份实验报告

南昌大学实验报告学生姓名:学号:专业班级:通信152班实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验六电子计算器仿真一、实验目的掌握计算器基础几类算法的仿真。

二、实验内容1.10个数字键用作数值输入键,小数点的显示用重复按键的方式设置,即如果某数字键被重按,则该数字带小数点显示。

2.A、B、C、D、E、F六个键用作功能键:A表示求平方根;B表示求sin;C表示求自然对数lnx;D表示求以10为底的对数logx;E表示求一个数的指数函数exp(x);F表示求以a 为底的指数函数。

3. 输入数字时,第一个输入的数显示在最左边第一个数码管,第二个输入的数显示在第二个数码管,依次类推。

后边不输的位视为0,可显0也可熄灭。

显示结果时,要求用满8个数码显示管三、实验程序主程序:#include <math.h>#include "STC15.h"#include "intrins.h"#define MAIN_Fosc 11059200L //定义主时钟typedef unsigned char u8;typedef unsigned int u16;typedef unsigned long u32;#define Timer0_Reload (65536UL -(MAIN_Fosc / 1000)) //Timer 0 中断频率,//1000次/秒#define DOT 0x20#define DIS_BLACK 0x10#define DIS_ 0x11u8 code T_KeyTable[16] = {0,1,2,0,3,0,0,0,4,0,0,0,0,0,0,0};u8 code t_display[]= //标准字库{// 0 1 2 3 4 5 6 7 8 9 A B C D E F0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71 ,//black - H J K L N o P U t G Q r M y0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e ,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46}; //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1u8 code T_COM[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //位码sbit P_HC595_SER = P4^0; //pin 14 SER data inputsbit P_HC595_RCLK = P5^4; //pin 12 RCLk store (latch) clocksbit P_HC595_SRCLK = P4^3; //pin 11 SRCLK Shift data clocku8 LED8[8]; //显示缓冲u8 display_index; //显示位索引bit B_1ms; //1ms标志u8 KeyCode; //给用户使用的键码,1-16有效u8 cnt10ms;u8 IO_KeyState, IO_KeyState1, IO_KeyHoldCnt; //行列键盘变量u8 cnt50ms;u8 KS;u8 i,Key;u8 B_Key;void IO_KeyScan(void); //50ms callu8 TmpH,TmpL,KeyCode; //定义变量double a,b,c,d,e,f,g,x,y,x_f,x_i;u8 k0,k1,k2,k3,k4,k5,k6,k7,k8,K_Down,count,B_Dot;u32 xa,y_i;u8 led0,led1,led2,led3,led4,led5,led6,led7;/********************** 延时函数************************/void Delay(u8 ms){u16 i;do{i = MAIN_Fosc / 13000; //14T per loopwhile(--i){;}}while(--ms);}/********************** 矩阵键盘************************/u8 ScanKey(void){P0=0xf0;if(P0!=0xf0) //扫描列{Delay(10); //延时去抖if(P0!=0xf0) //确定按键按下{// K_Down=1;TmpH=P0; //读出P0口高四位数据P0 =0x0F;Delay(1); //延时TmpL=P0; //读出P0口低四位数据TmpH=TmpH+TmpL; //将取出的高四位,低四位组合,得到键值 while(P0!=0x0F){; //松手检测}switch(TmpH&0xF0){case 0xE0:KeyCode=0;break;case 0xD0:KeyCode=4;break;case 0xB0:KeyCode=8;break;case 0x70:KeyCode=12;break;}switch(TmpL&0x0F){case 0x0E:KeyCode+=0;break;case 0x0D:KeyCode+=1;break;case 0x0B:KeyCode+=2;break;case 0x07:KeyCode+=3;break;}return KeyCode; //输出键值}}return 16; //无按键按下输出16}/*****************计算10的n次方***********************/u32 pow10(u8 n){switch(n){case 0:return 1;break;case 1:return 10;break;case 2:return 100;break;case 3:return 1000;break;case 4:return 10000;break;case 5:return 100000;break;case 6:return 1000000;break;case 7:return 10000000;break;}}/***************** 在数码管上显示一个8位数***********************/ print( u32 n){LED8[0]=n%100000000/10000000;LED8[1]=n%10000000/1000000;LED8[2]=n%1000000/100000;LED8[3]=n%100000/10000;LED8[4]=n%10000/1000;LED8[5]=n%1000/100;LED8[6]=n%100/10;LED8[7]=n%10/1;}void main(void){P0M1 = 0;P0M0 = 0; //设置为准双向口P1M1 = 0;P1M0 = 0;P2M1 = 0;P2M0 = 0;P3M1 = 0;P3M0 = 0;P4M1 = 0;P4M0 = 0;P5M1 = 0;P5M0 = 0;P6M1 = 0;P6M0 = 0;P7M1 = 0;P7M0 = 0;AUXR = 0x80; //Timer0 set as 1T, 16 bits timer auto-reload, TH0 = (u8)(Timer0_Reload / 256);TL0 = (u8)(Timer0_Reload % 256);ET0 = 1; //Timer0 interrupt enableTR0 = 1; //Tiner0 runEA = 1; //打开总中断for(i=0; i<8; i++){LED8[i] = 0x10; //上电消隐}KeyCode = 16; //键码,0-15有效,无按键按下时=16KS=17;a=20; //以a为底的指数函数,在这里设置a的值while(1){if(B_1ms){B_1ms = 0;if(++cnt50ms >= 50){cnt50ms = 0;Key=ScanKey();if((Key<=9)&(count<=7)){if(Key==KS){B_Key=1;KS=17;B_Dot=count-1;LED8[B_Dot] =32+Key ; }else{KS=Key;LED8[count] = Key ; count++;}switch(count){case 1:k0=Key;break;case 2:k1=Key;break;case 3:k2=Key;break;case 4:k3=Key;break;case 5:k4=Key;break;case 6:k5=Key;break;case 7:k6=Key;break;case 8:k7=Key;break;default:;}}if((Key<=15)&(Key>=10)){if(B_Key==0){B_Dot=count-1;}xa=k7+k6*10+k5*100+k4*1000+k3*10000+k2*100000+k1*1000000+k0*10000000; x=(double)xa/(double)pow10(7-B_Dot);switch(Key){case 10:y=sqrt(x);break;case 11:y=sin(x);break;case 12:y=log(x);break;case 13:y=log10(x);break;case 14:y=exp(x);break;case 15:y=pow(a,x);break;default:;}if(y>=10000000){y_i=y;print(y_i);}else if(y>=1000000){y_i=y*10;print(y_i);LED8[6]=y_i%100/10+32;}else if(y>=100000){y_i=y*100;print(y_i);LED8[5]=y_i%1000/100+32;}else if(y>=10000){y_i=y*1000;print(y_i);LED8[4]=y_i%10000/1000+32;}else if(y>=1000){y_i=y*10000;print(y_i);LED8[3]=y_i%100000/10000+32;}else if(y>=100){y_i=y*100000;print(y_i);LED8[2]=y_i%1000000/100000+32;}else if(y>=10){y_i=y*1000000;print(y_i);LED8[1]=y_i%10000000/1000000+32;}else if(y>=1){y_i=y*10000000;print(y_i);LED8[0]=y_i%100000000/10000000+32; }else if(y>=0.1){y_i=y*100000000;LED8[0]=32;LED8[1]=led0=y_i%100000000/10000000;LED8[2]=led1=y_i%10000000/1000000; LED8[3]=led2=y_i%1000000/100000;LED8[4]=led3=y_i%100000/10000;LED8[5]=led4=y_i%10000/1000;LED8[6]=led5=y_i%1000/100;LED8[7]=led6=y_i%100/10;}else if(y>=0.01){y_i=y*1000000000;print(y_i);LED8[0]=32;LED8[1]=0;LED8[2]=led0=y_i%100000000/10000000; LED8[3]=led1=y_i%10000000/1000000; LED8[4]=led2=y_i%1000000/100000;LED8[5]=led3=y_i%100000/10000;LED8[6]=led4=y_i%10000/1000;LED8[7]=led5=y_i%1000/100;}else if(y>=0.001){y_i=y*10000000000;LED8[0]=32;LED8[1]=0;LED8[2]=0;LED8[3]=led0=y_i%100000000/10000000; LED8[4]=led1=y_i%10000000/1000000; LED8[5]=led2=y_i%1000000/100000;LED8[6]=led3=y_i%100000/10000;LED8[7]=led4=y_i%10000/1000;}else if(y>=0.0001){y_i=y*100000000000;LED8[0]=32;LED8[1]=0;LED8[2]=0;LED8[3]=0;LED8[4]=led0=y_i%100000000/10000000; LED8[5]=led1=y_i%10000000/1000000; LED8[6]=led2=y_i%1000000/100000;LED8[7]=led3=y_i%100000/10000;}else if(y>=0.00001){y_i=y*1000000000000;LED8[0]=0;LED8[1]=0;LED8[2]=0;LED8[3]=0;LED8[4]=0;LED8[5]=led0=y_i%100000000/10000000; LED8[6]=led1=y_i%10000000/1000000; LED8[7]=led2=y_i%1000000/100000;}else if(y>=0.000001){y_i=y*10000000000000;LED8[0]=0;LED8[1]=0;LED8[2]=0;LED8[3]=0;LED8[4]=0;LED8[5]=0;LED8[6]=led0=y_i%100000000/10000000; LED8[7]=led1=y_i%10000000/1000000; }else if(y>=0.0000001){y_i=y*100000000000000;LED8[0]=0;LED8[1]=0;LED8[2]=0;LED8[3]=0;LED8[4]=0;LED8[6]=0;LED8[5]=0;LED8[7]=led0=y_i%100000000/10000000; }else{for(i=0; i<8; i++){LED8[i] = 0x10;}LED8[0]=0;}}}}}}/**************** 向HC595发送一个字节函数******************/void Send_595(u8 dat){u8 i;for(i=0; i<8; i++){dat <<= 1;P_HC595_SER = CY;P_HC595_SRCLK = 1;P_HC595_SRCLK = 0;}}/********************** 显示扫描函数************************/void DisplayScan(void){Send_595(~T_COM[display_index]); //输出位码Send_595(t_display[LED8[display_index]]); //输出段码P_HC595_RCLK = 1;P_HC595_RCLK = 0; //锁存输出数据if(++display_index >= 8){display_index = 0; //8位结束回0}}/********************** Timer0 1ms中断函数 ************************/void timer0 (void) interrupt 1{DisplayScan(); //1ms扫描显示一位B_1ms = 1; //1ms标志}四、实验原理通过设定单片机上含有的按键进行数字的定义来达到键入数字运算的目的,而对于功能计算,则是通过定义一部分按键为特定触发按键来调用各类计算方法进行计算。

单片机实验报告

单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。

它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。

本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。

2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。

3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。

4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。

具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。

接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。

4.2 编程使用XXX软件对单片机进行编程。

根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。

验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。

4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。

在实验过程中需记录实验结果,并进行分析。

5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。

掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。

实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。

当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。

在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。

6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。

)。

杭电单片机实验报告

单片机技术与应用实验报告实验名称:单片机技术与应用实验班级: 10062813 学号: 10061314 姓名:陆维俊指导老师:朱胜利实验一 P1口、P3口输入输出实验一.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二.实验代码P1口输出程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV A,#0FEH LOOP1: MOV P1,AACALL DELAYRL ACJNE A,#0FEH,LOOP1AJMP MAIN DELAY: MOV R7,#10H DELAY0: MOV R6,#7FH DELAY1: MOV R5,#7FH DELAY2: DJNZ R5,DELAY2DJNZ R6,DELAY1DJNZ R7,DELAY0RETEND P1口输入程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV P1,#0FFHMOV A,p1MOV DPTR,#0F200HMOVX @DPTR,AAJMP MAINEND三.实验说明1.P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS 管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对于程序 DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS四.心得体会这次实验让我了解了P1口和P3口作为普通I/O口的使用方法,并通过编程将P1口作为输入输出口进行简单的发光二极管的点亮和开关状态的读取,这在单片机学习中是及为基础的练习。

杭电自动化单片机实验报告

杭电自动化单片机实验报告单片机原理与应用及 C51程序设计实验报告实验名称:单片机技术实验实验一继电器控制输出实验一、实验目的1.掌握STC12C5A16S2单片机的最基本电路的设计;2.了解单片机I/O端口的使用方法;3.了解继电器和蜂鸣器控制电路以及小电压控制大电压的方法。

二、实验要求1.利用STC12C5A16S2单片机的P1.2、P1.3口作按钮S9和S10输入,P1.0和P1.1口作开关量输出,并分别控制一个5V的继电器和蜂鸣器。

2.当S9闭合时,P1.0控制继电器闭合并控制灯泡闪亮;当S9断开时,继电器触电断开,灯泡不亮;3.当S10闭合时,P1.1控制蜂鸣器闭合并发出声音;当S10断开时,蜂鸣器不响。

三、电路四、原理说明Q1、Q2为9012三极管即PNP型,低电平导通,当S9或S10按下时,相应的IO口拉低,当P1.0或P1.1赋0时即可控制继电器的吸合活着蜂鸣器的发声。

五、程序代码#includesbit L1=P1^1;sbit L2=P1^2;sbit L3=P1^3;sbit L0=P1^0;//定义位变量void delay(){int i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);//利用系统时钟,定义延时函数}void main (){int n=20;while(1) //不断循环检测{if(L2==0) //判断S9输入{while(n--){L0=0;delay();L0=1;delay(); //灯泡以2*delay为周期闪亮}n=20;}if(L3==0) //判断S10闭合{while(n--){L1=0;delay();delay(); //蜂鸣器以2*delay为周期发声}n=20;}}}实验二 LED轮换点亮实验一、实验目的1.掌握STC12C5A16S2单片机的I/O电路设计;2.学习SN74HC573数据锁存输出方法。

单片机实验报告汇总

单片机实验报告汇总一、引言单片机是一种嵌入式系统中的重要组成部分。

通过单片机可以实现各种控制功能,包括自动控制、测量和数据处理等。

在本次实验中,我们就对单片机进行了一系列实验,包括基本IO口控制、定时器和中断、串口通信等内容。

通过这些实验的学习和掌握,我们对单片机的原理和应用有了更深入的理解。

二、实验目的1.掌握单片机的基本操作和编程方法;2.理解单片机的IO口控制原理;3.学习单片机的定时器和中断功能;4.掌握单片机的串口通信原理和操作方法。

三、实验过程与结果1.基本IO口控制实验在此实验中,我们使用单片机控制LED灯的亮灭。

首先,将LED灯连接到单片机的一个IO口上,然后编写相应的程序来控制该IO口的电平变化。

实验结果显示,当程序中对该IO口输出高电平时,LED灯亮起;反之,当输出低电平时,LED灯熄灭。

2.定时器和中断实验定时器和中断是单片机的重要功能之一、在此实验中,我们使用定时器和中断来实现一个简单的计数器。

我们先设置定时器的计数周期,然后在中断函数中对计数器进行加一操作。

实验结果表明,LED灯随着时间的推移不断闪烁,计数器的值也在不断增加。

3.串口通信实验串口通信是单片机与外部设备进行数据交换的一种通信方式。

在此实验中,我们通过串口通信将单片机与计算机相连,并实现数据的发送与接收。

我们使用UART通信协议来建立通信连接,并编写相应的程序来控制通信的发送与接收。

实验结果显示,当单片机向计算机发送数据时,计算机会接收到相应的数据,并进行处理;反之,当计算机向单片机发送数据时,单片机也能够正确接收并进行相应的操作。

四、实验总结通过本次实验,我们对单片机的基本操作和编程方法、IO口控制、定时器和中断、串口通信等内容有了更深入的了解和掌握。

我们通过实践操作,对单片机的原理和应用有了更为直观的认识。

通过编写程序,我们实现了对LED灯的控制、计数器的实现以及与计算机的数据交互等功能。

这些实验不仅提升了我们的动手能力,也加深了我们对单片机技术的理解。

单片机电子实习实验报告

一、实验目的1. 掌握单片机的基本工作原理和编程方法。

2. 熟悉常用单片机的硬件结构和接口。

3. 学习使用单片机进行简单的电子系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验仪器与设备1. 单片机实验板(含8051单片机、电源、按键、LED灯等)2. 示波器3. 万用表4. 电阻、电容、二极管等电子元件5. 编译器及调试软件三、实验内容1. 单片机最小系统搭建- 目的:学习单片机最小系统的构成和作用。

- 实验步骤:1. 将单片机插入实验板。

2. 连接电源、按键、LED灯等元件。

3. 使用示波器检测单片机的时钟信号。

- 实验结果:成功搭建单片机最小系统,时钟信号正常。

2. 按键控制LED灯- 目的:学习按键的读取和LED灯的控制。

- 实验步骤:1. 编写程序实现按键的读取。

2. 根据按键读取结果控制LED灯的亮灭。

- 实验结果:按键按下时LED灯亮,松开时LED灯灭。

3. 定时器中断控制LED闪烁- 目的:学习定时器中断的应用。

- 实验步骤:1. 编写程序设置定时器中断。

2. 在中断服务程序中控制LED灯闪烁。

- 实验结果:LED灯按照设定的频率闪烁。

4. 串口通信实验- 目的:学习串口通信的原理和应用。

- 实验步骤:1. 编写程序实现串口发送和接收。

2. 使用串口调试助手进行数据传输。

- 实验结果:成功实现串口通信,发送和接收数据。

5. 温度检测实验- 目的:学习使用温度传感器进行温度检测。

- 实验步骤:1. 连接温度传感器。

2. 编写程序读取温度传感器数据。

3. 将温度数据显示在LCD显示屏上。

- 实验结果:成功读取温度数据,并在LCD显示屏上显示。

四、实验总结通过本次单片机电子实习实验,我掌握了以下知识和技能:1. 单片机的基本工作原理和编程方法。

2. 常用单片机的硬件结构和接口。

3. 使用单片机进行简单的电子系统设计。

4. 串口通信、定时器中断、温度检测等应用。

在实验过程中,我遇到了一些问题,如程序调试、硬件连接等,通过查阅资料和请教老师,最终成功解决了这些问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

杭电单片机实验报告六
单片机原理与应用技术实验报告
实验题目::
AD/A转换器得接口与应用
姓名::
**
*
学号::
*********
实验日期::
20177、66、66
指导教师::
高惠芳
11、实验内容
、1波得波齿锯现实程编请,V01—为压电考参,接所上堂课如线接得机片单与2380CADﻩ形,锯齿波得周期为20+作业号,单位就是ms。

我得作业号就是6,所以周期就就是26ms。

经过计算后时间应为0、102m s左右。

1)
程序代码:
H0000GROﻩWASADPMJAﻩH0020GROﻩDASAW:CLRALOOP1:MOVP1,ADE LAY:61#,7RVOMﻩDLY1:MOVR6,#1DLY2:DJNZR6,DLY2
PONﻩDJNZR7,DLY1
INCA
1POOLPMJSﻩEND2)
软件程序截图
3)
编译通过截图
4)
调试截图
时间满足00、s102ms左右
5)
仿真电路图
6)
仿真波形图
2、DAC0832与单片机得接线如课堂上所接,参考电压为—10V,请编程实现三角波得波形,三角波得周期为20+作业号,单位就是ms。

我得作业号就是6,所以周期就就是26ms。

经过计算后时间应为0、102ms 左右。

1)程序代码:
ORG0000H
WASADPMJAﻩORG0200HDASAW:CLRALOOP1:MOVP1,A;
DELAY:61#,7RVOMﻩDLY1:
1#,6RVOMﻩDLY2:DJNZR6,DLY2
PONﻩ1YLD,7RZNJDﻩACNIﻩCJNEA,#00H,LOOP1LOOP2:MOVP 1,A;
DECA
2POOL,H00#,AENJCﻩSJMPDASAW
END2)代码程序截图
3)编译通过截图
4)仿真电路图
5)仿真结果
33、实验心得
通过以上得实验,对DAC得转换原理有了比较深刻得了解,也对D/A转换器有了一定得了解,DAC得基本原理就是把数字量得每一位按照权重转换成相应得模拟分量,然后根据叠加定理将每一位对应得模拟分量相加,输出对应得电流或电压。

根据DAC内部结构得不同,DAC可以分成权电阻网络与T型网络等结构;
根据输出结构得不同,DAC也可以分成电压输出与电流输出两类。

引起了我很大的兴趣。

相关文档
最新文档