单片机应用实践报告

2024-09-12

单片机应用实践报告(通用9篇)

1.单片机应用实践报告 篇一

中国地质大学江城学院

一、课程设计内容编写C程序进行跑马灯及键盘控制根据所用芯片设计外围电路电路焊接程序下载入所焊电路进行系统软硬件综合调试

二、器材

9个二极管、9个330Ω的电阻、11个10K的电阻、2个220Ω的电阻、4个

5.1K的电阻、1个整流二极管IN4007、1个三端稳压集成电路(+5V)LM7805、2个10μF/25V的电容、1个三端稳压芯片(+3.3V)LM1117、1个12MHZ无源晶振、2个33瓷片电容、2个16脚的插槽、2个CD4511BE芯片、1个20脚的插槽、1个74HC573N芯片、1个24脚的插槽、2个七段数码管、1个14脚的插槽、1个HD74HC21P芯片、1个40脚的插槽、1个AT89S52芯片、1个10脚下载口、19个按键、若干细导线。

三、电路结构

四、程序设计

1.跑马灯和键盘控制:

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit P27=P2^7;

sbit P26=P2^6;

uchar a;

uint key;

uchar code table[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0x00,0x11,0x22,0x33,0x44,0x55};

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

main()

{

P1=0xF0;

P2=0x00;

P0=0x00;

a=0x01;

P26=0;

P27=1;

key=0;

EA=1;

EX0=1;

EX1=1;

IT0=0;

IT1=1;

PX0=0;

PX1=1;

while(1);

}

display(uint num)

{

P26=0;

P0=table[num];

delay(20);

P26=1;

P1=0Xf0;

}

void int0()interrupt 0

{

uint i,j,pin;

P27=0;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{

P1=0xFF&(~(0x01<<(3-i)));

pin=P1;

if(((pin>>(4+j))&0x01)==0)

{key=i+j*4;

IE0=0;

return;

}

}

display(key);

}

void int1()interrupt

2{

P26=1;

while(1)

{

a=_crol_(a,1);

P27=1;

P0=a;

delay(1000);

P27=0;

}

}

2.秒表:

#include

#define uchar unsigned char

#define uint unsigned int

sbit P27=P2^7;

sbit P26=P2^6;

uint a;

uchar b;

main()

{

TMOD=0x01;

TH0=0x3C;

TL0=0xB0;

ET0=1;

EA=1;

TF0=0;

TR0=1;

P0=0xFF;

P2=0x00;

P26=0;

P27=1;

while(1);

}

void Timer0_Overflow()interrupt

1{

TH0=0x3C;

TL0=0xB0;

{ if(a==20)

{a=0;

b=b+1;

if((b&0x0F)==0x0A)b=b+6;

P0=b;

}

a++;

if(b>0x59){b=0x00;P0=b;}

}

}

五、结果分析

1.外部中断0控制按键,此时令P27=0,让8个二极管锁存为初始状态,全灭。同时令P26=0,然后按下按键可以在数码管上同时显示相应的数字,按下16个键可以显示0-9-0-5。

2.外部中断1控制跑马灯,此时令P26=1,让数码管锁存为初始状态,不亮。同时令P27=1,二极管就能大约1秒循环。

3.显示60秒,令P26=0和P27=1,让数码管和二极管都亮,二极管按照0-59循环,数码管就显示0-59秒。

六、实物图

2.单片机应用实践报告 篇二

一、深刻理解单片机硬件结构特性及其指令系统尤其重要

从应用的角度来讲, 只有弄清单片机的硬件结构特性, 才能抓住单片机的供应状态, 即提供给用户可用资源有哪些, 如何才能合理地使用这些资源等等。

不管是哪一类型的单片机, 要能实现对外部设备的控制作用, 都必须具有运算、存储、控制、输入输出、通信、定时/计数、中断处理、时钟等基本功能。从总体上看, 不同类型的单片机在内部结构和外部接口功能上是相似的, 但机型不同的单片机在结构特性和外部接口上又是有区别的。

因此, 要正确应用单片机实现对外部设备的控制, 首先要深入理解和掌握单片机的硬件结构特性及指令系统。

二、理论知识以“够用”为度, 强化综合应用能力

采用以工作过程行为导向的教学模式, 理论知识的讲解贯穿于应用操作过程中, 以应用所需的基本内容为重点, 培养学生学习知识的方法和能力, 通过应用操作过程培养学生综合应用能力。采取从感性认识入手, 以核心实例“教学做”相结合的方式进行教学;在课程目标上要纠正只重知识和理论的倾向, 使理论与实践并重、知识和技能并重;在考核与习题的安排上要纠正只重考核知识和理论的倾向, 大大增加操作考核与项目制作考核的分量;在教材选材上, 要有利于提高职业岗位 (专业领域) 的技术综合能力和学生未来的发展后劲。学生的能力是靠以教师为主导、学生为主体的教学过程“训练”出来的, 而不是仅由教师“讲”出来的。课程内容选材要面向产业、面向市场、面向社会。专业内容的选材要注意理论上的先进性和面向实际、面向今后的发展。教学中还要注意学生整体素质的诸要素, 如表达能力、协作能力、实践能力、创新能力等的培养和考核。

(1) 压缩与通用微机原理的重叠部分。从MCS-51系列单片机与通用微机的结构、原理异同点的角度来介绍单片机的硬件结构。这样使学生以通用微机的原理知识作基础, 学习起来感到轻松和容易理解。

(2) 始终贯穿应用观点。在讲解单片机的硬件结构时, 重点明确指出要抓住MCS-51单片机的供应状态, 即如何正确合理地使用单片机提供给用户的软、硬件资源, 以避免使学生陷入枯燥的理论之中。

(3) 采用“以点代面”的讲解方法, 着力使学生达到“以点知面”、“触类旁通”的效果。例如, 以MCS-51单片机为讲解对象, 使学生获得学习方法和能力, 从而也可以易于学习其它类型的单片机;以8155接口芯片为讲解对象, 总结出可编程接口芯片的一般接口方法和应用编程方法的规律, 从而使学生能更容易地理解和掌握其它接口芯片。在讲授中注重找规律、找共性、找个性, 借助规律、共性和个性易化新内容, 产生新思维。

(4) 着力使学生掌握优化的学习方法。掌握一门学科知识的学习方法, 其实质是找出并抓住学科知识的内在联系, 并形成一个完整的体系。例如, 在讲指令系统时, 不去按功能类逐条指令罗列讲解, 致使学生深感繁多的指令像一盘散沙难以理解。指令系统中有一些操作具有多条指令的子集合, 子集合中的指令只是针对不同的操作对象, 即由不同的寻址方式组合而成的;有一些操作不同, 操作数的组合规律却相同或相似, 如加、减、逻辑操作指令。所以, 笔者在讲述中用归纳、类推、类比方法进行纵向归类、横向类推、比较, 使学生在学习繁杂的指令系统时感觉到有规可循、轻松易学。同时, 对每类指令着重揭示其内部执行原理, 有效地与单片机内部硬件结构相联系。这样, 为提高学生的综合应用能力和创新思维打下理论基础。

