电子系统设计与实践报告材料
电子系统训练实习报告

摘要:本报告记录了我在电子系统训练实习期间的学习经历和实践成果。
通过对电子系统的基础知识学习、实际操作和问题解决,我不仅巩固了理论知识,还提升了实践能力。
本文将详细介绍实习过程、所学知识和心得体会。
一、实习目的与时间实习目的:1. 巩固和拓展电子系统基础知识;2. 掌握电子系统的基本设计、调试和维修技能;3. 提高团队合作和问题解决能力。
实习时间:2023年X月X日至2023年X月X日,共计两周。
二、实习地点与单位实习地点:XX电子科技有限公司实习单位:电子系统研发部三、实习内容与过程1. 理论学习:在实习初期,我们系统学习了电子系统的基础知识,包括电路原理、电子元件、电子电路设计、PCB设计等。
通过学习,我们对电子系统的组成、工作原理和设计方法有了初步的了解。
2. 实际操作:在理论学习的基础上,我们参与了电子系统的实际操作训练。
主要包括以下内容:- 电路焊接:学习使用电烙铁、焊锡丝等工具进行电路焊接,掌握焊接技巧和注意事项。
- PCB设计与制作:使用Altium Designer等软件进行PCB设计,并制作出符合要求的PCB板。
- 电路调试:对焊接完成的电路进行调试,解决电路故障,确保电路正常工作。
3. 问题解决:在实习过程中,我们遇到了各种问题,如电路设计不合理、元件损坏、焊接不良等。
通过查阅资料、请教同事和团队合作,我们成功解决了这些问题,提高了问题解决能力。
四、实习心得与体会1. 理论与实践相结合:通过实习,我深刻体会到理论与实践相结合的重要性。
理论知识为我们提供了解决问题的思路,实际操作则帮助我们巩固知识,提高技能。
2. 团队合作:在实习过程中,我们经常需要团队合作解决问题。
这使我认识到团队合作的重要性,学会了与他人沟通、协作和共同进步。
3. 持续学习:电子系统领域发展迅速,新技术、新方法层出不穷。
在实习过程中,我意识到持续学习的重要性,将不断努力提高自己的专业素养。
五、对母校教学实习工作的建议1. 加强实习基地建设,提供更多优质的实习机会;2. 完善实习指导,提高实习效果;3. 加强与企业合作,拓宽实习领域。
电子系统设计创新与实践实习报告

电子系统设计创新与实践实习报告——数控直流电流源制作学院:信息科学与工程学院班级:通信工程09-1姓名:学号:指导老师:摘要此次实习我的选题为数控直流源的设计与制作,我们小组在参考传统电流源以及普通数控电流源的基础上,在充分考虑性价比的同时提高数控电流源的准确性,再通过软件控制来实现数控直流源的工作。
本系统主要由直流电流源和单片机控制系统两部分组成。
直流电流源采用连续调整型恒流源,电源电路分为四个模块电路:比较放大器、MOS型调整管、采样电阻和负载。
根据题目要求,我们采用的是8位A/D转换芯片ADC0832,8位D/A转换芯片DAC0832,通过AT89C52单片机控制系统进行校正,同时它还负责键盘输入和LCD显示功能,人机界面友好。
关键字:直流源、AT89C52、DAC0832、ADC0832、LCD1602一、数控电流源简介所谓恒流源就是输出电流极其稳定不随负载变化。
为了保证电流不变,输出电压必须始终符合V=I*R。
即负载需要多大电压,恒流源就必须输出多大电压,“无条件”予以满足。
负反馈的作用就是“使之稳定”。
通过时刻“检查”控制对象的状态,并进行调整。
发现小了,就设法使之增大,发现大了,就设法使之减小。
形象地说,电流负反馈电路则是采样输出电流,计算误差,据此调节自身状态,使输出电流稳定,因而,输出特性接近恒流源。
随着电子技术的不断进步,对电子仪器的要求也不断提高。
电源作为电路的动力源泉更是扮演着越来越重要的角色,然而传统的电流源不论是在控制精度还是输出特性上都无法满足要求。
再者单片机技术的不断发展和D/A,A/D技术的不断成熟使得数控电源成为可能,数控电流源不论是在控制精度还是在可操作性上都有传统电源无法比拟的优势。
二、设计任务及要求1.设计任务: 设计并制作数控直流电流源。
输入交流36V,50HZ;输出直流电压<=10V。
其原理示意图如下:2.设计要求1)输出电流范围:200mA~2000mA;2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;3)具有“+”、“-”步进调整功能,步进≤10mA;4)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的1%+10 mA;5)纹波电流≤2mA;三、数控电流源硬件系统整体设计AT89C52单片机、A/D、D/A芯片,键盘,LCD,显示器构成系统的控制电路;比较放大器、负载、调整管及采样单元构成恒流源电路。
电子系统设计与工程实践报告

