① 利用单片机控制八个led灯,要求:全亮全灭 ,四亮四灭,以从右到左的 流水形式编程,不是用c语言 编
#include <reg52.h>
#define LED P0 /*宏定义LED接于P0口*/
void delay (int); /*声明延迟子函数*/
main()
{
int i;
while(1)
{
LED=0xfe;
for(i=0;i<7;i++)
{
delay(100);
LED=(LED<<1)|0x01; /*最低位LED灯左移一位后进行或运算使得最低位不会为“0”*/
}
for(i=0;i<7;i++)
{
delay(100);
LED=(LED>>1)|0x80; /*最低位LED灯右移一位后进行或运算使得最高位不会为“0”*/
}
LED=0xff;
for(i=0;i<4;i++)
{
delay(300);
LED=~LED; /*所有的LED灯取反全亮或者全灭*/
}
}
}
② 中专的电子技术应用专业 主要学什么课程
本专业课程设置分为必修课和选修课两大类。必修课为本专业学生必须学习的课程,含文化基础课程、专业课程和集中实践环节三项;选修课主要是专业课程和集中实践环节,各校可以根据实际需要,按建议课时数在指定的课程范围内选择或另开课程。
(一) 文化基础课程(必修)
1. 德育(177学时)
(1) 职业道德与职业指导(32学时)
本课程是中等职业学校学生必修的一门德育课程,旨在对学生进行职业道德教育与职业指导。其任务是:使学生了解职业、职业素质、职业道德、职业个性、职业选择、职业理想的基本知识与要求,树立正确的职业理想;掌握职业道德基本规范,以及职业道德行为养成的途径,陶冶高尚的职业道德情操;形成依法就业、竞争上岗等符合时代要求的观念;学会依据社会发展、职业需求和个人特点进行职业生涯设计的方法;增强提高自身全面素质、自主择业、立业创业的自觉性。
(2) 法律基础知识(32学时)
本课程是中等职业学校学生必修的一门德育课程,旨在对学生进行法律基础知识教育。其任务是:使学生了解宪法、行政法、民法、经济法、刑法、诉讼法中与学生关系密切的有关法律基本知识,初步做到知法、懂法,增强法律意识,树立法制观念,提高辨别是非的能力;指导学生提高对有关法律问题的理解能力,对是与非的分析判断能力,以及依法律己、依法做事、依法维护权益、依法同违法行为作斗争的实践能力,成为具有较高法律素质的公民。
(3) 经济与政治基础知识(64学时)
本课程是中等职业学校学生必修的一门德育课程。其任务是:根据马克思主义经济和政治学说的基本观点,以邓小平理论为指导,对学生进行经济和政治基础知识的教育。引导学生正确分析常见的社会经济、政治现象,提高参与社会经济、政治活动的能力,为在今后的职业活动中,积极投身社会主义经济建设、积极参与社会主义民主政治建设打下基础。
(4) 哲学基础知识(49学时)
本课程是中等职业学校学生必修的一门德育课程,旨在对学生进行马克思主义哲学知识及基本观点的教育。其任务是:通过课堂教学和社会实践等多种方式,使学生了解和掌握与自己的社会实践、人生实践和职业实践密切相关的哲学基本知识;引导学生用马克思主义哲学的立场、观点、方法观察和分析最常见的社会生活现象;初步树立正确的世界观、人生观和价值观,为将来从事社会实践打下基础。
2. 语文(225学时)
在初中语文的基础上,进一步加强现代文和文言文阅读训练,提高学生阅读现代文和浅易文言文的能力;加强文学作品阅读教学,培养学生欣赏文学作品的能力;加强写作和口语交际训练,提高学生应用文写作能力和日常口语交际水平。通过课内外的教学活动,使学生进一步巩固和扩展必需的语文基础知识,养成自学和运用语文的良好习惯,接受优秀文化熏陶,形成高尚的审美情趣。
3. 数学(198学时)
在初中数学的基础上,进一步学习数学的基础知识。必学与限定选学内容:集合与逻辑用语、不等式、函数、指数函数与对数函数、任意角的三角函数、数列与数列极限、向量、复数、解析几何、立体几何、排列与组合、概率与统计初步。选学内容:极限与导数、导数的应用、积分及其应用、统计。通过教学,提高学生的数学素养,培养学生的基本运算、基本计算工具使用、空间想象、数形结合、思维和简单实际应用等能力,为学习专业课打下基础。
4. 英语(252学时)
在初中英语的基础上,巩固、扩展学生的基础词汇和基础语法;培养学生听、说、读、写的基本技能和运用英语进行交际的能力;使学生能听懂简单对话和短文,能围绕日常话题进行初步交际,能读懂简单应用文,能模拟套写语篇及简单应用文;提高学生自主学习和继续学习的能力,并为学习专门用途英语打下基础。
5. 计算机应用基础(132学时)
在初中相关课程的基础上,进一步学习计算机的基础知识、常用操作系统的使用、文字处理软件的使用、计算机网络的基本操作和使用,掌握计算机操作的基本技能,具有文字处理能力,数据处理能力、信息获取、整理、加工能力,网上交互能力,为以后的学习和工作打下基础。
选学内容:电子表格软件使用、数据库基本操作和使用。
6. 体育与健康(160学时)
在初中相关课程的基础上,进一步学习体育与卫生保健的基础知识和运动技能,掌握科学锻炼和娱乐休闲的基本方法,养成自觉锻炼的习惯;培养自主锻炼、自我保健、自我评价和自我调控的意识,全面提高身心素质和社会适应能力,为终身锻炼、继续学习与创业立业奠定基础。
7. 物理(102学时)
在初中物理的基础上,进一步学习力学、电学、振动和波、热学和光学等内容,使学生掌握其基本规律、一般计算和应用、分析方法,为学习专业课程打下基础。
(二) 专业课(必修)
8. 电工基础(109学时)
了解电阻、电容、电感等各种电子元器件的特性与作用;理解简单电路的基本原理与特性;了解电路的各种分析方法,能对给定的电路进行电压、电流、功率等参数的计算;能绘制信号的波形图,掌握中级以上装配电工应知理论知识。
9. 电工基础实验(47学时)
了解电工仪器仪表的构造与工作原理,能正确使用常见电工仪器仪表;能运用电气测量技术检测调试一般电路;能对测量数据进行一般处理,并能绘制实验曲线;了解与本课程有关的技术规范;能对一般的电气线路进行故障分析与排除;掌握安全用电常识。
10. 电子工程制图(60学时)
理解电子工程图的投影原理,了解图样表达方式的种类和方法,了解《机械制图》、《电气制图》的国家标准,了解尺寸标注、公差标注、表面粗糙度的标注方法;能熟练地使用绘图工具,能绘制、识读一般复杂程度的电子工程图样,能绘制电子产品装配草图。
11. 电子线路(150学时)
了解常用电子器件的工作原理、主要参数和外特性;理解各种基本的模拟与数字单元电路的组成与工作原理;能定性分析各种常用电子线路并能说明电路中每个元器件的作用;能计算简单电子线路的参数;了解通用集成电路(IC)的性能特点,能画出常用IC应用电路;能查阅电子器件手册及有关资料并合理选用。
12. 电子线路实验(75学时)
能熟练操作各种常用电子仪器;能熟练搭接实验电路并用各种测量仪器对电子线路的各种参数进行检测与调试,能正确观察实验现象、记录测试结果并进行分析;能绘制各种测试曲线;能分析并排除典型电路故障;能编写符合要求的实验报告。
13. 机械基础(60学时)
了解工程材料的种类、性能、牌号与用途;了解公差与配合方面的基本知识;理解机械运动基本原理;了解常用机构和机械零件的种类、性能;能正确使用常用测量仪器与工具。
14. 传感技术及应用(45学时)
了解传感器的工作原理,熟悉典型压力、温度、光电传感器的外特性,并能根据使用要求进行查表选型;掌握几种常用物理量(如长度、速度、压力、温度、磁场等)的测量方法,会分析典型传感器的应用电路。
15. 电子产品结构工艺(60学时)
理解环境对电子产品的影响和产品可靠性的概念;了解电子设备的三防、散热设计、减振、屏蔽的基本知识;掌握元器件布局、走线的知识;掌握印制线路板设计的步骤、方法;掌握工艺文件编制原则、要求。具有根据电原理图设计印制电路板的能力;能对典型电子产品进行结构工艺分析;能调试组装、中等复杂程度的产品整机。
16. 电子整机原理(102学时)
本课程按电子整机产品类型分为三个选修模块。
(1) 音响设备
了解音响设备中常用电路的组成、功能并理解其工作原理;了解音响技术中特殊元器件或部件的用途、构成及工作原理;能识读音响设备的典型整机线路图;能合理选购、搭配及布置音响设备;能通过对故障现象和检测数据的分析来判断故障部位,能说明产生故障现象的原因。
(2) 数字视听设备
掌握典型数字视听设备的组成原理;了解光盘机和数字信号处理电路的特点;了解典型数字视听设备的主要技术指标和参数;能读懂典型数字视听设备的整机线路图;能通过对故障现象和检测数据的分析判断故障部位,能说明产生故障现象的原因。
(3) 彩色电视机
理解电视图像光电转换的基本原理;了解色度学基本知识;了解电视信号的基本组成和主要参数;了解彩色电视机的基本组成和基本电路的功能;理解PALD制彩色电视的编码和解码原理;理解彩色电视机基本电路的工作原理;掌握彩色电视机主要元器件、电路和整机的性能指标测试方法;了解电视机一般附属电路的功能与工作原理;具备测试彩色电视机元器件、单元电路和整机性能指标的初步能力;能读懂典型彩色电视机的整机线路图;能通过对故障现象和检测数据的分析判断故障部位,能说明产生故障现象的原因;了解彩色电视机的有关新技术。
17. 电子测量仪器(68学时)
了解电子测量的基本知识;了解常用电子测量仪器的用途、性能及主要技术指标;理解常用电子测量仪器的组成和工作原理以及现代智能仪器的基本工作原理;能对测量结果进行简单的数据处理;能根据被测对象正确地选择仪器;熟练掌握常用电子测量仪器的操作技能;能正确使用仪器完成基本测量任务;能对电子测量仪器进行维护。
18. 单片机原理与应用(85学时)
了解单片机技术的特点、现状和未来发展趋势;理解单片机的工作原理;熟悉MCS-51单片机芯片的基本功能和典型应用实例;能正确操作、使用单片机开发系统;能说明常用指令、寻址方式、接口的特点及用途;初步具备单片机应用系统的硬件及软件设计、调试、检测、维修的能力。
19. 专业英语(68学时)
了解科技英语的一些常见的语法现象和构词法的基本知识;增加专业英语词汇的积累;能借助词典翻译一般难度的专业英文资料;能用英语书写个人推荐信、专业介绍等简单的应用文;能进行简单的专业英语方面的交流。
(三) 集中实践教学项目(必修)
20. 钳工实习(30学时)
能按初级钳工的规范要求对工件进行锯割、锉削、划线、钻孔、攻丝、套扣、套形、装配;能熟练使用千分尺、卡尺、角尺等常用量具。
21. 电子整机装配实习(90学时)
了解常用元器件和材料的规格、型号及基本特性参数,能正确检测、合理选用常用元器件;掌握整机装配工艺的基本理论;了解电子整机生产的基本工艺流程及其新技术、新工艺;了解表面安装技术;能正确使用和维护常用工具、仪器仪表及专用装接设备;掌握电子整机的手工焊接、装配、调试、装接检验的基本技能;能识读电子整机生产的技术文件。
22. 电工技能训练(30学时)
熟悉并能正确使用常用配电设备、电工仪表、电工工具;熟悉并能正确进行导线的连接和恢复绝缘、以及照明灯具、开关与插座的安装;初步具有识读一般电气原理图、电器布置图和电气安装接线图的能力;初步掌握电工基本操作工艺和基本安全知识;了解电能的生产、输送和分配以及常用低压电器元件和一般设备的型号、规格与功能;了解与电工技能有关的技术规范。
23. 电子技术技能训练(60学时)
了解电子产品设计与制作的一般过程;能阅读电路原理图、印制电路板图;能借助手册查阅电子元器件及材料的有关数据;能正确选择使用元器件和材料;能熟练地装接电子电路并使用电子仪器进行调试;解决电子电路制作过程中出现的一般问题;能对所制作电路的指标和性能进行测试并提出改进意见。
24. 电子产品检验实习(30学时)
了解标准体系的原理;了解电子产品检验的一般概况、检验标准(GB和GB/T)及方法;熟练掌握常用测量仪器的正确使用方法;理解典型电子整机产品性能指标检测方案;能正确处理测试数据和填写规范的检验报告。
25. 电子整机维修实习(90学时)
能理解典型电子整机的基本原理及各部分电路的工作原理,能读懂整机电原理图、印制电路板图和装配图;能叙述典型电子整机的一般维修方法和各部分的维修流程,能根据故障现象判断故障部位,熟练运用各种维修方法与技巧查找并排除故障;掌握常用维修工具和仪器设备的功能及使用方法;能熟练拆装实习用整机;能注意维修安全,并能正确填写维修报告。
注:电子整机维修实习中典型整机的选择应与《电子整机原理》课程所选内容一致。
26. 单片机应用综合实习(90学时)
了解单片机的结构及各部分功能,理解单片机的工作原理,能说明单片机编程的一般方法,能熟练使用单片机开发系统,能用汇编语言编制并调试一般性程序,能用单片机实行对典型应用电路的控制。
27. 岗位综合实习(360学时)
能在生产实践过程中使自己的专项技能熟练程度有明显提高并达到企业的要求;能运用所学的知识解决生产实际问题;了解电子整机生产的全过程和各阶段的生产工艺要求,能编写生产实习报告或产品设计论文。
(四) 集中实践教学项目(选修)
28. 收音机装配与维修实习(30学时)
理解普通收音机的基本组成原理,能叙述收音机各功能电路的作用,能根据收音机的装配与调试工艺文件组装并调试收音机,能查找与排除收音机的一般性故障。
29. 电话机维修实习(30学时)
能理解电话机的基本原理及各部分电路的工作原理,能读懂电话机的电原理图、印制电路图和装配图;能叙述电话机的一般维修方法和各部分的维修流程,能根据故障现象,判断故障部位,运用各种维修方法与技巧查找并排除故障,能正确填写维修报告。
30. 电热与电动器具维修实习(30学时)
了解电阻式、红外线等电热器件及温控器件的作用与性能,掌握电饭锅、微波炉、电风扇的结构和工作原理,能按操作要求对这些器具进行拆装,能够使用常用仪器仪表进行检测,能正确判断和排除常见故障。
31. 计算机组装与维修实习(30学时)
能叙述计算机的组成原理与各组成部分的主要功能与性能,能正确装配计算机软、硬件并进行调试,能对计算机的一般性软、硬件故障进行检测和维修。
(五) 选修课程
32. 文学艺术欣赏(30学时)
本课程可有以下几种选项:
(1) 音乐欣赏
了解简谱与五线谱乐理知识,了解欣赏音乐的三个阶段,了解音乐的基本表现手段;了解常见歌曲与乐曲的体裁;了解中西常见乐器;能理解音乐语言,领会歌曲内容。
(2) 美术鉴赏
了解美术欣赏的基本知识,了解美术的基本特点和种类;了解美术作品的形式要素等常识;了解美术作品常见的几种表现方式;能赏析中外名画,能对大自然、社会生活、美术作品中的美进行欣赏。
(3) 诗词欣赏
了解诗词的特点及一般阅读、欣赏诗词的方法;理解各个历史时期名家名篇中所反映的社会现实及流露的思想感情;了解诗词形成、发展的规律及各种流派的风格特点;了解诗词创作的一些基本方法。
33. 会计学基础(30学时)
了解会计学原理的基本知识,了解会计核算体系的一般内容和具体方法,理解会计业务的处理程序,能编制工业企业主要会计报表。
34. 市场营销(45学时)
了解市场营销学的产生、发展及基本理论,理解和掌握企业的四种主要营销策略。
35. 办公自动化(45学时)
理解办公自动化的概念和意义,能建立一套基本办公自动化系统,掌握传真机、复印机的基本工作原理,能正确使用和维护现代办公设备,排除传真机、复印机的常见故障。
36. 英语口语(68学时)
能听懂比较规范的英语和日常生活用语,能进行一般的会话,能用英语简单描述企业情况和工作环境,介绍产品和工艺,询问或回答商业信息。
37. 英语资料阅读(51学时)
了解科技英语的一般语法知识,能借助字典简明扼要正确翻译电子类科普性英文资料。
38. 多媒体技术(68学时)
理解多媒体计算机的基本组成结构和工作原理,了解多媒体计算机的硬件与软件技术及各组成部分的作用,能正确使用常用多媒体设备和多媒体软件。
39. 材料与元件(51学时)
了解常用的电子材料的特点及应用;掌握阻容元件的种类、特点及应用,掌握阻容元件的命名、标识;了解电感元件、电接触件的应用;掌握晶体管种类、特点及应用;掌握常见的各类集成电路的特点及应用;理解传感器件、显示器件、压电器件、电场、声控器件的原理及应用;能结合电子材料和元器件的特点,理解其应用的要点。
40. 电机与电气控制(68学时)
掌握控制用电机及常用低压电器的性能、结构、用途;理解常用电气控制线路的工作原理,能用常用仪器仪表对电气控制线路进行检测,能分析、排除一般的电气控制线路故障。
41. 开关电源(51学时)
理解开关电源系统的组成原理和技术特点;了解开关电源技术中功率变换器(DC/DC变换器)的结构及工作原理;了解PWM开关变换器的组成、工作原理与技术指标;了解开关电源最新软切换技术的原理、特点;能叙述开关电源的特点、指标及工作过程;会简单估算主要元器件的技术参数及电源功率、效率;能分析比较常用开关电源的性能、特点,会利用常用或专用设备维修开关电源的常见故障。
42. 公共关系(51学时)
了解公共关系的产生与发展,理解公共关系的主要职能和实施步骤,以及社会主义市场经济中公共关系的作用;能进行简单公共关系的策划,了解正确处理人际关系的一般方法。
③ 单片机实训题目:8位逻辑电平模块上的LED小灯呈现右侧4盏先闪烁3次,左侧4盏再闪烁3次,状态间隔为2秒。
根据你的要求,我理解为,单片机控制8位逻辑输入采集与8位LED输出指示,那么做模型的时候,用8路开关量输入,8个LED灯做输出,系统启动的时候闪烁3次,间隔2秒,然后开始采集输入信号,在对应的输出端用LED显示出来!
原理图如下:
④ 《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03篇源代码
单片机c语言编程100个实例目录1
函数的使用和熟悉
实例3:用单片机控制第一个灯亮
实例4:用单片机控制一个灯闪烁:认识单片机的工作频率
实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能
实例6:使用P3口流水点亮8位LED
实例7:通过对P3口地址的操作流水点亮8位LED
实例8:用不同数据类型控制灯闪烁时间
实例9:用P0口、P1 口分别显示加法和减法运算结果
实例10:用P0、P1口显示乘法运算结果
实例11:用P1、P0口显示除法运算结果
实例12:用自增运算控制P0口8位LED流水花样
实例13:用P0口显示逻辑"与"运算结果
实例14:用P0口显示条件运算结果
实例15:用P0口显示按位"异或"运算结果
实例16:用P0显示左移运算结果
实例17:"万能逻辑电路"实验
实例18:用右移运算流水点亮P1口8位LED
实例19:用if语句控制P0口8位LED的流水方向
实例20:用swtich语句的控制P0口8位LED的点亮状态
实例21:用for语句控制蜂鸣器鸣笛次数
实例22:用while语句控制LED
实例23:用do-while语句控制P0口8位LED流水点亮
实例24:用字符型数组控制P0口8位LED流水点亮
实例25: 用P0口显示字符串常量
实例26:用P0 口显示指针运算结果
实例27:用指针数组控制P0口8位LED流水点亮
实例28:用数组的指针控制P0 口8 位LED流水点亮
实例29:用P0 、P1口显示整型函数返回值
实例30:用有参函数控制P0口8位LED流水速度
实例31:用数组作函数参数控制流水花样
实例32:用指针作函数参数控制P0口8位LED流水点亮
实例33:用函数型指针控制P1口灯花样
实例34:用指针数组作为函数的参数显示多个字符串
单片机c语言编程100个实例目录2
实例35:字符函数ctype.h应用举例
实例36:内部函数intrins.h应用举例
实例37:标准函数stdlib.h应用举例
实例38:字符串函数string.h应用举例
实例39:宏定义应用举例2
实例40:宏定义应用举例2
实例41:宏定义应用举例3
* 中断、定时器中断、定时器 *中断、定时器*中断、定时器 /
实例42:用定时器T0查询方式P2口8位控制LED闪烁
实例43:用定时器T1查询方式控制单片机发出1KHz音频
实例44:将计数器T0计数的结果送P1口8位LED显示
实例45:用定时器T0的中断控制1位LED闪烁
实例46:用定时器T0的中断实现长时间定时
实例47:用定时器T1中断控制两个LED以不同周期闪烁
实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频
实例49:用定时器T0的中断实现"渴望"主题曲的播放
实例50-1:输出50个矩形脉冲
实例50-2:计数器T0统计外部脉冲数
实例51-2:定时器T0的模式2测量正脉冲宽度
实例52:用定时器T0控制输出高低宽度不同的矩形波
实例53:用外中断0的中断方式进行数据采集
实例54-1:输出负脉宽为200微秒的方波
实例54-2:测量负脉冲宽度
实例55:方式0控制流水灯循环点亮
实例56-1:数据发送程序
实例56-2:数据接收程序
实例57-1:数据发送程序
实例57-2:数据接收程序
实例58:单片机向PC发送数据
实例59:单片机接收PC发出的数据
*数码管显示*数码管显示 数码管显示数码管显示*/
实例60:用LED数码显示数字5
实例61:用LED数码显示器循环显示数字0~9
实例62:用数码管慢速动态扫描显示数字"1234"
实例63:用LED数码显示器伪静态显示数字1234
实例64:用数码管显示动态检测结果
实例65:数码秒表设计
实例66:数码时钟设计
实例67:用LED数码管显示计数器T0的计数值
实例68:静态显示数字“59”
单片机c语言编程100个实例目录3
键盘控制*键盘控制* *键盘控制 *键盘控制 */
实例69:无软件消抖的独立式键盘输入实验
实例70:软件消抖的独立式键盘输入实验
实例71:CPU控制的独立式键盘扫描实验
实例72:定时器中断控制的独立式键盘扫描实验
实例73:独立式键盘控制的4级变速流水灯
实例74:独立式键盘的按键功能扩展:"以一当四"
实例75:独立式键盘调时的数码时钟实验
实例76:独立式键盘控制步进电机实验
实例77:矩阵式键盘按键值的数码管显示实验
//实例78:矩阵式键盘按键音
实例79:简易电子琴
实例80:矩阵式键盘实现的电子密码锁
液晶显示LCD*液晶显示LCD *液晶显示LCD * *液晶显示LCD*液晶显示LCD *液晶显示LCD */
实例81:用LCD显示字符'A'
实例82:用LCD循环右移显示"Welcome to China"
实例83:用LCD显示适时检测结果
实例84:液晶时钟设计
*一些芯片的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 红外遥控/
实例85:将数据"0x0f"写入AT24C02再读出送P1口显示
实例86:将按键次数写入AT24C02,再读出并用1602LCD显示
实例87:对I2C总线上挂接多个AT24C02的读写操作
实例88:基于AT24C02的多机通信 读取程序
实例89:基于AT24C02的多机通信 写入程序
实例90:DS18B20温度检测及其液晶显示
实例91:将数据"0xaa"写入X5045再读出送P1口显示
实例92:将流水灯控制码写入X5045并读出送P1口显示
实例93:对SPI总线上挂接多个X5045的读写操作
实例94:基于ADC0832的数字电压表
实例95:用DAC0832产生锯齿波电压
实例96:用P1口显示红外遥控器的按键值
实例97:用红外遥控器控制继电器
实例98:基于DS1302的日历时钟
实例99:单片机数据发送程序
实例100:电机转速表设计
模拟霍尔脉冲
http://www.dzkfw.com.cn/myxin/51c_language.chm 单片机c语言一百例子
⑤ 流水灯实训报告
转载于 http://www.scetop.com/jpkc/pld/ArticleShow.asp?ArticleID=565&BigClassName=%CA%B5%D1%B5%BD%CC%D1%A7
希望对你有帮助
实训项目(一) 流水灯 1. 实验目的通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Ver-ilog HDL的编程方法;学习简单时序电路的设计和硬件测试.2. 实验内容本实验的内容是建立可用与控制LED流水灯的简单硬件电路,要求在SmartSOPC实验箱上实现LED1-LED8发光二极管流水灯显示.3. 实验原理(1) 在引脚上周期性地输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2.流水一次后,输出数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,这样就可以实现LED流水灯.为了观察方便,流水速率最好在2Hz左右.在QuickSOPC核心板上有一个48MHz的标准钟源,该时钟脉冲CLOCK与芯片的28脚相连.为了产生2Hz的时钟脉冲,在此调用了一个分频模块,通过修改分频系数来变改输出频率.当分频系数为24×10时,输出即为2Hz的频率信号.(2) int_div分频模块说明: int_div模块是一个占空比为50%的任意整数分频器.输入时钟为clock,输出时钟为clk_out.其中F_DIV为分频系数,分频系数范围为1~2N(n=F_DIV_WIDTH).若要改变分频系数,则改变参数F_DIV和F_DIV_WIDTH到相应范围即可.在本例中输入时钟频率为48MHz,要得到2Hz的信号,分频系数应为48×10/2=24×10.对于分频系数为24×10的数需要一个25位宽的计数器.在以后的实验中还会多次用到这个模块,用户可以分析它的基本原理.4. 实验步骤(1) 启动QUARTUSⅡ建立一个空白工程,然后命名为.(2) 新建VerilogHDL源程序文件ledwater.v,输入程序代码并保存,然后进行综合编译.若在编译过程中发现错误,则找出并更正错误,直到编译成功为止.(3) 从设计文件创建模块,由ledwater.v生成名为ledwater.bsf的模块符号文件.(4) 将光盘中EDA_component目录下的int_div.bsf和int_div.v拷贝到工程目录.(5) 新建图形设计文件命名为led_wter.bdf在空白处双击鼠标左键,在sym-bol对话框左上脚的的Iibraries中,分别将projet下的ledwater和int_div模块放在图形文件ed_wter.bdf中,加入输入、输出引脚,双击各引脚符号,进行引脚命名.将与ledwater模块led[7..0]连接的引脚命名为led[7..0],与int_div模块clock连接的引脚命名为clock. int_div模块的clk_out与ledwater模块的clk相连接.双击int_div的参数框,并修改参数,将F_DIV的值改为24000000, F_DIV_WIDTH的值改为25,单击“确定”按扭保存修改的文件的参数如果led_water.bdf中部能看到参数设置框,可在空白处右击鼠标,选择Show Parameter Assignments命令来显示参数设置框。(6) 选择目标器件并对相应的引脚进行锁定,正在这里所选择的器件为Altera公司Cyclone系列的EP 1C6Q240C8芯片,引脚锁定方法如表3.1所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。 表3.1 引脚锁定方法 信号引脚 信号引脚1C61C12EDA1C61C12EDALed[0]505050led[5]474747led[1]535353led[6]484848led[2]545454led[7]494949led[3]555555clock282828led[4]176176176 (7) 将led_water.bdf设置为顶层实体。对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(8) 最后将跳线短接帽跳接到smartSOPC实验箱上JP6的LED0~LED7,使LED1~LED8 分别与FPGAD的引脚50、53~55、176和47~49相连。将AlteraByteBlasterⅡ下载电缆的两端分别接到PC机的打印机并口和QuickSOPC核芯板上的JTAG下载口上,打开电源,执行下载命令,把程序下载到FPGA器件中,此时,即可在smartSOPC实验箱上看到流水灯。(9 更改分频模块(int_div)的分频系数,并重新编译下载,观察流水灯的变化。 5. 实验参考程序 程序清单3.2ledwater.v Mole ledwater(led,clk); //模块名ledwaterOutput[7:0]led; //定义LED输出口Input clk; //定义时钟输入口Reg[8:0] led_r; //定义输出寄存器Assign led=led_r[7:0]; //寄存器输出always@(posedge clk) //在时钟上升沿触发进程beginled_r<=led_r<<1; //是,则输出左移一位if(led_r==9`d0) //循环完毕吗?led_r<=9`b11111111; //是,则重新赋初值endendmole 6. 日积月累(1) 思考:如何实现左流水灯或其他花样流水呢?用户自己动手试试。(2) REG数据类型:由两大类数据类型,线网类型和寄存器类型。REG是最常见的寄存器类型,形式如下:REG[msb:lsb]reg1,reg2,…regN;其中,msb和lsb定义了范围,并且均匀为常数值表达式。范围定义是可以选的。如果没有定义范围,默认值为1位寄存器。 reg数据类型的默认初始值是不定值X,它可以赋正值,也可以赋负值。当一个reg类型数据是一个表达式中的操作数时,他的值被当作是无符号值,即正值(如意个4)为寄存器被赋值-1,则在表达式中进行运算时,其值被认为是+15)。 reg型只表示被定义的信号将用在always块内,理解这一点很重要。并不是说reg 型信号一定是寄存器或触发器的输出。虽然reg型信号常常是寄存器或触发器的输出,但并不一定总是这样,只有在时序逻辑中他对应的才是寄存器,而在组合逻辑中他则表达一个节点。(3)按照上述管工程进行编译,会出现“warning: found pins functioning as undefined clocks and/or memory enables Info: Assuming node ”clock” is an undefined clock”的警告,大概意思是指发现clock节点没有定义成时钟信号。消除这个警告的方法如下: ①选择assignments→timing settings命令,在弹出的对话框中的clockseteings选项区中选中settingsfor indivial clock signals项。 ②对clocks进行设置,在弹出的对话框中单击按钮添加节点,按图中所示进行设置。图中requiredfmax 为系统需求的最大时钟频率,在这里填50HZ即可。 ③设置好之后连续单击OK按钮保存设置,最后再进行编译,原先的warning就会消除。以上的操作是将“clock”加入时钟域。如果“clock”不是一个时钟信号,可将设置属性改为“not a clock ”,也可以消除warning。
⑥ 单片机定时器与计数器的区别
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,两者的区别是什么呢?下面就跟着我一起来看看吧。
单片机计数器与定时器的区别
计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。
在定时器和计数器中都有一个溢出的概念,那什么是溢出了。呵呵,我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断,至于什么是中断我们下次再讲,这里只是初步的提下概念,中断就是能够打断系统正常运行,而去运行中断服务程序的过程,当服务程序运行完以后又自动回到被打断的地方继续运行。
在定时器计数器中,我们有个概念叫容量,就是最大计数量。方式0是2的13次方,方式1是2的13次方,方式2是2的8次方,方式3是2的8次方。把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。
在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。问题1,我如何才能使碗接到10滴水就溢出呢?呵呵,我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。
在定时计数器中,这90滴水就是我们所谓的初始值。问题2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢?
我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。
在这里计数初值有3个,假设有方式0:计数初值=8912(2的13次方)—100=8812。方式1:计数初值=65536(2的16次方)—100=65436。方式0:计数初值=256(2的8次方)—100=156。
根据所得的初始值,再将其转换为16进制或者2进制,就可以进行计数或者定时了。当然要让程序完全的运行起来还需要相应的寄存器进行设置。这些可以从各种单片机教程中找到。
单片机中定时器与计数器的区别
定时器实际上也是计数器,只是计数的是固定周期的脉冲
定时/计数器很容易理解的啊
定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间,有定时功能
定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
单片机里的寄存器可以看成一个个电子开关,用来切换不同的功能、信号。
51里通过TMOD里的T/C 位切换计数信号的来源
当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率为1/12fosc,当晶振频率6MHZ时,计数频率为500KHz,每2us计数值加1;晶振12MHZ就是每1us加1 了。
当T/C工作在计数器是,计数脉冲来自外部脉冲输入管脚T0(P3.4)或T1(P3.5),当T0或T1脚上负跳变时计数值加1 ,识别管脚负跳变需要2个机器周期,即24个振荡周期。所以T0或T1脚输入的可计数的外部脉冲的最高频率为1/24fosc,当晶振12MHZ时,最高计数频率为500KHz,高于此频率将计数出错。
至于赋初值就是杯子原理了,由于51只能加计数,且只能在杯子刚刚满的那一刻发出中断,触发中断程序,所以我们就往杯子里先放好一定的豆子,再来相应数量的豆子就满了,然后中断程序就自动工作了。
注意:
定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
假设我们要定时一定时间(100个机器周期),我们就置初值为(溢出值-100)就行了,假设我们要计件100个,实际上也是置初值为(溢出值-100),然后将输入脉冲设为外部输入就可以了
所以说:定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
在中断里置初值是为下一个循环作准备,没什么好说的,看需要定了。
由于定时计数器的值也可以随时读出来,所以我们也可以从0开始计数,从而计算一段时间或一定脉冲的数量哦,这是照样可以打开中断,中断时就说明已经又计数了(定时器溢出值)个脉冲哦,在中断里进行溢出处理,就可以计算出远远大于(定时器溢出值)的数字了
此时也要注意一点:51读数时除了T/C2的捕捉功能,直接读TH和TL可是不断变化的哦,具体的还是看书。当你理解了定时计数器后,我们甚至还可以将计数值置为(溢出值-1),从而实现自动单步(定时模式)或作为外部中断(计数模式)用哦,仔细想想吧,呵呵;-)
至于中断中的需要保护现场的原因,是为了防止不小心修改了别的程序的参数,从而影响别的程序的运行,所以要且只要保护中断程序自己动过的数据,将动过的那些存储器在退出中断时恢复到进入时的状态,就不会影响被中断的程序了。
汇编需要自己保存现场,反正程序就是自己编的嘛,一切尽在掌握中;
C的话编译器会自动进行覆盖分析,自动保存需要保存的变量,一般应用时尽可放心,当然,如果你很了解编译器做了什么,也可以嵌入汇编天马行空自由发挥啊,但新手可不建议这样哦,还是交给编译器吧。
其实这些可以说都是基础知识啊,如果不明白肯定是你的书看的不够仔细哦.
猜你喜欢
1. 单片机的硬件结构是什么
2. 10秒定时器电路设计
3. 单片机技术论文
4. 单片机的发声原理
5. 单片机开题报告范文
6. 电子实习报告单片机
7. 单片机实训报告范文3篇
⑦ 《单片机》课程学习总结
《单片机》课程学习总结
篇一:《单片机》课程学习总结
《单片机》这门课程我已经学了一个学期了,在这一个学期的学习过程中,我一开始不怎么懂得编程,但慢慢的我现在已经不仅会读程序还会写程序了。真为自己一个学期来努力学到的单片机知识只是而感到高兴。
怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
我觉得学习单片机首先要懂得C语言,因为单片机大多说都是靠程序来实现的,如果看不懂程序或则不懂的编程是很难学会单片机的。学习单片机首先要明白一个程序是怎么走的,要完全懂得程序每一个步骤的意思。其次要懂得每一条指令的意思,不能盲目地去靠背指令,这是记得不牢靠的,最主要的还是靠了解。学习单片机最主要的对89C51芯片内部结构有全方面的,只要了解了89C51才能知道单片机实现什么样的功能和作用,才能对单片机有更深一步的了解。 通过一个学期《单片机》这门课程的学习,我也从中有了不少心
得和体会想和大家分享一下。
万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,不要说单片机的程序全是英文,自己看不懂。遇到困难要一件件攻克,不懂指令就要勤奋看书,不懂程序就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少。然后建个程序,加入项目中,再写代码、编译、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。
知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。 程序不要光看不写,一定要自己写一次。最开始的时候,什么都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果。看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。
必须学会掌握调试程序的方法。不少人写程序,把代码写好了,
然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
找到解决问题思路比找到代码更重要。我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。
我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以。要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人。所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。
开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
看别人的程序,学习人家的思路。这个在学习初期是很有用,通过看别人的程序,特别是老师写出的具有一定水平的程序,可以使自己编程水平得到迅速的提高。同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的程序,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
尝试编写一下综合应用的程序。从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序什么也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
着重于培养解决问题的能力,而不是具体看自己编写了多少程序或者做过什么。“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机学习单片机之后感悟出来的。真正的能力不是你曾经编写过多少个可以实现的程序,而应该是:“遇到没有解决过的问题,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。
面对一个新程序时,多自己开动脑筋,不要急于找别人的程序。
有不少人面对一个新程序时,第一步想到的就是网上找别人写过的程序,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个程序时,应该先自己构思一下整个程序的架构,想想如何来完成。有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教老师或同学,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路。如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
学会提问题。一般来说,学习过程中,你遇上的问题,多数人也有遇上的,所以如果有什么不懂,你可以去问老师。我觉得学习单片机最主要的要多提问,对于一个自己不是太懂的程序,自己一定要多提问几遍,这样不但有利于加深自己的印象还能从中学到不少别人的方法。
经过一个学期我对《单片机》这门课程的学习,不仅让我懂得了很多程序的编写,还让我学到了很多对自己有用的学习方法。总结这个学期来的我自己的学习情况,我觉得自己对编程进步了不少,懂得运用正确的学习方法学习单片机程序,不再去死记硬背指令了。所以我觉得学习要不断总结学习方法,才能让自己学习不断进步。
交通信号灯设计报告
实验目的: P1口的使用方法,延时程序的编写
实验要求:在一个十字路口分为东西南北走向,信号等按以下的状态顺序工作:
(1) 初始状态0,东西、南北红灯全亮。延时一定时间;
(2) 状态1,南北绿灯亮通车,东西红灯,延时一定时间;
(3) 状态2,南北绿灯闪烁几次转黄灯,东西仍然红灯,延时一定
时间;
(4) 状态3,南北红灯,东西绿灯通车,延时一定时间;
(5) 状态4,南北仍然红灯,东西绿灯闪烁几次转黄灯,延时一定
时间;
(6) 循环至状态1,继续
实验电路和流程框架图:
(1) 硬件电路
交通灯实训设备用最小系统板和信号灯组合而成。
2、软件编程
若各路口灯亮灭的时间间隔为2s钟,灯光闪烁时间间隔为0.5s。用软件延时的方法,晶振频率12MHz时,一个机器周期为1us。
编写交通信号灯程序:
编写主程序,由R7做主程序的计数器,确定调用延时时间为0.5s,从而获得交通灯的亮灭时间。
篇二:《单片机》课程学习总结
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机课程也结束,但通过这次单片机的学习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
当今社会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。
刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。它的应用范围很广,在工业自动化中应用有数据采集、测控技术。
在智能仪器仪表中应用有数字示波器、数字信号源、自动取款机等。在消费类电子产品中应用有空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。在通讯方面应用有手机、小灵通等。在武器装备方面应用有飞机、坦克、导弹、航天飞机、智能武器等。刚开始学习时只能抄写别人做成功的程序,一遍一遍的写,从简单的入手,逐步的积累,一步步的能够将小的程序结合到一起,拼接成较为复杂一些的程序。但是程序不要只是看别人得,一定要自己写过才是自己的。只有当你自己能写出来的时候说明你真懂了。刚接触KEIL时确实很让人头疼,使用 KEIL不会建项目、不会使用实验板。然后可以参考已经成功的程序,抄过来,写一个最简单的,让它运行起来,先培养一下自己的感觉,先建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人,自己一定要掌握解决问的方法和思路。对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。应该先想一下程序的构架,想想如何来完成。然后自己动手去写,理清自己的思路这样更容易提高自己。
熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是错误的`)。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,虽然单片机的课程只上了几节就去上班了,但在学习的过程中有了一定的了解。下面就本人学习单片机的过程和经验做简要介绍。
首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在这里给大家推荐一本单片机C语言程序设计参考书,马忠梅等着,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,建议学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选择。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
然后,是开发工具和开发环境的选择。选择一块合适的学习板,对于初学者来说一般无力接受,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。
随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得非常兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了一定了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品.因此除了入门外,精通可千万别轻易说出口。
最后,在熟练掌握和应用后,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计开发各种课题,不断的积累经验。最终,自己完全设计具有个人风格的课题,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,这大家可能都听过。
有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远!
;