(5) 单片机C语言程序设计是单片机应用系统开发设计的新方法, 在讲授中应根据学生的基础情况进行, 为学生走向社会、适应现代技术需要更好地奠定基础。

三、重视实践教学环节的创新

(1) 优化实践教学内容, 提高实践教学的比例。在实验内容方面, 减少演示型、验证型实验, 增加技能型、设计型和综合应用型实验, 放手让学生做探索性实验、设计和开发, 培养学生的操作技能和综合应用能力。

(2) 强化基本操作, 循序渐进地提高基本技能与创新思维能力。先完成基本操作, 逐步过渡到综合应用性实验, 对部分综合性应用实验完全由学生独立设计, 在教师的指导下完成。

(3) 创新教学方法, 激发学生学习兴趣。对于综合性较强的实践项目, 教师先针对性地提问, 然后学生讨论、思考, 在操作调试中去探索、解决问题。例如, 用8155扩展键盘输入, 先让学生弄清8155的引脚功能, 该芯片怎样初始化编程?8155芯片如何与单片机连接?……学生通过基本操作解决了上述问题以后, 再设计键盘输入程序, 完成调试。在完成了8155接口扩展键盘的应用后, 引发学生思考:8155用于LED显示扩展怎样实现呢?学生带着好奇心, 主动讨论、思考, 提出自己的设计思想, 利用课余时间完成此应用。这样, 通过举一反三、不断探索的方法, 促进学生对芯片的接口方法和应用编程的掌握。通过小组讨论、共同探讨, 在培养学生创造能力和团结协作能力的同时, 也培养了其严谨的科学态度。

(4) 开放实验室, 创造条件, 为学生提供更多的探索机会。综合性应用实验需要足够的时间才能完成, 在规定的时间里往往不能完成。实验室开放以后, 学生就可以随时利用自己的课余时间进入实验室, 从事自己的实验。这样, 既调动了学生的积极性, 又培养了学生的自学能力和钻研精神。

(5) 培养优秀学生当助手, 促进教学。培养品学兼优的学生当教师的助手, 在教学中, 让助手参与实验指导、教学探讨、课题研究。让他们有更多的实践机会探索新知识、新技术, 解决新问题, 提高他们的能力, 增长他们的智慧, 让他们带动和影响更多的学生。同时, 助手还可以及时反馈学生对教学的意见或建议, 促进师生互动, 提高教学的实效性。

摘要:《单片机应用技术》课程理论性和实践都强, 在教学中, 培养和提高学生的基本技能与综合应用能力是课程的教学目标, 教学创新是课程建设的需要, 也是高职教育改革的要求。

关键词:教学方法,创新,探讨

参考文献

[1]李忠国, 陈刚.单片机应用技能实训.人民邮电出版社, 2006.

[2]唐德礼等.单片机原理及应用.武汉:华中科技大学出版社, 2005.

3.单片机应用实践报告 篇三

【关键词】单片机原理;应用课程;教学改革;实践教学

在现代电子工程领域中,单片机是一种比较常见的技术,并在很多的家用电器中得到了较为广泛的应用。而作为电气信息类专业的学生,必须充分掌握该课程的技术知识,也是必备的技能之一。但是,由于单片机原理和应用原本就是一门应用性、实践性都很强的课程内容,只有将实践教学与理论教学灵活运用在一起,才能保证达到理想的教学效果。以下,本文重点对单片机原理与应用课程教学改革与实践进行了探讨分析。

1.教学中存在的问题及原因

在传统的单片机教学过程中,教师们通常比较侧重于对单片机原理知识和各零部件的介绍,教材内容也相对枯燥单一,缺乏对学生实践能力方面的培养。并且,在对教学课程进行安排时,也是将理论教学与实践教学相互分离,虽然充分保证了课程体系结构的完整性,却忽视了课程实用性的重要性,最终导致理论与实践出现脱节的现象。以下本文就具体归纳了在当前单片机应用课程教学中主要存在的问题,并对其原因进行了详细的阐释。

1.1教学安排不适应现行单片机原理与应用的教学

传统的教学方案中基本是由教师对单片机的工作原理、工作流程以及内部构造等进行介绍,学生们只是被动的学习。并且,这样的教学方法并不能让学生更好的了解到单片系统是怎样设计和组成的。而单片机工作原理内容又与微机原理课程存在着很多的相似点,如果教师一直过多的叙述这方面的知识,很难再激发学生的学习积极性,甚至还会让学生产生一种厌学的心理情绪。

1.2實践环节重视不够

由于缺少实践课程,使得学生无法更加全面的掌握到单片机系统的设计方法,导致学生实践操作能力较差。而在传统的实践教学中,一般是以验证性试验为主,只是让学生们大致了解一下单片机的系统构造、输出输入等方面的实验。并且,还有大部分的验证性实验都是根据相关的指导书完成的。这样一来,学生通过指导书上的步骤就可以完成实验,非常不利于对学生创新性思维的拓展,更无法有效提高实践动手能力,久而久之,学生还很可能形成敷衍的学习态度和学习习惯。

1.3教学手段有待提高

现如今,单片机技术的飞速发展,多样性的单片机集成芯片不断涌现,随之而来的大量山寨的仿真软件也越来越多。如果教师还是依旧采用传统的教学方式和教师,不仅无法提高学生的学习积极性,还大大降低了教学质量。

1.4 教师自身能力有待提高

众所周知,单片机原理和应用是一门实践性较强的课程。然而,就我国当前单片机课程教学现状来看,其中大多数是以青年教师为主,一直都没有对单片机系统进行过深入的研究开发,缺乏这方面的实践经验。所以,在实际的教学过程中,也只会照本宣读,很难达到较为理想的教学效果。

2.理论教学改革

2.1适当调整课程学时以顺应单片机技术的快速发展

以某院校为例,其结合单片机技术的发展与多年来单片机教学的经验,对该院 5 个专业的教学大纲与学时进行了修订。从原有的 32 学时调整为 48 学时,实践教学环节从 4 学时调整为 8 学时,并且加上了一个周的课程设计。学生在先修完微机原理及应用课程之后才开设单片机原理与应用课程,这样可以大大节约单片机内部结构、工作原理、汇编语言的教学学时,这部分的内容既可以类比微机原理又可以作为基础,使学生易于入门。经过修订,MCS-51 单片机的硬件、指令系统压缩为 10 学时;单片机的扩展、接口电路与应用为 12 学时;其他类型的单片机原理及应用为 8学时;单片机系统的开发调整为 10 学时;实践环节为 8 学时。

2.2以实际应用为主,培养学生学习兴趣