课程设计报告题目电子系统设计课程名称电子系统设计与工程实践院部名称电子与信息工程学院专业电子信息工程班级电子1001班学生姓名李盖(1010910101)指导教师张诚目录摘要 (3)1 设计要求 (3)2 总体设计 (3)2.1系统组成框图 (3)2.2 系统工作原理 (3)3 硬件设计 (4)3.1方波发生电路设计 (4)3.2 滤波电路设计 (4)3.3 放大电路的设计 (4)3.4 加法器的的设计 (5)3.5滤波整形电路设计 (5)3.6功率放大电路设计 (6)4 调试及结果 (6)信号处理系统的设计完成人:李盖(电子1001班)摘要:随着社会的快速发展信息的传输在社会生活的各个领域占据着重要的地位,因此,信号的处理就占据着重要的地位。
这个课题的设计目的是传输1khz 的信号,以20khz 的信号做噪声信号,经过滤波整形和功率放大得到要传输的信号。
其中1khz ,20khz 信号由555定时器构成的多谐振荡器产生,1khz 的信号经过由运放构成的低通滤波器滤波之后经过加法器有衰减放大之后的噪声信号相加,再经过滤波整形之后得到要传输的信号,经过单管放大器之后最终得到所需要的信号。
作品主要由电源部分、信号发生部分、信号处理部分。
我们综合各种因素合理选取了所需要的原件,又经过精心布局和走线最终完成了作品。
1 设计要求主要完成电源、1khz 和20khz 方波的发生、衰减器、放大器、加法器、低通滤波器、功率放大器、比较器等模块的设计。
系统以实现传输1khz 的信号为目的,电源为整个系统供电,1khz ,20khz 信号由555定时器构成的多谐振荡器产生,1khz 的信号经过由运放构成的低通滤波器滤波之后经过加法器模拟产生干扰,与衰减放大之后的噪声信号相加,再经过滤波整形之后得到要传输的信号,经过单管放大器之后最终得到所需要的信号。
2 总体设计2.1系统组成框图2.2 系统工作原理本系统属于多种单个芯片构成的数据处理系统,主要由信号发生、信号处理、信号放大等子系统相互联接组成,具有在信号干扰存在的情况下实现1KHz 方波发生器20KHz 方波发生器1KHz 低通滤波器10KHz 低通滤波器衰减器100mVppTTL 电平TTL 电平放大器100mV ~3VA+B滤波整形电路功放电路负载600欧AB 供电电源0~3V ,1K 方波0~9V 方波信号的无失真传输和放大。
电子系统设计创新与实践实习报告

