单片机培训实验入门篇汇编为主 18学时
- 格式:doc
- 大小:1.34 MB
- 文档页数:13
单片机实训总结(集锦10篇)单片机实训总结第1篇单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在单片机里面的应用很多。
由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没有什么捷径可循。
在大二的时候,我就听学长介绍过单片机,当时感觉很神奇,从此就对单片机特别感兴趣,也感觉它特别有用。
于是经学长推荐,在大二上学期我利用学习之余在图书馆借书,学习了KILE和Proteus软件,刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。
通过学习才大体知道了单片机的一些知识。
由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。
也算给我正式学习单片机打下一个基础。
在大二下学期,我购买了一套单片机学习开发板和郭天祥主编的《新概念51单片机C语言教程》,从此正式开启我的单片机学习之路。
在刚开始学时,就完全模仿郭天祥主编的这本书再结合开发板一步一步的学,从点亮一个发光二级管,流水灯,数码管,定时器,中断,矩阵键盘,AD、DA,串口通行,I2C总线等一步一步的深入学习。
此时,我虽然能看懂程序,一些简单的程序可以自己编写,但一些比较复杂的自己编不出来。
在大二暑假,我发现了郭天祥主讲的《十天学会单片机》视屏,于是我坚持天天看视屏,然后在自己根据视屏内容结合开发板写程序,调程序,就这样学了一个暑假。
通过这个视屏,我初步了解了单片机的硬件结构,编程方法及调试方法(用KILE软件调试和用开发板调试),寄存器的使用,学会了如何看芯片资料,初步开始利用芯片时序图来编程。
可以说这个视屏对我学习单片机有巨大的帮助,更夸张的说是这个视屏将我带进了单片机的世界,让我尽情的体验单片机带给我的快乐!在大三上学期,我有幸参加了教改班的单片机课程学习。
单片机培训2篇【单片机培训(一)】作为电子信息类学科的重要内容,单片机技术在国内企业中得到了越来越广泛的应用。
单片机培训是一种通过教授相关知识和技能来提高单片机工程师能力的方式。
下面是单片机培训的相关内容。
一、单片机基础知识单片机是指在一个封装内集成了处理器核、存储器、输入输出资源、时钟等基本功能模块,具有程序可编程性的硬件系统。
其优点是可以设计复杂的应用程序,减轻了人力成本,提高了工作效率。
单片机的组成元件包括电路板、微处理器和软件。
二、单片机应用领域单片机技术在日常生活和多个领域中应用广泛,包括电子游戏机、家庭电器、航空航天、交通管制、安防监控、医疗器械、智能手机和笔记本电脑等。
三、单片机培训内容1.单片机原理:单片机结构、芯片基础、软件基础、数据类型等。
2.程序设计:汇编语言、C语言、汇编与C混合编程、编译和调试工具。
3.接口技术:输入输出、串行和并行通信、中断控制、DMA等。
4.应用实例:LED点阵、数码管、温湿度测量、无线传输、液晶显示器作用、红外线遥控器、声音播放、机器人运动控制。
四、单片机培训机构1.北京深思维IT培训中心:以硬件为主,针对从事电子信息或自动化技术工作的技术人员进行培训。
2.湖南研修中心:为学生提供单片机技术、模拟电路、数字电路等相关学科的素质教育。
3.深圳创业机构:主要培养网络安全、大数据、图像处理、嵌入式和单片机等相关领域的工程师。
5.河南工学院附属中学:为中学生提供单片机和微机器人的基础技能培训,培养学生从小就对电子方面的知识感兴趣。
六、单片机培训价值随着技术的进步和应用场景的扩大,单片机技术的需求也越来越大。
单片机培训的价值不仅在于提高工程师的能力,还能让人们更好地理解和掌握数字电路原理,对日常生活中的电子产品和信息技术有更深刻的认识。
【单片机培训(二)】单片机和微控制器技术是目前电子行业中最为流行的技术之一,被广泛应用于自动化控制、通讯、消费类电子等各个领域。
《单片机应用技术实训》课程标准一、课程基本信息课程名称:单片机技术应用实训学分:1课程代码:学时:24先修课程:电工与电子技术、电路分析基础、C语言基础后续课程:顶岗实习适用专业:机电一体化技术编制人:苗振腾审核人:任元吉制订时间:2013 年9月二、课程性质《单片机应用技术实训》课程是我院机电一体化技术专业的专业限选课程。
本实训课程使学生掌握单片机程序设计和应用的基本方法,并能综合运用单片机的软、硬件技术分析实际问题,是为从事机电产品、电子产品的研发企业培养机电产品开发技术员所需要的技能、知识和职业素质。
三、课程设计(一)课程目标设计1、能力目标:1)根据项目设计要求,进行单元电路的设计能力。
2)能对设计的任务进行软件程序功能划分。
3)能用单片机产品开发工具进行软件编程、调试及软硬件联调的能力。
4)能熟练使用常用的工具和电子仪器,完成项目产品的参数、性能的测试。
2、知识目标:1)学生能够独立地完成各任务的设计,并能举一反三;2)掌握各个实例的设计思路和实现步骤;3)掌握单片机的应用特性,包括单片机的最小系统、并口、串口、定时/计数器、中断等;4)掌握单片机开发相关软件keil、proteus等软件的使用方法;(二)课程教学活动设计1、课程内容设计(四)第一次课设计梗概1、向学生介绍本课程所涵盖的内容及其在专业课程体系中的位置(5分钟)2、向学生介绍本课程的总体安排、授课方式(10分钟)3、向学生介绍本课程的学习方法、实训方法及考核方式(10分钟)4、授课(55分钟)四、教学组织形式1全班每位同学自成1组,由1个老师进行指导2每个学生单独一套元件耗材3、学生单独实训,教师巡回指导以使学生能力达标。
4、教、学、做一体化将理论知识融入到实际操作之中。
五、课程考核方式和考核标准六、教材的选用(一)教材或讲义编写建议1、采用高职高专教材。
2、教材突出技能训练,理论以够用为度。
3、编写讲义应结合学院现有实训资源以及教师特长等情况,理论以够用为度,突出技能训练。
单片机课程设计实习报告(共6篇)ok3w_ads(“s004”);ok3w_ads(“s005”);精选范文:单片机课程设计实习报告(共6篇)实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?单片机仿真器、编程器、实验仪三合一综合开发平台的使用。
(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。
(4)了解掌握单片机芯片的烧写方法与步骤。
(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。
(6)掌握利用protel 99 se绘制电路原理图及pcb图。
(7)了解pcb板的制作腐蚀过程。
二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。
(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。
(6)制板。
首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb 板上布线图外的铜全部后,将其取出,清洗干净。
(7)焊接。
将所给元器件根据原理图一一焊至pcb板相应位置。
(8)调试。
先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。
(流水灯控制器原理图)四、流水灯控制器程序的主程序:org 0000hsjmp startorg 0030hstart: mov a,#0ffhmov r0,#1chmov r2,#12hclr cloop1: acall delaydjnz r0,loop2sjmp loop4loop2: mov p1,arlc ajnc loop3sjmp loop1loop3: acall delaymov p1,arrc ajnc loop1sjmp loop3loop4: acall delaydjnz r1,loop5sjmp loop6loop5: mov p1,arrc a[单片机课程设计实习报告(共6篇)]篇一:单片机实习报告课程设计专业综合实习总结专业班级:学生学号:学生姓名:指导教师:实习时间:机电工程学院目录1.实习目的和意义 21.1实习目的 (2)1.2实习意义 (2)2.实习内容 2 3. 硬件介绍 23.1 总原理图 (3)3.2 LED显示模块............................................................... 6 3.3 数码管显示模块............................................................ 7 3.4 键盘模块 (9)3.5 A/D转换模块............................................................... 10 3.6 D/A转换模块 (13)3.7 中断嵌套模块 (14)3.8 时钟日历芯片模块 (15)4. 程序流程图 174.1 LED显示模块……………………………………………………… 17 4.2 数码管显示模块…………………………………………………… 19 4.3 键盘模块……………………………………………………………21 4.4 A/D转换模块.................................................................. 23 4.5 D/A转换模块 (23)4.6 中断嵌套模块 (24)4.7 时钟日历芯片模块 (24)5. 实习心得体会………………………………………………… 26 附录:程序清单……………………………………………………271、实习目的和意义1.1 实习目的1、熟悉本专业自己设计的“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。
《单片机开发实训》课程标准一、课程名称单片机开发实训二、内容简介《单片机开发实训》课程是一门实践课程。
本课程通过设定具有综合性的单片机控制项目,让学生根据具体设计要求进行硬件搭建,程序编写。
通过整个项目的初步设计到实现,学生能够综合掌握微型计算机的基本原理,编程方法,微型计算机的接口技术,简单传感器运用和Keil等常用单片机开发工具的使用方法。
三、课程定位本课程是配合《单片机技术》综合实践环节,与先修课程《单片机技术》的核心知识点相衔接,并将细碎的知识点进行综合运用。
目的是让学生巩固所学知识、加强综合能力、提高软、硬件设计调试方面的能力、启发创新思维的效果。
同时,使学生将相关专业课程知识综合起来,融会贯通,形成系统的概念,从而实现理论与实践相结合。
培养和锻炼学生动手操作和技术创新的能力,为将来进行各种智能化产品的设计开发提供技术准备。
四、课程设计指导思想及原则本课程根据应用电子技术专业的培养目标,以职业能力培养为重点,与企业专家合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。
以提升学生综合设计能力为目的,训练学生电子线路的组装调试能力和创新能力,通过查阅资料、选定方案、设计电路、调试软件并下载到芯片运行这一系列训练锻炼学生相关技能,同时培养学生良好的职业道德和社会责任感以及良好的行为习惯和个人品质。
本课程需要在理实一体化教室进行教学。
五、建议课时:该课程实训学时为16学时。
六、课程目标:(一)课程能力目标1、总体目标结合应用电子技术专业人才培养方案,根据课程内容和定位,规范课程教学的基本要求,制定本课程目标。
《单片机开发实训》课程,总目标是使学生具有单片机系统设计的知识与技能、具备较高的职业素质,具有调试单片机系统程序和设计最小单片机系统的能力,能解决程序调试和系统设计中遇到的问题,能胜任单片机产品测试工程师、单片机产品技术支持工程师、单片机软件开发师、单片机硬件开发师和单片机系统设计师等岗位工作。
单片机汇编轻松入门(仅需小学智商)————————————————————————————————作者:————————————————————————————————日期:很多电子爱好者,都想学习单片机这门技术.下面的这一系列教程是www.51hei。
com专门为初学者入门而准备的,基于汇编语言,详细的介绍了单片机的原理,指令,寄存器,以及接口等,后面还为你准备了一些小的设计。
都是从单片机最基本的东西讲起,相信你一定能看懂,并且学会单片机这门有意思的技术,有什么问题可在本站论坛留言。
1课:单片机简叙2课:单片机引脚介绍3课:单片机存储器结构4课:第一个单片机小程序5课:单片机延时程序分析6课:单片机并行口结构7课:单片机的特殊功能寄存器8课:单片机寻址方式与指令系统9课:单片机数据传递类指令10课:单片机数据传送类指令11课:单片机算术运算指令12课:单片机逻辑运算类指令13课:单片机逻辑与或异或指令祥解14课:单片机条件转移指令15课:单片机位操作指令16课:单片机定时器与计数器17课:单片机定时器/计数器的方式18课:单片机的中断系统19课:单片机定时器、中断试验20课:单片机定时/计数器实验21课:单片机串行口介绍22课:单片机串行口通信程序设计23课:LED数码管静态显示接口与编24课:动态扫描显示接口电路及程序25课:单片机键盘接口程序设计26课:单片机矩阵式键盘接口技术及27课:关于单片机的一些基本概念28课:单片机音乐程序设计附录:51单片机指令表1、什么是单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。
在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。
而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。
软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
《单片机原理及应用课程设计》实验教学大纲课程编码:1041830课程性质:专业选修课适用专业:电子信息工程学时学分:1学分,18学时开设学期:第6学期一、实验目的单片机原理及应用课程设计是在学完微机原理与接口技术课程和单片机原理与应用课程之后,综合运行单片机和电子技术的基本知识,完成一个单片机应用系统设计,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测,从而加深对单片机软硬件知识的理解,获得初步的应用经验,为以后从事单片机应用相关工作打下基础。
二、实验内容及要求1.选题。
选择与典型单片机应用系统密切相关的题目作为设计课题。
对于每个班,课程设计指导教师至少提供两个题目供学生选择。
2.学生分组。
由学生自由进行组合,2-3人组成一个设计组。
每个设计组自由选择一个设计题目。
每一个设计组内每个学生有各自的明确任务分工。
3.课程设计任务书。
设计的具体内容及要求在指导教师编写的设计指导书中规定。
设计指导书要给出每个设计课题的题目、目的、要求、内容、步骤、方法、基础资料以及设计工作计划、组织措施等。
4.指导教师要每天对学生进行考勤,每天辅导学生的时间不得低于两小时。
在课程设计的教学过程中,指导教师应分阶段对学生完成的工作进度进行检查,只有正确完成本阶段的工作方允许进行下阶段的工作。
5.学生要按照课程设计任务书的要求,按时按质按量地完成课程设计。
在课程设计过程中,按照学校正常作息时间进行,每天设计时间不低于8小时。
凡是累计旷课时间达到或超过课程设计全过程1/3者或和未完成课程设计任务书基本要求者,按不及格处理。
6.课程设计报告。
学生要认真编写课程设计报告。
课程设计报告内容应包括:封面(设计题目、指导教师姓名、设计者专业班级、姓名、学号),课程设计任务书,摘要,目录,课题简介,设计方案,硬件原理设计图,软件流程图,设计的有关算法,操作说明,调试、实验方法及结果,设计总结,参考文献,附录等。
单片机实训报告
实训报告
一、实训目的
本次单片机实训的目的是为了培养学生熟悉单片机的使用方法与开发技巧,提高学生的实践能力和创新意识。
二、实训时间
本次实训共计3天,每天6小时,共计18小时。
三、实训内容
1. 实训第一天:单片机概述与基础知识教学
- 单片机的基本介绍
- 单片机的工作原理与开发环境
- 单片机的基本硬件结构与接口
- 单片机的编程语言与常用指令
- 单片机的开发工具与调试方法
2. 实训第二天:单片机的应用实验
- LED灯的控制实验
- 数码管的显示实验
- 蜂鸣器的发声实验
- 温度传感器的读取实验
- 按键的输入检测实验
3. 实训第三天:小项目实战
- 通过按键输入控制LED灯的点亮与熄灭
- 制作一个简单的计时器
- 实现温度传感器数据的实时监测与显示
四、实训成果
经过三天的实训,学生们掌握了单片机的基础知识与应用技巧。
在小项目实战环节中,学生们成功完成了按键控制LED灯的
实验、制作计时器的实验以及温度传感器的实时监测与显示实验。
五、实训总结
本次实训对学生的单片机应用能力提升起到了积极的作用。
通过实际操作与项目实战,学生们不仅巩固了理论知识,还培养了解决问题和创新设计的能力。
同时,学生们也意识到了单片机在现代电子技术领域的重要性和广泛应用。
希望学生们能够将所学知识与实践经验运用到实际生活中,不断提高自身的技术水平。
通信专业《单片机原理与应用》课程实践教学大纲
课程名称:单片机原理与应用
英文名称:Principle & application of microcontroller
课程编号:119004041 是否独立设课:否
实验学分:1 学时:18 开课学期:6
一、课程简介
单片机原理与应用是一门实践性很强的应用性课程,因此实验教学对理解和掌握单片机原理与应用举足轻重。
本实验课程旨在通过实验教学,加深对教材内容的理解,掌握单片机应用系统的分析、设计及其编程调试的基本方法。
二、实验报告要求与实验考核方法
实验报告必须包括:①实验原理(包括软硬件框图);②仪器;③方法和结果;④结果讨论。
实验考核方式应根据:①实验操作情况;②实验报告内容;③实验考试进行评分。
评分方法:平时成绩和实验报告占50%,实验考试占50%。
实验成绩占课程成绩的比例:30%。
三、实验指导书及主要参考书:
《单片机原理与应用实验指导书》,余水宝,自编, 2004
《8051单片机实践与应用》,吴金戌等,清华大学出版社,2002
撰写人:审定人:。
实验一使用μVision集成开发工具设计、调试汇编语言程序(2学时)1.实验目的1)熟悉使用μVision集成开发工具编写、编译、调试单片机汇编语言程序的方法。
2)掌握A51汇编语言的编程方法。
3)领会汇编语言程序设计的思想和方法。
2.实验设备1)计算机2)μVision集成开发环境3.实验内容1)学习μVision集成开发环境的使用及A51编程范例结合第11章μVision集成开发环境的使用介绍,上机练习μVision的常用功能,具体功能说明请参阅第11章的有关部分和μVision自带的联机帮助。
打开μVision安装目录下路径为“C51\EXAMPLES\ASM\”中的汇编语言范例工程文件“ASAMPLE.Uv2”。
通过仔细阅读范例程序,了解μVision中项目文件的构成、汇编语言程序编写规范、模块间的函数调用方法等知识。
将打开的范例工程文件编译后,点击进入调试模式调试程序,如图12-7所示,熟悉μVision调试模式下常用功能的使用方法。
掌握汇编语言程序调试的一般过程。
图12-7 汇编范例的调试模式2)编写程序,完成二进制数向BCD码的转换参照11.3中介绍的内容,使用μVision集成开发环境建立项目,编写程序实现将R0中的二进制数转换成非压缩式BCD码,存储于内部数据存储器30H~31H中。
编译程序,根据提示改正错误,直至编译无误。
参照11.4中介绍的相关内容,进入μVision调试模式,在寄存器窗口中设置寄存器R0的初值,在程序最后设置断点,全速运行至断点处,在存储器观察窗口中观察内部数据存储器中的内容是否与程序设计运行结果一致。
如果有问题,需要进一步通过单步调试,查看程序的每条语句执行结束后的状态,检查程序设计中的问题。
3)编写程序,完成BCD码向ASCII码的转换使用μVision集成开发环境建立项目,编写程序实现将存储于内部数据存储器30H~35H 中的6个非压缩式BCD码的数字转换成ASCII码形式,存储于外部数据地址为2000H~2005H的单元中。
编译程序,根据提示改正错误,直至编译无误。
参照11.4中介绍的相关内容,进入μVision调试模式,在存储器观察窗口1中设置内部数据存储器30H~35H单元中的BCD码数据,在程序结尾设置断点,全速运行直至断点处,在存储器观察窗口2中查看以地址2000H起始的外部数据存储单元中的内容是否与程序设计运行结果一致。
如果有问题,需要进一步通过单步调试,查看程序的每条语句执行结束后的状态,检查程序设计中的问题。
实验二数码管跑马显示一、实验目的1、熟悉51单片机并行口的输入方式,输出方式的编程;2、熟悉共阴极LED的工作特性及控制方法;3、学习在系统烧写单片机程序(在系统编程ISP)的方法。
二、实验电路和程序1、实验电路一个数码管由8个发光二极管组成,由于是共阴极,所以低电平选通。
如图9.6所示,SN74ALS245A接成直通方式通过P0口驱动数码管。
由74LS138对P1口译码控制SN74ALS245A驱动6个数码管的位选,剩余两路,一路接到发光二极管,另一路控制蜂鸣器。
由程序进行选通控制。
2、程序(1)汇编程序:通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管继续闪亮。
通过复位按键进行复位。
P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7图9.6 实验电路图ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,#00HMOV P1,AMOV R0,#00HLS: MOV A,R0MOV DPTR,#TAB0MOVC A,@A+DPTRMOV P1,A ;数码管位选跑马MOV A,R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P0,A ;数码管数字显示INC R0ACALL DELAYMOV P1,#0E0HACALL DELAYSJMP LSDELAY: MOV R5,#08H ;延时DELAY1: MOV R6,#0FAHDELAY2: MOV R7,#0FAHDJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RETTAB0: DB 00H,20H,40H,60H,80H,0A0H,00H,20H,40H,60HDB 80H,0A0H,00H,20H,40H,60H,80H,0A0H,00H,20HTAB1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H, 7FH,6FHDB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFHEND(2)C语言程序:通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管长亮。
通过复位按键进行复位。
#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intuint a[20]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};uint b[20]={0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20};void delay(uint count) /*延时子程序*/{uint i;while(count--!=0){for(i=0;i<72;i++);}}main(){uint j;for(j=0;j<20;j++){P0=a[j]; /*数字显示*/P1=b[j]; /*数码管跑马*/delay(1000); /*延时*/P1=0xe0;delay(1000); /*延时*/}P1=0xe0;}(3)自编程序:编程并烧写程序,6个数码管依次显示6,5,2,3,0.,9;然后,6个数码管同时点亮,显示65230.9。
再编一个小程序,在五个数码管上显示“HELLO”。
三、编写程序并在实验板上执行通过1、数码管跑马显示0~9,0.~9.,测试数码管性能;2、数码管依次显示6,5,2,3,0.,9,由于数码管位选决定每次只有一个数码管点亮,所以利用视觉误差使6个数码管同时点亮,显示65230.9;3、自编数码管段代码,用数码管显示英文“HELLO”;4、复位按键复位,重复执行。
实验三行列按键显示一、实验目的1、熟悉行列按键的定位方法;2、进一步学习在系统编程(ISP)的方法。
二、实验电路实验电路图如图9.7所示,按键信号由P2口进行识别,通过对按键坐标的判断来定义数码管的显示位和显示内容。
图9.7 实验电路图三、实验程序16个按键按照从左至右,从上至下的顺序排列,操作时分别显示0,1,2,3,4,5,6,7,8,9,0.,1.,2.,3.,4.,8.;其中后六位分别代表A,B,C,D,E,F,复位键复位。
1、汇编程序:KEYBUF EQU 30HORG 0000HLJMP LS0ORG 0030HLS0: MOV P2,#0FH ;判断纵坐标MOV R1,#0FHAJMP SKHSKH: MOV A,P2ANL A,R1XRL A,R1MOV R0,ACJNE A,#0FH,LS1ACALL SKHLS1: MOV P2,#0F0H ;判断行坐标MOV R2,#0F0HAJMP SKLSKL: MOV A,P2ANL A,R2XRL A,R2MOV R6,ACJNE A,#0F0H,KEY0ACALL SKLKEY0: MOV A,R6 ;判断如果是第一个按键操作,则显示偏移量为0ADD A,R0CJNE A,#11H,KEY1MOV KEYBUF,#0LJMP UKKEY1: MOV A,R6 ;判断如果是第二个按键操作,则显示偏移量为1;依次类推ADD A,R0CJNE A,#21H,KEY2MOV KEYBUF,#1LJMP UKKEY2: MOV A,R6ADD A,R0CJNE A,#41H,KEY3MOV KEYBUF,#2LJMP UKKEY3: MOV A,R6ADD A,R0CJNE A,#81H,KEY4MOV KEYBUF,#3LJMP UKKEY4: MOV A,R6ADD A,R0CJNE A,#12H,KEY5MOV KEYBUF,#4LJMP UKKEY5: MOV A,R6ADD A,R0CJNE A,#22H,KEY6MOV KEYBUF,#5LJMP UKKEY6: MOV A,R6ADD A,R0CJNE A,#42H,KEY7MOV KEYBUF,#6LJMP UKKEY7: MOV A,R6ADD A,R0CJNE A,#82H,KEY8MOV KEYBUF,#7LJMP UKKEY8: MOV A,R6ADD A,R0CJNE A,#14H,KEY9MOV KEYBUF,#8LJMP UKADD A,R0CJNE A,#24H,KEY10MOV KEYBUF,#9LJMP UKKEY10: MOV A,R6ADD A,R0CJNE A,#44H,KEY11MOV KEYBUF,#10LJMP UKKEY11: MOV A,R6ADD A,R0CJNE A,#84H,KEY12MOV KEYBUF,#11LJMP UKKEY12: MOV A,R6ADD A,R0CJNE A,#18H,KEY13MOV KEYBUF,#12LJMP UKKEY13: MOV A,R6ADD A,R0CJNE A,#28H,KEY14MOV KEYBUF,#13LJMP UKKEY14: MOV A,R6ADD A,R0CJNE A,#48H,KEY15MOV KEYBUF,#14LJMP UKKEY15: MOV A,R6ADD A,R0CJNE A,#88H,KEY16MOV KEYBUF,#15LJMP UKKEY16: LJMP LS0UK: MOV A,KEYBUF ;数码显示模块MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P1,ALCALL DELAYMOV A,KEYBUFMOV DPTR,#TAB0MOVC A,@A+DPTRLCALL DL10MSLJMP LS0DELAY: MOV R2,#0FEHDELAY1: DJNZ R2,DELAY1RETDL10MS: MOV R3,#14HDL10MS1: LCALL DELAYDJNZ R3,DL10MS1RETTAB1: DB 00H,20H,40H,60H,80H,0A0H,00H,20HDB 40H,60H,80H,0A0H,00H,20H,40H,60HTAB0: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,0BFH,86H,0DBH,0CFH,0E6H,0FFH END2、C语言程序:#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intuchar a[4][4]={{0x00,0x20,0x40,0x60},{0x80,0xa0,0x00,0x20},{0x40,0x60,0x80,0xa0},{0x00,0x20,0x40,0x60}};uchar b[4][4]={{0x3f,0x06,0x5b,0x4f},{0x66,0x6d,0x7d,0x07},{0x7f,0x6f,0xbf,0x86},{0xdb,0xcf,0xe6,0xff}};uchar rnum,lnum;void delay(uint count) /*延时*/{uchar t;while(count--!=0){for(t=0;t<72;t++);}}uchar keysacn(void){P2=0x0f; /*确定按键列*/if((P2&0x0f)!=0x0f){delay(5);if((P2&0x0f)!=0x0f){if(P2==0x0e)rnum=1;if(P2==0x0d)rnum=2;if(P2==0x0b)rnum=3;if(P2==0x07)rnum=4;}P2=0xf0; /*确定按键行*/if((P2&0xf0)!=0xf0){if(P2==0xe0)lnum=1;if(P2==0xd0)lnum=2;if(P2==0xb0)lnum=3;if(P2==0x70)lnum=4;}P0=b[rnum-1][lnum-1];P1=a[rnum-1][lnum-1];delay(1000);}}main(){while(1){keysacn();}}3、自编程序编程并烧写程序,按键1按下,数码管显示65230.9,数码管2按下显示“HELLO”。