想要有着激起学生的学习兴趣,教师在对单片机原理与应用课程进行教学时,要向学生详细的讲述单片机这门课程与本专业之间的联系,并重点对其重要性、应用和发展等方面进行系统的介绍,同时制定出明确的教学目标。其次,教师要高度重视对学生实践能力的培养,多多开展实践教学活动,可以先将单片机事物展现在学生面前,通过利用数字电路观点进行叙述。这样一来,学生就能够迅速了解到单片机的工作原理是与集成块的工作原理十分相似,以此来增强自己的学习信息。并且,教师还应该对一些简单的驱动系统进行演示,让学生们直接观察单片机的应用过程,促使学生自发主动的参与其中。另外,教师还应该加强实践教学与理论教学的相互结合,采用先进有效的教学方法,并在平时的理论教学过程中,加入大量演示性实验,从而加深学生对所学知识内容的印象。

在实际的操作动手过程中,教师可以允许学生使用计算机和网络,通过从多种渠道来或缺更多的单片机资料,从而不断丰富自己的知识资源,促进学生向着复合型人才而发展。

2.3加强C51语言的教学

多年来,单片机的教学和单片机系统的开发,大多都以汇编语言作为开发工具,这是由于汇编语言具有代码紧凑、执行时间短、控制及时且易于记忆等优点。但是随着单片机技术的发展也出现了一些问题,主要表现在对硬件结构的过分依赖,不同类型的单片机汇编指令有所不同,而且程序比较繁琐,可移植性差等。与汇编相比,C语言在功能上、结构上、可读性和可维护性上有明显的优势,而且C语言有丰富的函数库,可以有效减少编程工作量,对单片机的硬件稍作了解即可进行系统开发,特别是C语言对寄存器的分配与寻址方式都是由编译系统自动完成,由此可见,将C语言引入单片机的教学是很有必要的。在教学过程中,汇编语言与C语言并重。让学生能看懂汇编语言,可以用汇编语言完成简单程序的设计,但不要求完成复杂系统的程序设计,这样大大降低了学生学习的难度。同时,要求学生能够用C语言完成简单和复杂程序的设计,从对比中加深对汇编语言和C语言的理解。

3.结束语

由于该门课程相对比较抽象,学生普遍反映开始学习的时候入门较难且难以理解单片机的内部结构,因此如何使学生循序渐进地掌握单片机技术?怎样使理论教学与实践教学有机结合?这些问题已成为单片机原理与应用课程体系建设的重要议题。 [科]

【参考文献】

[1]李建忠.单片机原理与应用[M].2版.西安:西安电子科技大学出版社,2008:12-25.

[2]杨立林.单片机原理与应用课程教学的实践与思考[J].江苏技术师范学院学报:自然科学版,2009,15(2):62-66.

4.计算机应用实践报告 篇四

专科生课程设计(实践)任务书、设计报告

题目

学生姓名 指导教师 学院 专业班级 学生学号

计算机应用

2010年12 月7 日

信息管理与信息系统一. 任务内容

21世纪是信息科学技术飞跃发展的时代,信息技术在经济管理领域应用广泛,网络经济的发展对电子商务、金融工程等人才的需求势必增加,随着全球经济一体化形势的发展,信息管理与信息系统专业培养的人才将受到人才市场的青睐。经济全球化和我国加入WTO,IT企业迎来前所未有的发展机遇和压力,这些企业不仅需要计算机软、硬件工程师,通信工程师,更需要信息化建设的复合型开发和管理人才,以便进行企业事业和部门的应用系统的开发、维护,进行信息资源的开发利用。进入新世纪,我国开始了第三步战略目标的奋斗历程,国家提出了“以信息化带动工业化,以工业化促进信息化”的战略举措,提出了我国国家信息化宏伟蓝图。对于这样一个伟大的历史进程,应该而且必须有强有力的学科支持,以便培养新型高端的管理人才、IT人才及其综合型的复合人才

国家和省市各级信息产业、财政和金融部随着信息技术的迅猛发展,信息技术与管理的关系日渐紧密,也日趋融合,信息和信息技术已经并将进一步对经济社会发展产生巨大影响。以管理信息系统规划,开发与管理,信息产业管理,系统仿真与知识管理等内容为主的该研究方向一直是重点研究领域,而且随着我国国民经济和社会信息化进程的加快,研究方向近年来除了在原有领域继续开展研究外,加强了对电子商务和企业管理信息化的研究。

二,必备知识和能力

l.掌握信息管理和信息系统的基本理论基本知识

2.掌握管理信息系统的分析方法、设计方法和实现技术 3.具有信息收集、组织、分析研究、传播与综合利用的基本能力

4.具有综合运用所学知识分析和解决问题的基本能力

5.了解本专业相关领域的发展动态

6.掌握文献检索、资料查询、收集的基本方法,具有一定的科研和实际工作能力。

7. 掌握软件设计流程,熟悉互联网产品开发流程。

8.掌握HTML语言,CSS,JavaScript以及WEB标准思想。

9.具备信息资源管理的综合能力,胜任“IT+管理”类深具发展潜力的工 三.方法技巧

信息管理与信息系统专业的毕业生就业领域很广,它具体涉及管理、信息处理、计算机及办公网络应用、电子商务、通信交流等不同的行业门

类,包括国家各级管理部门、工商企业、金融机构、科研单位等部门,以及从事信息管理、信息系统分析、设计、实施管理和评价工作的单位。目前,人才市场上对这一专业领域的毕业生人才需求量很大。现在无论政府部门,还是公司企业都处在信息化时代,都需要一大批信息管理类专业人才从事相关的信息数据收集、传送、储存、加工以及综合运用,来完善内部组织的科学管理,进一步提高工作效率。信息管理与信息系统专业涉及的行业领域工作性质是:利用电子计算机、网络等现代化办公手段进行信息的收集、传送、储存、加工以及使用,方法以及信息管理等方面的知识与能力,实测企业的各种运行状况,利用过去的数据预测未来。并且从企业全局出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其制定规化的目标。

信息管理与信息系统专业就业领域主要包括管理信息系统的设计、开发与维护使用,信息系统的分析、评价与具体应用操作等。这些工作的发展趋势是以互联网为基础,融会大、中型企业、机构和组织的政府管理信息平台、公众信息服务平台、企业经营信息平台、行业管理与交易平台等综合服务分支,逐步实现商业、贸易、政府信息方面的系统化与综合化。据国家人事部以及有关方面的调查分析数据表明,今后10年我国对人才需求将有较大的变化。其中急需的专业人才就有信息技术管理人才。四,总 结

现代信息技术环境中的馆藏信息资源 ,最重要的是应当突出资源特色;发展情况本专业是计算机与管理相互结合的实用型专业,主要培养既懂经济管理,又懂通信技术,掌握现代信息技术理论与方法,具有较强的计算机应用能力和管理信息系统分析与设计能力的高级技术人才。她着重培养学生以下几个方面的知识和技能:通信技术与生产组织管理的基本知识、现代经营管理理论与方法、计算机与信息处理原理,并具有信息系统设计、开发与管理的能力。