开关稳压电源的设计一、引言【1】.设计要求输入220V,50Hz交流;在电阻负载条件下,设计一个稳压电源使电源满足下述要求:1、输出电压UO可调范围:30V~36V;2、最大输出电流IOmax:2A;3、U2从15V变到21V时,电压调整率SU≤2%(IO=2A);4、IO从0变到2A时,负载调整率SI≤5%(U2=18V);5.输出噪声纹波电压峰-峰值UOPP≤1V(U2=18V,UO=36V,IO=2A);6.DC-DC变换器的效率≥70%(U2=18V,UO=36V,IO=2A)【2】设计系统特点本系统的设计电路由AC-DC变换电路、DC-DC变换电路、设定与显示电路、保护和测量电路等四部分组成。
AC-DC变换电路:由自耦变压器、隔离变压器、桥式整流堆、和滤波电容等元件组成,可以在隔离变压器副边输出15~21V的电压,滤波后给DC-DC提供直流电压。
DC-DC变换电路:采用Boost 型拓扑结构,含有运放构成的固定频率脉宽调制电路,快速场效应管、电感等。
本系统通过调节取样电阻形成闭环反馈回路,采样康铜丝上的电压反馈为输入端。
本系统具有调整速度快,精度高,电压调整率低,负载调整率低,效率高,无需另加辅助电源板,输出纹波小等优点。
二、课题设计随着社会飞速前进,用电设备与日俱增。
但电力输配设施的老化和发展滞后,以及设计不良和供电不足等原因造成末端用户电压的过低,而线头用户则经常电压偏高。
对用电设备特别是对电压要求严格的高新科技和精密设备,犹如没有上保险。
不稳定的电压会给设备造成致命伤害或误动作,影响生产,造成交货期延误、质量不稳定等多方面损失。
同时加速设备的老化、影响使用寿命甚至烧毁配件,使业主面临需要维修的困扰或短期内就要更新设备,浪费资源;严重者甚至发生安全事故,造成不可估量的损失。
优点:[1].功耗小,效率高。
在图1中的开关稳压电源电路中,晶体管V在激励信号的激励下,它交替地工作在导通—截止和截止—导通的开关状态,转换速度很快,频率一般为50kHz左右,在一些技术先进的国家,可以做到几百或者近1000kHz 。
电子系统设计实验报告