管理本身是一个很宽泛的名词,包含有很多方面。作为一名有志于信息管理与信息系统的考生,不能简单的认为管理就是单纯的人与人之间面对面的管理,或者是对一摞厚厚的卷宗埋头分类整理。在科技发达的现在,计算机成了重要的管理工具,因为有效的管理软件和硬件相结合,可以减少数据收集和分类的时间,更加系统化地实现信息管理。

随着科学技术的进步,该专业涉及的行业面临着巨大的发展机遇。它所研究的内容将在各行各业得到广泛地应用。在各行业中,它能提高其管理决策的科学性与正确

5.单片机应用实践报告 篇五

院系:班级:姓名:学号:寒 假 社 会 实 践 报 告

寒假实践报告

实践单位:东海渔港饭店

实践时间: 2012年1月28日 至 2012 年2月28日 共30天

实践报告正文

一、实践目的

我们都知道:进入大学是大学生进入社会的第一步。然而,在校园里我们仍然不能完全融入社会。因此为了我们结束大学生活的时候能够更好的、更快的适应社会,提高自己的实践交际能力,锻炼自己的才干,培养自己的耐力。

二、实习单位介绍 东海渔港酒店:东海渔港酒店坐落于单县。地理位置优越,交通方便,是一家以吃饭为主,喝酒为辅的餐饮场所。

三、实践时间

2012年1月28号——2月28号

四、实践岗位介绍

传菜员,顾名思义,就是将做好的菜送到每个餐桌上。这里工作是上午9点上班,工作到中午2点下班。下午4点半上班,晚上不定点下班,到最后一位客人走后下班。工作量有点大,一站就要站几个小时,刚开始有点不适应,一天下来腿都麻得受不了。现在想起来,我能坚持下来,真的感觉很欣慰。刚开始去,大家把我当新人看待,有些不接受我。所以我就十分小心地处理人际关系,能自己做的事情尽量自己完成,在完成自己的工作之余,尽量帮助同事。如在下班之后,主动帮助服务员整理碗筷和桌椅。

五、实践收获

1、服务意识的提高

对于饭店等服务行业来讲,服务质量无疑是其核心竞争力之一,是它的生命线。高水平的服务质量不仅能够为顾客留下深刻的印象,为其再次光临打下基础,而且能够使顾客倍感尊荣,为饭店树立良好的品牌和形象。通过饭店的学习和平时的强化练习,锻炼了我的服务意识,养成了面对客人保持微笑的好习惯;学会了用标准的礼仪礼貌待客;明白了学好外语的重要性。

2、服务水平的提高 经过了一个月的实习,使我们对饭店的基本业务和操作有了一定地了解。礼貌是一个人综合素质的集中反映,饭店更加如此。要敢于开口向人问好,在向人问好的过程中还要做到三到:口到,眼到,神到,一项都不能少。对于客人的要求,要尽全力去满足,尽管有些不是我们职责范围的事情,也要尽力帮其转达;尽管有些要求不合理、不能办到,也应该要用委婉的语气拒绝,帮客人寻求其他解决方法。

3、挣钱的辛苦

整天在饭店辛辛苦苦上班,天天面对的都是同一样事物,真的好无聊啊!好辛苦啊!在那时,我才真真正正的明白,原来父母在外打工挣钱真的很不容易!4人际关系

在这次实践中,让我很有感触的一点就人际交往方面, 大家都知道社会上人际交往非常复杂,但是具体多么复杂,我想也很难说清楚,只有经历了才能了解.才能有深刻的感受,大家为了工作走到一起, 每一个人都有自己的思想和个性,要跟他(她)们处理好关系得需要许多技巧,就看你怎么把握了.我想说的一点就是,在交际中,既然我们不能改变一些东西,那我们就学着适应它.如果还不行,那就改变一下适应它的方法。让我在这次社会实践中掌握了很多东西,最重要的就是使我在待人接物、如何处理好人际关系这方面有了很大的进步。同时在这次实践中使我深深体会到我们必须在工作中勤于动手慢慢琢磨,不断学习不断积累。遇到不懂的地方,自己先想方设法解决,实在不行可以虚心请教他人,而没有自学能力的人迟早要被企业和社会所淘汰。

5、实习与未来的就业

实习过程中,让我提前接触了社会,认识到了当今的就业形势,并为自己不久后的就业计划做了一次提前策划。通过这次实习,我发现了自己与社会的契合点,为我的就业方向做了一个指引。

6、致谢

感谢学校和实习单位给了我这次实习的机会,这次实习给了我一个锻炼的机会,让我开阔了眼界。以后我会继续努力,继续学习,丰富知识,提高自己的综合能力。

六、总结

总之,这次打工的经历真得让我刻骨铭心!我所收获的只有我自己知道!在短短一个月的打工生涯中,我觉得我不仅仅是学到了一些知识,更重要的是练就了自己的韧性,让自己明白了很多道理,很多看似简单的道理,也为我自己踏入社会作好铺垫,人,总是需要去磨练,去拼搏,要不岂不是在人间白走一遭吗?虽然我并不迷信,但我一直相信:既然给你做人的机会,那么就要好好的把握!

6.单片机实验报告 篇六

一、实验目的

1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解

4.培养运用汇编语言进行初步编写程序的能力

二、实验内容

1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示

3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序

1.将片外RAM3050-306FH中数据转移至片内70-8FH中

ORG 0000H AJMP MAIN 上电,转向主程序

ORG 0030H 主程序入口

MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器

MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一

DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行

MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

SJMP $ 等待

END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN 上电,转向主程序

ORG 0003H 外部中断0向量入口

AJMP INSER ORG 0030H 主程序入口

MAIN: SETB EX0 SETB IT0

SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行

RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP

允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位

判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值

MOV TL1,#0F0H

SETB ET1 开中断

SETB EA CPU开中断

SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断 ORG 001BH T1中断向量地址

CLR TF1 将TF1清零

CPL P2.0 P2.0取反输出

MOV TH1,#0D8H 重装初值

MOV TH0,#0F0H

RETI;中断返回

END 4.2 查询方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口

MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值

MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待

CLR TF1

产生溢出,清标志位

CPL P2.0 P2.0取反输出

SJMP LOOP 循环

END

四、实验结果截图

1.2

3.4.1

7.单片机应用实践报告 篇七

关键词:单片机,工作过程,仿真软件,教学改革

为适应市场需求和生产实际需要, 单片机原理及应用已成为高职电气自动化专业、电子信息专业等专业的主干课程, 在整个课程体系中处于承上启下的核心地位。然而单片机的教学效果却令人担忧, 学生普遍感觉到单片机难学, 大批接受过单片机应用教育的毕业生输送到社会上后并不能满足用人单位的要求, 因此如何利用课程教学提高学生的整体素质, 是一个急需要研究的问题。本文从当前高校单片机教学中存在的问题入手, 结合教学实践, 对单片机的理论和实验教学提出改革的方案和措施。

1 单片机教学中存在的问题

1.1 传统教学模式的限制

目前, 高职院校单片机课程教学仍然沿用着传统教学模式, 即:单片机的硬件结构—汇编指令系统—系统扩展—接口技术—应用系统设计。在这种软硬件分离的教学环境中, 复杂的应用指令、枯燥的汇编程序设计把学生搞的疲惫不堪, 导致学生丧失学习兴趣, 严重影响教学效果。

1.2 单一教学手段和方法的限制

传统的单片机课程的理论教学形式一般都是向学生讲解大量理论知识, 但是单片机作为一个“黑匣子”, 其内部的资源看不见、摸不着, 抽象的概念不能很直观地给学生讲解, 学生理解起来比较困难;在进行实验时, 学生仅仅是将程序输入电脑进行简单的验证, 这样方法不但不能调动学生的积极性, 也不能发挥学生的创造力。

1.3 考核方式的限制

传统的单片机课程的考核方式通常都是闭卷考试, 只能考察学生对某个知识点的记忆能力, 并不能灵活全面地考查学生分析和解决实际问题的能力, 这种考核方式不能促使学生达到具备处理实际问题的能力。

1.4 实验设备的限制

建立单片机实验室的成本比较高, 很难达到学生人手一套实验开发系统, 而且单片机和嵌入式系统发展迅速, 设备的更新率非常高, 资金投入远远跟不上更新速度。此外, 作为初学者, 学生对设备的损坏率也比较高, 也造成了维修成本的增加。

2 改革措施

2.1 组建项目式的教学内容体系

为避免传统的教学模式磨灭掉学生的学习兴趣, 应将“教”“学”“做”三者合为一体, 组建项目式的教学内容体系, 把理论和实践同时进行, 在教学过程中, 采用任务驱动层次递进型的教学方式, 教学过程如图1所示。

采用这种方法, 可以将单片机的知识点细化到各个任务中, 每一个任务都作为一个项目, 通过具体的实施过程让学生逐渐地接受基础知识, 同样也培养了学生动手和处理实际问题的能力。

2.2 将面向工作过程融入教学组织和教学内容中

对应于实际的工作过程, 教学过程应立足于基本知识点的引入, 使用仿真软件对理论体系进行仿真, 然后再根据仿真的过程列出元件清单, 最后做出实物, 学生亲自动手调试, 最终由教师进行课程总结, 这样可以大大调动学生的积极性, 激发学习兴趣。我们以音乐门铃的设计为例, 面向工作过程的实践流程如图2所示。

2.3 优化课程教学内容

改变传统教学中将单片机结构和原理作为重点的指导思想, 将“必需”“够用”“现学现用”的原则贯穿于整个单片机的教学过程中, 简化不必要的复杂理论, 将丰富的应用实例添加到理论知识的学习中。改变原有单片机课程中将汇编语言作为重点的思路, 在教学过程中引入单片机C语言 (C51) , 这样不但有助于学生学习, 而且有利于学生更快适应将来的工作过程。

2.4 改革现有的考核方式

采用开闭卷结合的方式, 闭卷考查学生对知识点的掌握情况, 利用设计题对学生进行开卷考试, 以考查学生的创新能力和解决问题的能力。

2.5 利用仿真软件提高实验效率

利用Proteus和Keil搭建虚拟实验平台可以满足单片机教学中实践环节的要求, 实现互动的电路仿真。这两种软件的完美结合运用于课堂教学中, 带给学生直观的教学效果, 大大调动了学生的兴趣。

3 结语

单片机具有实践性和应用性强的特点, 学生将来在工作中会遇到各种各样的实际问题, 我们在教学中应不断努力、改进教学理念, 改革教学内容, 积极探索课程教学方法, 以切实有效地改善教学效果, 提高学生的整体素质。

参考文献

[1]邓文娟, 朱兆优, 王嵩.探索单片机教学改革提高学生工程实践能力[J].东华理工大学学报:社会科学版, 2010 (4) :383-386.

[2]丁保华, 张有忠, 陈军, 等.单片机原理与接口技术实验教学改革与实践[J].实验技术与管理, 2010 (1) :117-119.

8.单片机应用实践报告 篇八

摘要:从培养应用型人才的教学目的出发,结合“单片机原理与应用”课程教学实验及课程设计环节中的实际情况,讨论了如何开展教学内容、配套实验和课程设计环节的改革,激发学生的学习兴趣,培养实际设计动手能力,从而促进理论与实践的贯通,为学生较好掌握单片机设计应用方法提供教学改革经验。

关键词:单片机:实践教学;改革;应用型人才;培养

“单片机原理与应用”是一门工科电类大学生重要的专业基础必修课,其特点是应用性强。在日常生活中我们到处可以接触到采用单片机进行自动化控制的家用电器,如空调、冰箱、电饭煲、洗衣机等。在每年举行的国家或省大学生电子设计竞赛中,几乎所有的作品都要使用单片机才能完成系统设计。单片机实际上已成为小电子产品自动化功能实现的首选设计,因此,对电类学生来说,掌握了单片机的应用技术,就相当于踏进了就业的大门。我校曾获电子竞赛奖的同学在企业招聘中供不应求就说明了这点。因此在大学里,怎样上好单片机这门课程,使学生产生学习单片机设计的兴趣,学会单片机设计应用技术,是非常值得研究的教学课题。

一、教材建设与实践研究密切结合

教学与科研有机结合是高校教学的特点之一,今天的课本知识是昨天的研究成果,现在的研究是明天的课本教材。只有不断地掌握新知识,实践新技术,才能及时更新教学内容,将当前最新的应用器件介绍给学生,将自己最新的技术知识传授给学生。一个连自己都不会进行单片机设计的老师来从事单片机的课堂教学,其效果是可想而知的。因此,一方面教师要注重单片机的实际应用研究实践;另一方面要将最新知识融入教材,及时更新教材内容,最好是自行出版教材。

二、课堂教学与考试方式的改革

1课堂教学方法

课堂教学要注重以下几个要点:

(1)理论教学和实践教学要交叉进行。在课堂教学中,利用单片机实际应用系统的实物来直观演示单片机的功能,并进行程序及硬件设计原理分析;或利用MEDWIN或WAVE等集成单片机调试环境进行编程及程序调试的课堂教学。使学生既学习单片机原理知识,又了解实际设计工具,逐步熟悉掌握编程调试工具,这会使学生对单片机原理的学习产生一种从感性到理性的认识。再通过自己在实验中的亲身实践,迅速培养学习的兴趣,进而用理论指导实践,以实践巩固理论。

(2)在课堂上要多让学生上参与一些具体实例的演示程序的编程思考,改变以教师为中心的满堂灌。多提问,多启发,多采用讨论式的教学。

(3)课堂教学使用多媒体课件并适当结合板书。把程序和指令的执行过程以多媒体课件形式表现出来不仅形象化,而且大大地增加了教师讲解的知识容量,有更多的时间讲解重点和难点。