实验报告格式要求二.实验目的、任务和要求:本实验要求设计SCI串行接口芯片, 其功能包括串行及并行数据的接收和互相转换。
三.实验系统结构设计分析1.模块划分思想和方法:该芯片需根据功能分为串并转换电路和并串转换电路两部分。
实现串并转换的关键器件就是移位寄存器, 其功能可以使串行输入的数据先寄存到一个位矢量中, 等到一组数据全部输入完毕后再一起处理, 并行输出。
而实现并串转换的关键器件是锁存器, 它可以将并行输入的数据先锁存起来, 再一位一位的转化成串行数据。
计数器在这一芯片中也起到了重要作用, 因为计数器可以产生时间脉冲的分频, 用于配合时间脉冲控制各器件的工作。
2.各模块引脚定义和作用.串并电路:输入: rxd读入数据, clk系统时钟, reset计数器复位端, rd读入控制四进制计数器:C4四分频十进制计数器:Count_10计数分量, C10四十分频(c4的十分频)移位寄存器:Read读入数据, d0~d9并行输出(d0起始端, d1~d8数据端, d9校验位(本实验中不起作用))锁存器:K0~k7数据位状态发生器:RdST读入状态(0为读入, 1为寄存器已满)四.实验代码设计以及分析:1.给出模块层次图;2.按模块完成的代码及注释.USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCI ISPORT(cs,rxd,clk,SCIrd,reset,SCIwr,in7,in6,in5,in4,in3,in2,in1,in0: IN STD_LOGIC;rdFULL,tdEMPTY,c4:buffer std_logic;e7,e6,e5,e4,e3,e2,e1,e0,wxd:OUT STD_LOGIC);END SCI;ARCHITECTURE WORK OF SCI ISSIGNAL wr,rd,read,c10,d9,d8,d7,d6,d5,d4,d3,d2,d1,d0,k7,k6,k5,k4,k3,k2,k1,k0,mid: STD_ULOGIC;SIGNAL wri : STD_LOGIC_vector(7 downto 0);SIGNAL count_10 ,counter_8:std_logic_vector(3 downto 0);BEGINPROCESS(cs)BEGINrd<=cs OR SCIrd;wr<=cs OR SCIwr;END PROCESS;//注释: 片选输入, cs=1时, 串入并出为“写”, 并入串出为“读”;cs=0时, 串入并出为“读”, 并入串出为“写”;PROCESS(rxd)BEGINread<=rxd;END PROCESS;PROCESS(clk)VARIABLE count_4 : STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINIF(clk'EVENT AND clk='1')THENIF(count_4="00")THENcount_4 := "01";c4 <= '1';ELSIF(count_4="01")THENcount_4 := "11";c4 <= '1';ELSIF(count_4="11")THENcount_4 := "10";c4 <= '0';ELSIF(count_4="10")THENcount_4 := "00";c4 <= '0';END IF;END IF;END PROCESS;PROCESS(c4)BEGINIF(c4'EVENT AND c4='1')THENIF(rd='1')THENd0<=read;d1<=d0;d2<=d1;d3<=d2;d4<=d3;d5<=d4;d6<=d5;d7<=d6;d8<=d7;d9<=d8;END IF;END IF;END PROCESS;PROCESS(c4,reset,rd)BEGINIF(reset='0' OR rd='0')THEN count_10<="0000";c10 <= '0';ELSIF(c4'EVENT AND c4='1')THENIF(count_10="0000" AND rxd='1' AND rdFULL='0')THEN count_10 <= "0001";c10 <= '0';ELSIF(count_10="0001")THENcount_10 <= "0010";c10 <= '0';ELSIF(count_10="0010")THENcount_10 <= "0011";c10 <= '0';ELSIF(count_10="0011")THENcount_10 <= "0100";c10 <= '0';ELSIF(count_10="0100")THENcount_10 <= "0101";c10 <= '0';ELSIF(count_10="0101")THENcount_10 <= "0110";c10 <= '0';ELSIF(count_10="0110")THENcount_10 <= "0111";c10 <= '0';ELSIF(count_10="0111")THENcount_10 <= "1000";c10 <= '0';ELSIF(count_10="1000")THENcount_10 <= "1001";c10 <= '0';ELSIF(count_10="1001")THENcount_10 <= "1010";c10 <= '0';ELSIF(count_10="1010")THENcount_10 <= "1011";c10 <= '1'; END IF;END IF;END PROCESS;PROCESS(c10)BEGINIF(c10'EVENT AND c10='1')THENk7<=d8;k6<=d7;k5<=d6;k4<=d5;k3<=d4;k2<=d3;k1<=d2;k0<=d1;END IF;END PROCESS;PROCESS(rd)BEGINIF(rd='0')THENe7<=k7;e6<=k6;e5<=k5;e4<=k4;e3<=k3;e2<=k2;e1<=k1;e0<=k0;END IF;END PROCESS;PROCESS(rd,c10)BEGINIF(rd='0')THEN rdFULL<='0';ELSIF(c10='1')THENrdFULL<='1';ELSE rdFULL<='0';END IF;END PROCESS;process(wr)beginif(wr='0')thenwri(0)<=in0;wri(1)<=in1;wri(2)<=in2;wri(3)<=in3;wri(4)<=in4;wri(5)<=in5;wri(6)<=in6;wri(7)<=in7;end if;end process;process(c4)beginif(c4'event and c4='1')thenif(wr='0')thencounter_8<="0000";elsif(wr='1' and counter_8="0000")then counter_8<="0001"; elsif(counter_8="0001")then counter_8<="0010";elsif(counter_8="0010")then counter_8<="0011";elsif(counter_8="0011")then counter_8<="0100";elsif(counter_8="0100")then counter_8<="0101"; elsif(counter_8="0101")then counter_8<="0110";elsif(counter_8="0110")then counter_8<="0111";elsif(counter_8="0111")then counter_8<="1000";elsif(counter_8="1000")then counter_8<="1001";end if;end if;end process;process(wr,counter_8)beginif(wr='1' and counter_8="1001")thenmid<='1';tdEMPTY<='1';elsif(wr='0')thenmid<='0';tdEMPTY<='0';end if;end process;process(counter_8)beginif(wr='0' or mid='1')thenwxd<='0';elsif(wr='1' and mid='0')thenif(counter_8="0001")thenwxd<=wri(0);elsif(counter_8="0010")thenwxd<=wri(1);elsif(counter_8="0011")thenwxd<=wri(2);elsif(counter_8="0100")thenwxd<=wri(3);elsif(counter_8="0101")thenwxd<=wri(4);elsif(counter_8="0110")thenwxd<=wri(5);elsif(counter_8="0111")thenwxd<=wri(6);elsif(counter_8="1000" )thenwxd<=wri(7);end if;end if;end process;END WORK;五.仿真图(输入输出波形)以及分析:六.实验问题分析和经验总结:在该实验的设计中, 我们发现时序逻辑中最重要的部分就是时间信号对各进程的控制, 因为为了保持各进程在时间上的同步性和正确性, 需要用一个或几个相关联的时间信号来控制各进程。
电子系统设计实验报告