(4)作业布置与小实验相结合。如编程定时,计数器、中断等小程序作业,学生都可以在寝室的计算机上实验,自己独立编程与调试,并加以验证,为进行设计性正式实验准备基础。

(5)单片机课程所有的教学及辅导资料均可在精品课程网站上下载,学生课外可以在网上进行自主学习、资料下载、在线网上模拟考试、教师在线解答问题等。对于一些理解能力较差或特别感兴趣的学生,可进行个别辅导。

2理论考试

单片机是注重实际设计应用能力掌握的课程,应采用灵活的考试手段。理论考试可采用开卷形式,考核内容应强调对知识的理解和应用,避免死记硬背。另外还可结合计算机理论机考,我校有单片机课程的网上考试系统,考试时每位同学随机抽题,全班同学的试卷均会不同,减小了学生作弊的可能性。

三、实验教学与实际设计结合

我校从2001年开始自主开发单片机实验电路板,并实行由学生从焊接元件开始到编程实现控制功能,既培养了学生学习兴趣,又掌握了单片机产品设计的方法与全过程,教学效果明显。单片机实验内容我们安排了设计性实验项目“LED时钟电路的设计”。这是一个学生较感兴趣并且程序设计复杂度可随学生能力的不同而改变的编程实验。对于基础差一点的学生,可编制出能按24小时制运行的计时器;对基础掌握较好的学生,可编制出许多的时钟功能,如:开机滚屏显示班级学号、时间调整、按键音、定时提醒、秒表功能、倒计时定时器、整点报时等。实验板成本在30元内,成本低廉,而效果远比实验箱或电脑上模拟调试要好得多。

四、课程设计注意设计的难度,为毕业设计作准备

课程设计是单片机设计应用能力的再次巩固提高,应在课堂实验的基础上有所提高。我校在2003年设计了一款多功能小型LCD液晶显示单片机实验板,用于学生课程设计,实验板可进行7个以上的综合性编程实验。

1实时时钟编程实验。可在液晶屏上显示年、月、日、星期、时、分、秒等信息,可进行实时时间的调整,24小时内可设定多次定时功能,能在E2pROM中存储定时数据。

2数显温度计编程实验。能在液晶屏上显示当前的气温、水温或其他被测物的温度,能设定低温或高温报警,能模拟空调等温控器的作用,能在EZPROM中存储设定的报警温度。

3超声波测距编程实验。能显示障碍物的距离,能设定远距离或近距离的报警,能模拟运动物体的自动测距报警功能,能在E2PROM中存储距离报警数据。

4遥控发射与接收编程实验。能用一块实验板作为遥控器,另一块作为接收器进行红外线遥控编程实验。遥控器有6个按键,接收器的功能演示可用LED小灯、蜂鸣器、液晶背光灯等。

5正弦波信号源编程实验。可输出0.01 HZ~83HZ的正弦波(或三角波),还可输出1.3HZ~10.6KHZ的方波信号。

6串行通讯编程实验。能与PC机进行串行通讯,在PC机的超级终端上显示中文字符或其他字符。能用PC机发命令控制单片机的功能操作。

7音乐编程实验。能用蜂鸣器演奏自编歌曲。

8将以上编程实验进行组合并结合鼠标、旋转编码开关等,成为多功能的应用设计实验项目。

单片机课程设计一般安排在学期末或次学期,在做实验之前,必须提前将实验项目的设计原理及编程思想在课堂教学中进行介绍,结合学生平时进行的上机小实验,在学生有一定编程基础的条件下才能进行课程设计。课程设计时间为1.5周,设计前学生应认真查阅《单片机课程设计实例指导》教材(或课程网站)中有关12232F液晶显示器、DS1302实时时钟、24C16存储器、RS2通讯串口芯片MAX232、DA0832数模转换芯片、CX20106红外线接收芯片、74LS04(六反相器)芯片、DS18820数字测温芯片等的资料,了解其使用特性,阅读实验基本功能程序,然后根据自己的兴趣及能力从中选一个项目进行课程设计。

五、教学效果

通过我校单片机课程组教师的共同努力,学生单片机学习取得了明显的成效。

1大部分学生对“单片机原理与应用”课程的学习产生了较浓厚的兴趣,出现了课外学生自选单片机应用系统课题进行自行设计研究的好现象,推动了学生的课外电子设计。

2“单片机原理与应用”课程教学为学生的电子自动化设计打下了良好的基础,为我校学生参加全国或全省科技竞赛取得好成绩发挥了重要的作用。2001年以来,学校共获全国一等奖2组,二等奖1组;浙江省一等奖6组,二等奖7组,三等奖4组。

3单片机设计应用能力的提高,为学生进行毕业设计打下了良好的基础,毕业前选择单片机作为设计题目的比例大大提高。部分毕业生在毕业后进入专业电子开发公司,成为单片机应用开发技术人才。

“单片机原理与应用”是一门应用性极强的课程,随着单片机新技术的飞速发展,给单片机课程内容本身增加了很多新的元素。这就要求教师不断更新课程内容,改革教学及实验方法,在课程教学中紧紧抓住“应用”这个纲领,以培养应用型人才为目标,注重学生实际设计能力培养,为社会培养更多的电子自动化设计应用型人才而作出自己的一份贡献。

9.单片机实验报告 篇九

一、实验题目:试编写一段程序,其功能为将21H单元的内容8位分别依次存放到从22H开始的8单元中。

二、keil代码:

org 0000h jmp start

org 0100h start: mov 21h,#8;mov A ,21h;取出21中的数 mov R0,#22h;初始化 mov R1,#7h;循环次数为7 loop:

RRC A;把A之中的最低位移到C

JC real;判断C里面是数是否为1,如果是1.则跳转到real mov @R0,#0h jmpkk;real: mov @R0,#1h;如果是1,则将1赋到R0单元里 kk: INC r0;依次判断A中的每一位

DJNZ R1,loop;jmp $;死循环 end

三、实验截图:

四、实验小结:

这是我们单片机的第一个实验,因为刚接触,所以会感觉很陌生,内心有一种畏惧感,看到题目的时候也是没有头绪,可以说完全是不知道到底题目是一个什么意思,更是不知道我们应该如何编写程序。不过后面通过老师的讲解,自己也去查看了一些有关的书籍,慢慢也理解了该如何去实现这种实验题目。在认真琢磨之后,我开始学会像以前刚开始学习C语言一样慢慢绘制一个程序的流程图,理清思绪,然后根据流程图编写相应的代码。

下面是本题的实验流程图:

通过完成这个实验,我对单片机的程序有了很大的认识。实验中,也是深刻的理解到了一个单片机程序每一步的实现与运行。当然,也掌握了在keil中调试的方法。

实验二