电子系统设计实验报告电子系统设计实验报告引言:电子系统设计是现代科技领域中非常重要的一部分,它涉及到电子元件、电路设计、信号处理等多个方面的知识。
本次实验旨在通过设计一个简单的电子系统来加深对电子系统设计的理解和掌握。
实验目的:本次实验的目的是设计一个基于Arduino的温度监测系统。
通过该系统,能够实时监测环境温度并将数据显示在LCD屏幕上。
实验器材:1. Arduino开发板2. 温度传感器3. LCD显示屏4. 连接线等实验步骤:1. 首先,将温度传感器与Arduino开发板连接。
将传感器的VCC引脚连接到5V引脚,GND引脚连接到GND引脚,将信号引脚连接到Arduino的A0引脚。
2. 接下来,连接LCD显示屏。
将显示屏的VCC引脚连接到5V引脚,GND引脚连接到GND引脚,将SDA引脚连接到A4引脚,SCL引脚连接到A5引脚。
3. 在Arduino开发环境中编写代码。
首先,需要包含所需的库文件,如LiquidCrystal_I2C库和Wire库。
然后,定义温度传感器引脚和LCD显示屏的相关参数。
接着,在setup函数中初始化LCD显示屏,并设置显示屏的列数和行数。
在loop函数中,通过调用温度传感器库函数获取环境温度,并将其显示在LCD屏幕上。
4. 将Arduino开发板与电脑连接,并上传代码到开发板上。
5. 实验完成后,观察LCD屏幕上的温度显示,确保温度监测系统正常工作。
实验结果:经过实验,我们成功设计并实现了一个基于Arduino的温度监测系统。
该系统能够准确地测量环境温度,并将数据实时显示在LCD屏幕上。
通过该系统,我们可以方便地监测环境温度的变化。
实验总结:通过本次实验,我们对电子系统设计有了更深入的了解。
我们学会了如何使用Arduino开发板和相关传感器进行电子系统的设计。
同时,我们也掌握了如何编写代码并将其上传到开发板上。
这些技能对于今后从事电子系统设计工作将非常有帮助。
电子系统制作实习报告

一、实习背景随着科技的不断发展,电子技术在各个领域的应用越来越广泛。
为了提高自己的实践能力,我选择了电子系统制作实习。
本次实习主要在XX电子科技有限公司进行,为期一个月。
二、实习目的1. 了解电子系统的基本组成和原理;2. 掌握电子系统的设计、制作和调试方法;3. 培养动手能力和团队协作精神;4. 提高对电子行业的认识。
三、实习内容1. 电子系统基础知识学习在实习初期,我学习了电子系统的基础知识,包括电路原理、元器件特性、电路分析方法等。
通过学习,我对电子系统的基本组成和原理有了初步的认识。
2. 电子系统设计在掌握了基础知识后,我开始参与电子系统的设计。
首先,我们根据实际需求,确定了电子系统的功能和技术指标。
然后,根据这些指标,我选择了合适的元器件,并设计了电路图。
在设计过程中,我遇到了很多问题,但在导师和同事的帮助下,我逐渐克服了困难。
3. 电子系统制作在电路图设计完成后,我开始了电子系统的制作。
首先,我按照电路图焊接元器件,注意了焊接质量和工艺。
在焊接过程中,我学会了如何识别元器件、如何使用焊接工具等。
其次,我进行了电路板的设计和制作,学会了如何使用电路板制作工具。
最后,我组装了整个电子系统,并进行了测试。
4. 电子系统调试在电子系统制作完成后,我进行了调试。
首先,我检查了电路的连通性,确保没有短路或断路。
然后,我进行了功能测试,验证了电子系统的各项功能是否符合要求。
在调试过程中,我学会了如何使用测试仪器,如何分析问题并解决问题。
5. 团队协作与沟通在实习过程中,我与团队成员进行了密切的沟通和协作。
我们共同商讨设计方案,共同解决制作过程中遇到的问题。
通过团队协作,我学会了如何与他人沟通、如何分工合作。
四、实习收获1. 提高了电子系统设计、制作和调试的能力;2. 学会了电路原理、元器件特性和电路分析方法;3. 培养了动手能力和团队协作精神;4. 增强了对电子行业的认识。
五、实习体会1. 理论与实践相结合:在实习过程中,我深刻体会到理论与实践相结合的重要性。
电子系统设计创新与实践实验报告