一、实验题目:若0-5号键的键值分别是:EEH、DEH、BEH、7EH、EDH、DDH。设键值存放在内部RAM 20H单元中,编程实现根据2OH中的键值分别使程序转移到PR0-PR4程序段。要求当以上程序段的功能完成后,都采用RET指令,指定返回到程序的初始入口START标号处。要求:PR0 :教材75页习题。

PR1 :同上习题9题 PR2:同上习题10 其余入口,只需完成空操作就返回。

二、keil代码:

org 0000 ljmp start org 0100 TAB: DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH start: movdptr ,#start pushdpl pushdph

mov A,#0EEH MOV 20H,A

MOV DPTR ,#TAB

MOV A,#0 NEXT: PUSH ACC;先保存A寄存器中的值

MOVC A,@A+DPTR

;A是键码表的编码

;置键码表首址

;表的起始位置的偏移量为零 CJNE A,20H,NEXT1 POP ACC RL A

;将20H值和键码表的值比较

;如相等,序号乘以2,得到分支表内偏移量2n(8位变16位)

MOV DPTR,#APJ

JMP @A+DPTR PRn指令

NEXT1: POP ACC

INC A CJNE A,#6,NEXT;表示如果==6了,说明编码查完了也没有相等的,程序直接结束

SJMP $

APJ: AJMP PR0 AJMP PR1 AJMP PR2 AJMP PR3 AJMP PR4

;不相等,则比较下一个

;置分支表首址

;执行表JPT+2H中的AJMP

PR0:

MOV R7,#5H MOV 3DH,#00H MOV 3EH,#20H MOV 4EH,#88H MOV 5EH,#98H MOV A,#0 MOV R4,A MOV R5,A MOV R6,A

;正数个数

;负数个数

;零的个数

MOV R0,#40H MOV R1,#50H MOV SP,#3FH LOOP: POP ACC JZ ZERO JB ACC.7,FS INC R4 MOV @R0,A INC R0 AJMP DJ FS: INC R5 MOV @R1,A INC R1 AJMP DJ ZERO: INC R6 DJ: DJNZ R7,LOOP RET

DATA1:DB 0EFH,3FH,3EH,07H PR1:

MOV R7,#03H;进行3次循环 MOV R0,#DATA1 MOV A,@R0

CPL A;取反 ADD A,#01

;加1 MOV @R0,A AB1: INC R0 MOV A,@R0 CPL A ADDC A,#0;带进位 DJNZ R7,AB1;SJMP $

RET BUF1:DB 1111B,0101B,0010B,0100B,0101B,0010B,0001B,0000B,1001B,0000B,1010B,1011B,0000B,0011B,0010B,0001B BUF2:DB 0 BUF:DB 0 PR2:

;30h放平均值 40h放余数 MOV R0,#BUF1

MOV R7,#16;循环16次数 MOV B,#0 MOV A,@R0 MOV R2,A LOOP1: MOV A,R2 INC R0 ADD A,@R0 MOV R2,A MOV A,B ADDC A,#0 MOV B,A DJNZ R7,LOOP1

MOV R6,#04H MOV 30H,#BUF2 MOV 30H,A MOV 40H,#BUF MOV 40H,#0 NEX: CLR C MOV A,B RRC A MOV B,A MOV A,30H RRC A

MOV 30H,A MOV A,40H RRC A MOV 40H,A DJNZ R6,NEX SJMP $ RET PR5:

RET PR3:

RET PR4:

RET END

三、实验截图:

初始化:

结果:

四、实验小结:

本实验中,将键码排成表,将键码表中的值和20H单元中的内容进行比较;另外编制一张转移表,存放AJMP指令,利用JMP @A+DPTR执行表内的AJMP指令,从而实现分支转移。

“RL A”:因为每个AJMP指令占两个字节,将刚记下来的键码中的值(即:键码的序号)乘以2即为转移表的偏移地址,在利用JMP @A+DPTR执行表内的AJMP指令,从而实现分支转移。

“movdptr ,#start Pushdpl push dph”:指定每次主程序返回到start。在单片机中,每一个子程序的返回用RET指令,而RET指令的功能正好可以使得子程序从栈顶弹出断点到PC,从而返回到主程序

实验三

一、实验题目:使用C语言完成,实验一,实验二。

二、keil代码:

实验一:

#include #include void main(){ char *p1=0x21;char *p2=0x22;int i=1;

*p1=0x8;

while(i<=8)

{

*p2=*p1&0x01;

*p1=*p1>>1;p2++;i++;

} } 实验二: #include void PR0();void PR1();void PR2();void PR3();void PR4();void PR5();

int main(){ int i;//键码表code[]的下表

int key=0;char code1[]={0xEE,0xDE,0xBE,0x7e,0xED,0xDD};char *p0=0x20;

//指针变量*p0指向20H这个单元

*p0=0xDE;

//给20H单元赋初值(20H单元里存放键码表中任一值)

for(i=0;i

}

key=i;switch(key)if(*p0==code1[i]){break;}

} {

} return 0;case 0:PR0();break;case 1:PR1();break;case 2:PR2();break;case 3:PR3();break;case 4:break;case 5:break;default:break;void PR0(){ char table1[16]={1,2,-6,7,8,9,0,-1,-2,-3,-4,-5,-6,1,4,6};char data *p30 = 0x30;char data *p40 = 0x40;char data *p50 = 0x50;int i;int countR4=0;R4,R5,R6中

int countR5=0;

//分别将正数、负数和零的个数存入 int countR6=0;for(i=0;i

//依次将table1表里的16个数据存入30H单元开始的单元里。

{

} for(i=0;i

{

if(*p30>0){

} else if(*p30<0){

} else *p50=*p30;++p50;++countR5;

*p40=*p30;++p40;++countR4;

p30[i]=table1[i];

{ } ++countR6;

}

++p30;} }

void PR1(){ char data1[]={0x10,0x11,0x12,0x13};int i;int j;char Cy=PSW^7;data1[0]=(~data1[0])+0x1;//while(j<4)for(j=0;j

} } data1[i]=(~data1[i])+Cy;i++;

void PR2(){ char buf1[]={0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0A,0x0B,0x0C,0x0D,0x0E,0xF};char buf2=0;charbuf=0;int sum=0;int i=1;while(i<=16)

{ sum=sum+buf1[i];

++i;

} buf2=sum/0x10;buf=sum%0x10;}

三、实验截图:

实验一:

实验二:

四、实验小结:

在本实验中,我们用C语言编写代码的时候,特别注意指针的使用。另外,在单片机中使用C语言,与我们之前写C语言的时候还是有一些不同的地方,尤其是在指针使用上面的不同。C语言是一种通用的程序设计语言,代码率高,数据类型丰富,且具有良好的程序结构;单片机的C语言采用C51编译器,由C51产生的目标代码短,运行速度快,所需内存空间小。

实验中,注意:

“for(i=0;i

{

p30[i]=table1[i];}”:表示依次将table1表里的16个数据存入30H单元开始的单元里。实际上,在C中指针就相当于一个数组。

在本实验中,我可以根据之前的汇编程序实验,较为容易的根据每个子程序编子函数模块。由于之前有C语言的基础,所以能够比较好的完成本实验。

实验四

五、实验题目: 当K1键按下后,首先使蜂鸣器响一声,然后使LED1-LED8完成3种闪亮的花样(自己定义),每一种花样循环 3次,然后周而复始。

六、keil代码:

/*当K1键按下后,首先使蜂鸣器响一声,然后使LED1-LED8完成3种闪亮的花样(自己定义),每一种花样循环 3次,然后周而复始。*/ #include sbit P2_0=P2^0;//接蜂鸣器 sbit P2_7=P2^7;sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;

void DELAY(int time)//延时 { while(time--){} }

void BUZ_ON(){ if(P2_7==0)

{ P2_0=1;} else { P2_0=0;}

}

void F1(void){ int i;char data_group_mide[5]={0x00,0x18,0x24,0x42,0x81};//向两边延伸 for(i=0;i<5;i++){ P1=data_group_mide[i];DELAY(20000);}

P1=0x00;

} void F2(void){ int i;char data_group_left[8]={0xFF,0x7F,0x3F,0x0F,0x07,0x03,0x01,0x00};//向左延伸 for(i=0;i<8;i++){ P1=data_group_left[i];DELAY(20000);}

P1=0x00;

} void F3(void){ int i;char date_group_right[8]={0x00,0x01,0x03,0x07,0x0f,0x3f,0x7f,0xff};//向右延伸 for(i=0;i<8;i++){ P1=date_group_right[i];DELAY(20000);}

P1=0x00;

} void main(){

unsigned int i;//每种花样循环三次

P2_0=0;

P2_7=1;

BUZ_ON();

P1=0x00;while(P2_7==0)

{

for(i=0;i<3;i++)//花样1

{F1();}

for(i=0;i<3;i++)//花样2

{F2();}

for(i=0;i<3;i++)//花样3

{F3();}

}

}

三、protues电路图:

四、实验截图:

五、实验小结:

通过本次实验,我们熟悉了protues的编译环境,对以后的单片机学习有很大帮助。

实验五

一、实验题目: 程序启动后4位LED显示器滚动显示“-”,每按下1次K1键后,首先使蜂鸣器响一声。然后,依次使LED滚动显示CNT的计数值(0-9)。

二、Keil代码:

/*程序启动后4位LED显示器滚动显示“-”,每按下才1次K1键后,首先使蜂鸣器响一声。然后,依次使LED滚动显示CNT的计数值(0-9)。

1、按键K1采用中断来管理。(INT0采用边沿触发)

2、中断服务程序完成四个功能:

1)消除按键K1抖动。

2)CNT计数。

3)查表将计数值转换成LED显示器的段代码。

4)将段代码分别放入4个显示缓冲单元。*/ #include #define uchar unsigned char #define uint unsigned int sbit P2_7=P2^7;sbit P3_3=P3^3;uchar CORDING[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0xf9,0xa4,};//0,1,2,3,4....9,0,1,2的段码 intdelayms(uint t){

uint n;while(--t){ n=200;while(--n);};return 0;}

int main(){ uint CNT=0;

P2_7=0;

P3_3=1;P1=0xF7;while(1)

{ if(P3_3==0)

{

uint i;

CNT++;

P2_7=1;delayms(100);for(i=1;i<5;i++)

//4位

{

P1=CORDING[CNT-1];

switch(i)

{

//点亮第1位

//点亮第2位

//点亮第3位

//点亮第4位

delayms(100);

}

case

case

case

case }

P2=0x00;1:P2=0x01;break;2:P2=0x02;break;3:P2=0x04;break;4:P2=0x08;break;

// 熄灭

if(CNT>10){

CNT=CNT-10;}

}

三、protues电路图:

P2_7=0;} return 0;}

四、实验截图:

五、实验总结:

通过本次实验,我们熟悉了CNT计数,学会了如何使LED灯上显示0-9数字。

实验六

一、实验题目:

两个数码管,K1,K2两个按键,完成K1启动计数,K2暂停计数,每一秒钟数码管增加1,60秒钟后,数码管回归0,重新计数。

二、keil代码:

/*两个数码管,K1,K2两个按键,完成K1启动计数,K2暂停计数,每一秒钟数码管增加1,60秒钟后,数码管回归0,重新计数。按键K1,K2采用中断来管理。(INT0采用边沿触发)*/ #define uchar unsigned char #define uint unsigned int #include uchar CNT=0;uchar

m=0;sbit P3_7=P3^7;sbit P3_2=P3^2;sbit P0_0=P0^0;uchar CORDING[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//0,1,2,3,4....9的段码 void Delay(uint a){

while(--a){};

} voidintproc()interrupt 0 {

TR0=0;}

void Time0()interrupt 1 {

m++;

//中断一次,m加1

if(m==20){

m=0;

//中断次数清零 CNT++;//秒加1 if(CNT==60){ CNT=0;}

P1=CORDING[CNT/10];//显示十位 Delay(10);

P2=CORDING[CNT%10];//显示个位 Delay(10);

} } voidinit(){

TMOD=0x01;

//使用定时器T0 使用方式1 TH0 = 0x3c;

TL0 = 0xb0;

ET0=1;TR0=1;EX0=1;IT0=1;EA=1;}

void main(){

P1=0x3f;

P2=0x3f;

P3_7=1;while(1)

{ if(P3_7==0)//50ms中断一次 //控制是否开启

{ init();

} }

三、protues电路图:

}

四、实验截图:

五、实验总结:

本次实验,我们用到了中断,按键K1,K2采用中断来管理。(INT0采用边沿触发),通过本次实验加强了中断的学习,更加有利于单片机的学习。

实验七

一、实验题目:晶振12MHz,波特率1200,程序启动后单片机主动发出Hello Server,PC使用串口助手应答单片机,单片机收到数据后,不做任何修改返回PC。

二、keil代码: #include #define uchar unsigned char #define uint unsigned int

uchar code table[]=“HELLO SERVER!”;uint flag = 0;uchara,b;voidinit(){

}

voidSendByte(ucharch){ SBUF = ch;TMOD = 0x20;TH1 = 0xFD;TL1 = 0XFD;SCON = 0X50;TR1 = 1;EA = 1;ES = 1;

} while(!TI);TI = 0;voidSendString(uchar code *str){

}

void main(){

init();

SendString(“HELLO SERVER!”);while(1){

if(flag == 1){

ES = 0;SBUF = a;while(!TI);TI = 0;while(*str)SendByte(*str++);

}

} ES = 1;flag = 0;

}

voidser()interrupt 4 {

}

if(RI == 1){

} RI = 0;a = SBUF;flag = 1;

三、protues电路图:

四、实验截图:

六、实验总结:

上一篇:束缚的教育作文600字下一篇:英语范文笑话

热搜文章

    相关推荐