电子系统设计创新与实践报告—简易红外遥控系统班级:通信09-1姓名:何探学号:3090731126指导老师:李新1 任务设计并制作红外遥控发射机和接收机。
2 要求(1 )自制红外无线收、发器,可以上电工作。
(2 )调制方式:自选编码调制方式。
(3 )遥控对象:4 个,被控设备用LED 分别代替,LED 发光表示工作。
(4 )接收机距离发射机不小于1m。
(5 )具有红外信号学习功能。
3 系统方案设计框图如下:红外遥控有发送和接收两个组成部分:发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。
红外接收端普遍采用价格便宜,性能可靠的一体化红外接收头(如HSOO38,它接收红外信号频率为38KHz,周期约26US)接收红外信号,它同时对信号进行放大、检波、整形,得到相应电平的编码信号,再送给单片机,经单片机解码并执行,去控制相关对象。
(1)二进制信号的编码本设计采用不同的脉宽宽度来实现二进制信号的编码,可由发送单片机来完成。
用图2-2(a)表示二制信号中的高电平‘1’,其特征是脉冲中低电平的宽度等于0.26ms,相当于10个26us的宽度,高电平的宽度等于0.52ms,相当于20个26us的宽度;用图2-2(b)表示二进制信号中的低电平‘0’,其特征是脉冲中高电平的宽度等于0.26mS,而低电平的宽度是高电平的二倍,等于0.52ms,相当于20个26us的宽度。
上述10个和20个脉冲宽度还可适当调整,以适应不同数据传输速度的需要。
(2)二进制信号的调制二进制信号的调制仍由发送单片机来完成,它把编码后的二进制信号调制成频率为38KHz 的间断脉冲串,相当于用二进制信号的编码乘以频率为38KHz 的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。
如图2-3所示,A 是二进制信号的编码波形,B 是频率为38KHz(周期为26uS)的连续脉冲串,c 是经调制后的间断脉冲串(相当于C=A*B),用于红外发射二极管发送的波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子系统设计与实践报告》院系电气与信息工程学院专业班级电气151班学生学号学生指导教师叔元完成日期2018年06月28日目录第一章设计目的与任务 (3)1.1 设计目的 (3)1.2 设计项目要求 (3)第一章知识点总结 (3)2.1 搭建开发环境 (3)2.2 linux操作系统的常规使用 (4)2.3 windows 与Linux的文件共享 (5)2.4 硬件控制 (5)2.5 写代码控制驱动对应的硬件 (6)2.6 人机交互 (7)2.7音视频的播放 (9)2.8音视频的播放 (9)2.9 U盘下载 (9)第3章智能家居的具体实现 (10)3.1智能家居整体设计图 (10)3.2智能家居C语言程序 (10)第四章心得体会 (18)第一章设计目的与任务1.1设计目的1掌握Linux系统的常规使用。
2掌握主控板的常规使用。
3掌握使用linnux系统编程代码控制主控板显示屏。
4对所学知识进行项目的验收检测。
1.2设计项目要求智能家居系统通过家庭网络,让系统中的各类设备之间相互联动,为我们营造智能化、舒适化、便利化的生活环境。
智能家居可以让我们解放双手,提高生活水平。
本次实训的要设计缩小版的智能家居,其特点在于操作简单、易于上手、稳定性强,实现实时监控、视频的播放、音乐的播放、图片的显示以及对控制led 灯的开关。
所以本周要学习关于嵌入式的基本入门知识,以及相关软件的使用。
第一章知识点总结2.1 搭建开发环境步骤:一:安装虚拟机,直接双击安装程序,不断下一步,最后要求你输入密钥,安装包里面有破解程序二:解压ubuntu就可以直接使用虚拟机:用软件来模拟真实的电脑,我们的linux操作系统必须在虚拟机上运行ubuntu(乌邦图):linux操作系统一个发行版本的名字使用linux操作系统登陆的时候千万不要用guest身份登陆,要使用yueqian登陆,密码是123456linux跟windows的使用习惯有些不同,作为开发人员我们使用命令来控制linux系统打开命令终端:ctrl+alt+tgecubuntu:~$gec---〉当前用户的名字ubuntu---〉操作系统的名字~ ---〉当前用户的家目录$ ---〉当前用户是个普通用户linux中的这些命令统称shell命令,做系统运维的人就是编写程序用这些命令来自动管理服务器2.2 linux操作系统的常规使用2.2.1启动Linux系统启动VMware--》选中Ubuntu12.04---》继续运行虚拟机--》进入桌面系统--》启动命令行--》双击terminal(ctrl + alt + t)2.2.2 linux常规命令的使用A.查看某个位置下有什么东西ls [选项] [路径]ls 查看当前的位置下有什么东西(刷新)ls -l 查看当前位置下文件的详细信息drwx rwx r-x 文件操作权限(chmod)ls -a 查看当前位置下所有的文件(包含隐藏文件)ls -la 两个功能结合在一起B.修改工作路径(更改当前所处的文件夹的位置)cd (路径)cd / 回到根目录(起点)cd / && cd home && cd gec===》cd /home/geccd .. 返回上一级cd ~ 返回家目录(常规操作位置:家目录/共享目录)==>/home/gecC.得到当前的工作路径pwd 得到当前的位置D.创建&& 删除(文件/目录)touch 文件名1 文件名2 //创建空白文件rm 文件名1 文件名2 //删除文件mkdir 目录名1 目录名2 //创建目录rm -rf 目录名1 目录名2 //删除目录E.编辑&& 编译&& 执行gedit filename.c //怎么编写源文件(c代码)gcc/arm-linux-gcc filename.c -o filename //生成可执行文件(编译)./filename //运行可执行程序F.修改文件的为可执行权限chmod 777 filename(3)补充:路径的组成(文件存储结构:树状结构)相对路径:当前位置下/一级目录/二级目录绝对路径:/一级目录/二级目录2.3windows 与Linux的文件共享虚拟机--》设置--》选项--》共享文件夹--》启用--》添加--》下一步--》配置如下主机路径(windows):笔记名称(LInux):share (必须进入/mnt/hgfs)test1.c:编写九九乘法表,编译,运行起来#include<stdio.h>void main(){char i,j,k;for(i=1;i<=9;i++){for(j=1;j<=i;j++){k=i*j;printf("%d*%d=%d\t",i,j,k);}printf("\n");}return 0;}2.4 硬件控制(1)双要素驱动程序+ 应用程序(配套出现)(2)驱动如何使用?A.得到驱动程序文件led_drv.ko / gec210_beep.koB.加载驱动-->产生设备文件--->文件IO才能生效insmod xxx.ko==>insmod: can't insert 'led_drv.ko': File exists 表示驱动已经存在C.查看系统下已有的驱动lsmod==>led_drv 1203 0 - Live 0xbf028000 //LED驱动buzzer_drv 1488 0 - Live 0xbf022000 //蜂鸣器gec210_beep 1298 0 - Live 0xbf0e6000 //蜂鸣器rtnet3070ap 24124 0 - Live 0xbf0d3000rt3070ap 488261 1 rtnet3070ap, Live 0xbf044000 (P)rtutil3070ap 22027 2 rtnet3070ap,rt3070ap, Live 0xbf037000ov9650 8851 0 - Live 0xbf02e000snd_soc_gec210_wm8960 3084 0 - Live 0xbf01c000snd_soc_wm8960 19792 1 snd_soc_gec210_wm8960, Live 0xbf011000D.卸载原有的驱动rmmod led_drv /buzzer_drv/gec210_beep(3)应用程序的使用./led_test报错:./led_testUsage:./led_test <led_no> <on/off>led_no = 0,1, 2,3test1.c:把LED和蜂鸣器的驱动加载,使用自带的应用程序进行控制2.5 写代码控制驱动对应的硬件(1)LED灯A.打开对应的设备文件:/dev/ledsB.控制灯的状态ioctl(led_fd, 1, led_namb);参数2:灯的状态1亮0灭参数3:灯的序号0/1/2/3C.关闭对应的文件描述符test2-1:完成的流水灯的设计。
(10次)sleep(1); ==》1susleep(1000*1000);==》1us(1s)(2)蜂鸣器A.打开对应的设备文件:/dev/beep_drvB.控制灯的状态ioctl(fd,GEC210_BEEP_ON);参数2:灯的状态1亮0灭C.关闭对应的文件描述符test2-1:完成的流水灯的设计。
sleep(1); ==》1susleep(1000*1000);==》1us(1s)test2-2:倒车雷达的实现5s处于安全距离,5s后,进行一级报警(500ms)再过5s,进入2级报警状态(200ms)再过5s,进入3级报警状态(50ms)2.6 人机交互所有的功能的启动、结束:都是由用户来进行控制。
(人机交互)2.6.1 触摸屏的开发linux对于常用输入设备,其开发方式都是一样的===>输入子系统(鼠标、键盘、触摸屏...)2.6.2输入子系统的原理cat /dev/event02.6.3程序设计输入子系统的设备文件:/dev/event0开发说明书(头文件):input.h(1)打开硬件对应的设备文件(2)根据说明书提供的原始数据格式,进行读取操作struct input_event {__u16 type;__u16 code;__s32 value;};(3)根据说明书提供的数据分类,进行拆包处理原始数据按住时type = 0x3 code = 0x0 value = 653type = 0x3 code = 0x1 value = 103type = 0x3 code = 0x18 value = 255type = 0x0 code = 0x0 value = 0松开type = 0x3 code = 0x18 value = 0type = 0x0 code = 0x0 value = 0A.解决设备类型type/** Event types 输入设备当成是event,type的取值围*/#define EV_SYN 0x00#define EV_KEY 0x01 //键盘#define EV_REL 0x02 //鼠标#define EV_ABS 0x03 //触摸屏B.解决某一个设备下的动作types_code#define SYN_REPORT 0#define SYN_CONFIG 1#define SYN_MT_REPORT 2#define SYN_DROPPED 3#define REL_X 0x00#define REL_Y 0x01#define REL_Z 0x02#define ABS_X 0x00 X坐标value <==> x的坐标值#define ABS_Y 0x01 Y坐标value <==> y的坐标值#define ABS_PRESSURE 0x18 压力值value:>0 : 正在按压中=0 : 手已经松开了ts.c:实现手指按下时,坐标的捕捉及输出打印的条件:当压力值为0,手指弹开test2.c:利用触摸屏结合硬件驱动,进行点灯控制2.7音视频的播放(命令行 ./main ./test madplay)(1)音视频播放的原理数据输入:音频文件/视频文件黑匣子(播放器):madplay / mplayer数据输出:LCD,耳机接口(2)播放音乐madplay 1.mp3mplayer mv.mp4(3)替换MP4播放器[rootGEC210 xzx]which mplayer/bin/mplayerrm /bin/mplayertest1:完成命令行播放音乐和视频2.8音视频的播放命令行:只能同时运行一个可执行文件/一条命令代码嵌调用命令行:#include <stdlib.h>int system(const char *command);command:命令行的写法video.ctest2.c:在代码实现音视频的播放test3.c:利用触摸屏+ 音视频播放,实现小型播放器。