单片机培训实验设计ECMT
单片机培训课程设计方案模板

一、课程背景随着我国科技产业的快速发展,单片机技术在各个领域得到了广泛应用。
为了培养一批具备单片机设计、开发和应用能力的人才,本课程旨在为广大单片机爱好者、在校学生及在职人员提供一套全面、系统的单片机培训课程。
二、课程目标1. 使学员掌握单片机的基本原理、组成及工作流程;2. 使学员熟悉常用单片机的性能、特点和适用范围;3. 使学员具备单片机编程、调试和硬件设计能力;4. 使学员能够独立完成单片机应用系统的设计与开发。
三、课程内容1. 单片机基础知识1.1 单片机概述1.2 单片机发展历程1.3 单片机分类及特点2. 单片机硬件结构2.1 CPU2.2 存储器2.3 输入/输出接口2.4 定时器/计数器2.5 中断系统3. 单片机编程基础3.1 汇编语言编程3.2 C语言编程3.3 高级语言编程4. 单片机开发工具及仿真软件4.1 Keil uVision4.2 Proteus4.3 IAR Embedded Workbench5. 单片机应用实例5.1 简易计算器5.2 温度传感器5.3 LED灯光控制5.4 电机控制6. 单片机硬件设计6.1 电路设计6.2 PCB设计6.3 元器件选用7. 单片机调试与故障排除7.1 调试方法7.2 故障排除技巧四、教学方法1. 讲授法:讲解单片机基础知识、硬件结构、编程技巧等;2. 案例分析法:通过分析典型单片机应用实例,提高学员的实践能力;3. 实验法:组织学员进行单片机编程、调试和硬件设计实验;4. 互动讨论法:鼓励学员积极参与课堂讨论,分享学习心得。
五、课程安排1. 理论课时:40课时2. 实验课时:20课时3. 总课时:60课时六、考核方式1. 课堂表现:20%2. 实验报告:30%3. 期末考试:50%七、课程资源1. 教材:《单片机原理与应用》2. 电子资料:课程讲义、实验指导书、仿真软件等3. 实验设备:单片机实验板、编程器、示波器等八、课程特色1. 系统性强:涵盖单片机从基础知识到实际应用的全过程;2. 实践性强:注重学员动手能力的培养,通过实验提高学员的综合素质;3. 互动性强:鼓励学员积极参与课堂讨论,分享学习心得。
09单片机程序设计实训

09单片机程序设计实训正文:一、实训背景及目的⑴实训背景在现代电子技术应用中,单片机广泛应用于各个领域,如家电控制、汽车电子、工业控制等。
熟练掌握单片机程序设计是一个电子工程师必备的基本技能。
⑵实训目的本实训旨在通过对单片机程序设计的学习和实践,提高学员对单片机的理解和应用能力,培养学员独立进行单片机程序设计的能力。
二、实训内容和流程⑴实训内容本实训主要包括以下内容:(1)单片机的基本概念及原理(2)单片机的开发环境搭建(3)单片机的编程语言及语法(4)单片机的输入输出控制(5)单片机的中断控制(6)单片机的计时器/计数器应用(7)单片机的串口通信⑵实训流程本实训的流程如下:(1)理论学习:学习单片机的基本概念、原理和编程语言等知识。
(2)实践环境搭建:安装单片机的开发环境,并进行相关配置。
(3)编写简单程序:使用单片机的编程语言编写简单的程序,实现LED闪烁的功能。
(4)输入输出控制:学习如何使用单片机控制输入输出设备,如按钮、LED灯等。
(5)中断控制:学习单片机的中断机制,并实现相应的中断处理程序。
(6)计时器/计数器应用:学习单片机的计时器/计数器的原理和应用,并进行相应的程序编写。
(7)串口通信:学习单片机的串口通信原理,并编写相应的程序进行串口通信。
三、实训要求⑴学员要求学员应具备一定的电子基础知识,了解电子元器件的基本原理和常用电路的组成方式。
⑵实训环境要求(1)硬件要求:学员需要准备一台支持单片机开发的计算机,并连接相应的开发板。
(2)软件要求:学员需要安装单片机的开发环境,并进行相关配置。
⑶实训成绩评定及证书(1)实训成绩评定:根据学员在课堂上的表现、实训作业的完成情况和实际操作的能力等进行综合评定。
(2)证书颁发:实训结束后,按照学员的成绩情况颁发相应的实训结业证书。
四、附件本文档涉及的附件包括:(1)实训课件:包括课堂讲解的PPT资料和实践操作的指导书。
(2)参考书籍:单片机程序设计相关的参考书籍。
单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本工作原理,掌握其内部结构和功能模块;2. 学生能掌握单片机编程的基本语法和常用指令,具备编写简单程序的能力;3. 学生能了解并运用单片机接口技术,实现与外围设备的通信和控制。
技能目标:1. 学生能运用所学知识,设计并实现简单的单片机控制系统;2. 学生能熟练使用编程软件和开发工具,进行单片机的程序编写、调试与优化;3. 学生能通过实验操作,培养动手能力和团队协作能力,提高问题解决能力。
情感态度价值观目标:1. 学生通过课程学习,增强对电子技术和编程的兴趣,培养主动探索和创新的意识;2. 学生在学习过程中,树立正确的价值观,认识到单片机技术在现实生活中的应用价值;3. 学生通过团队协作,培养沟通与协作能力,增强集体荣誉感和责任感。
课程性质:本课程为单片机原理与应用的综合实验课程,注重理论与实践相结合,以培养学生的动手能力和创新能力为主。
学生特点:学生具备一定的电子技术和编程基础,对单片机有一定了解,但实践经验不足。
教学要求:教师应结合学生特点和课程性质,采用任务驱动、案例教学等方法,引导学生主动参与实验,提高实践操作能力和创新能力。
同时,注重个体差异,因材施教,确保每位学生都能在课程中学有所获。
通过课程目标的分解与实现,为后续教学设计和评估提供依据。
二、教学内容本课程教学内容主要包括以下三个方面:1. 单片机原理与结构- 熟悉单片机的内部结构,掌握其功能模块;- 了解单片机的工作原理,理解指令执行过程;- 学习单片机编程语言,掌握基本语法和常用指令。
教学大纲:参照教材第1章至第3章,共计6学时。
2. 单片机编程与接口技术- 学习单片机程序设计方法,掌握程序编写、调试与优化技巧;- 了解单片机接口技术,掌握I/O口、定时器、中断等应用;- 学习外围设备与单片机的通信协议,实现数据交换和控制。
教学大纲:参照教材第4章至第6章,共计10学时。
单片机实训报告的方案

一、实训背景随着电子技术的飞速发展,单片机作为电子系统中的核心控制单元,其应用领域日益广泛。
为了使学生深入了解单片机的工作原理、应用方法以及设计过程,提高学生的动手能力和团队合作精神,特制定本单片机实训报告方案。
二、实训目的1. 掌握单片机的基本原理和结构,熟悉其各个模块的功能。
2. 熟悉单片机应用系统的一般设计过程,培养系统设计能力。
3. 提高学生的动手能力,通过实际操作加深对单片机知识的理解。
4. 增强团队合作意识,培养学生沟通协调能力。
5. 培养学生的创新意识和解决问题的能力。
三、实训内容1. 单片机基础知识- 单片机的结构和工作原理- 单片机的指令系统- 单片机的编程方法- 单片机的接口技术2. 单片机应用系统设计- 单片机最小系统设计- 单片机与外部设备接口设计- 单片机程序设计- 单片机应用系统调试3. 实践项目- LED流水灯- 设计目的:通过控制LED灯的闪烁,熟悉单片机的I/O操作。
- 设计要求:实现LED灯的快速闪烁,并实现闪烁频率的可调。
- 按键控制- 设计目的:通过按键控制LED灯的开关,熟悉单片机的中断系统。
- 设计要求:实现按键的识别和响应,控制LED灯的开关。
- 温度传感器- 设计目的:利用温度传感器采集环境温度,通过单片机处理并显示。
- 设计要求:实现温度的实时采集和显示,并具有超温报警功能。
- 智能小车- 设计目的:设计一款智能小车,实现避障、循迹等功能。
- 设计要求:实现小车的自动寻迹、避障和转向等功能。
四、实训步骤1. 理论学习- 讲解单片机的基本原理、结构、指令系统、编程方法等理论知识。
- 讲解单片机应用系统设计的一般流程和方法。
2. 实践操作- 学生分组,每组负责一个实践项目。
- 指导教师根据项目要求,讲解相关硬件和软件知识。
- 学生根据项目要求,进行硬件电路设计、软件编程和调试。
3. 作品展示- 学生完成项目后,进行作品展示和答辩。
- 指导教师对学生的作品进行评价和指导。
单片机实训报告实训方案

一、实训目的1. 掌握单片机的基本原理和组成。
2. 熟悉51单片机的编程方法及开发工具。
3. 培养动手实践能力,提高问题分析和解决能力。
4. 理解单片机在实际应用中的地位和作用。
二、实训内容1. 单片机基本原理- 单片机的组成结构- CPU的工作原理- 存储器分类及功能- I/O接口电路2. 51单片机编程- C语言编程基础- 51单片机指令系统- 程序设计方法- 常用函数和中断系统3. 单片机开发工具- Keil uVision软件的使用- 串口调试助手的使用- 实验箱的连接与调试4. 实训项目- 项目一:LED流水灯- 实现功能:通过单片机控制LED灯的闪烁,形成流水灯效果。
- 实训目标:熟悉单片机基本编程方法,掌握LED灯的控制。
- 项目二:按键控制LED灯- 实现功能:通过按键控制LED灯的开关。
- 实训目标:掌握按键输入的处理方法,了解中断系统。
- 项目三:数字时钟- 实现功能:通过单片机实现数字时钟的功能,显示时分秒。
- 实训目标:掌握定时器的工作原理,了解时钟系统的设计。
- 项目四:温度传感器数据采集- 实现功能:通过温度传感器采集环境温度,并在LCD显示屏上显示。
- 实训目标:学习传感器应用,掌握A/D转换器的工作原理。
三、实训步骤1. 准备工作- 熟悉实训环境,了解实验设备。
- 安装Keil uVision软件,配置实验箱。
2. 理论学习- 学习单片机基本原理、编程方法和开发工具。
- 阅读相关教材和资料,掌握知识点。
3. 项目实施- 根据实训项目要求,进行程序设计。
- 利用Keil uVision软件进行编译、调试和烧录程序。
- 连接实验箱,进行实际操作。
4. 结果分析- 分析程序运行结果,发现问题并解决。
- 总结实训过程中的经验和教训。
5. 撰写报告- 按照实训报告模板,撰写实训报告。
四、实训要求1. 严格遵守实训纪律,按时完成实训任务。
2. 认真学习理论知识,熟练掌握编程方法和开发工具。
单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构及相关功能模块的使用方法。
2. 学生能掌握单片机编程的基本语法和技巧,能独立完成简单的程序设计。
3. 学生能了解单片机在现实生活中的应用,并学会分析实际案例。
技能目标:1. 学生能运用所学知识,完成单片机的基本操作和程序编写。
2. 学生能通过实验,学会使用相关开发工具和调试技巧,具备一定的故障排查能力。
3. 学生能运用单片机技术解决实际问题,提高创新实践能力。
情感态度价值观目标:1. 学生通过单片机综合实验课程,培养对电子信息科学的兴趣和热情。
2. 学生在团队协作中,学会沟通、分享和合作,提高解决问题的能力。
3. 学生能认识到单片机技术对社会发展的作用,树立正确的价值观和责任感。
课程性质:本课程为实践性课程,侧重于培养学生的动手能力和创新能力。
学生特点:学生已具备一定的单片机基础知识,对实际操作感兴趣,但编程能力和问题解决能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践和团队协作,提高学生的综合能力。
通过课程目标分解,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容本课程教学内容主要包括以下几部分:1. 单片机基础理论:回顾单片机的基本原理、内部结构、工作原理等,重点讲解中断系统、定时器/计数器、串行通信等模块的功能和应用。
2. 单片机编程语言:以C语言为基础,介绍单片机编程的基本语法、数据类型、运算符、控制语句等,并通过实例进行讲解。
3. 单片机实验操作:结合教材章节,进行以下实验:- 基本输入输出实验:学习单片机I/O口控制,实现LED灯、蜂鸣器等设备的控制。
- 中断控制实验:掌握中断系统的使用,实现外部中断控制。
- 定时器/计数器实验:学习定时器/计数器的配置,完成定时控制等功能。
- 串行通信实验:了解串行通信原理,实现单片机之间的数据传输。
《单片机实训项目》课件

总结与反思
项目总结
总结了各个项目的实现过程、遇到的问题及解决方法,以及项目所涉及的知识点和技能 。
个人反思
分享了参与单片机实训项目的体会和收获,反思了自己在项目中的表现和不足之处,为 今后的学习和实践提供了借鉴和改进方向。
05 单片机实训项目经验总结
遇到的问题和解决方法
问题1
程序调试困难
解决方法
系统测试
对整个单片机系统进行测试,包括功能测试、性 能测试和稳定性测试等,确保系统满足项目要求 。
04 单片机实训项目成果展示
成果介绍
单片机控制LED闪
烁
该项目实现了通过单片机控制 LED灯的闪烁,展示了单片机的 输入输出功能和控制能力。
温度监测系统
利用单片机实现对环境温度的实 时监测,并通过LCD显示屏显示 温度值,具有温度报警功能。
编程、测试与调试等。
收获2:提高解决问题能力
在遇到问题时,学会了独立思考和团 队协作,提高了解决问题的能力。
收获3:增强实践能力
通过实际操作,增强了动手能力和实 践经验,对理论知识有了更深入的理 解。
对未来学习的建议
在此添加您的文本17字
建议1:加强基础知识学习
在此添加您的文本16字
建议在学习单片机之前,先掌握数字电路、微机原理等基 础知识,为单片机学习打下基础。
程序架构设计
根据项目需求,设计程序架构,包括主程序、中断服 务程序、函数库等。
代码编写与调试
按照程序架构,编写程序代码,并通过调试确保程序 逻辑正确。
调试与测试
1 2 3
仿真器与调试工具选择
根据单片机型号,选择合适的仿真器和调试工具 ,如JTAG仿真器、串口调试工具等。
单片机实训报告实验步骤

一、实验目的1. 掌握单片机的基本工作原理和硬件结构。
2. 熟悉单片机的编程方法,提高编程能力。
3. 学习单片机的调试技巧,提高调试效率。
4. 通过实际操作,培养动手能力和团队合作精神。
二、实验仪器与设备1. 单片机实验开发板2. 编译器(如Keil、IAR等)3. 仿真软件(如Proteus、Multisim等)4. 连接线、电源、示波器等辅助设备三、实验步骤1. 熟悉单片机实验开发板(1)观察开发板的硬件结构,了解各个模块的功能和连接方式。
(2)熟悉开发板上的按键、LED、串口、I2C、SPI等接口。
2. 编写程序(1)根据实验要求,设计程序功能。
(2)选择合适的编程语言(如C语言、汇编语言等)。
(3)使用编译器编写程序代码,并进行语法检查。
3. 程序调试(1)使用仿真软件(如Proteus)对程序进行仿真调试。
(2)观察程序运行结果,检查程序是否存在错误。
(3)根据仿真结果,修改程序代码,直至程序正常运行。
4. 硬件连接(1)根据程序功能,连接开发板上的相关硬件模块。
(2)确保连接正确,避免短路或接触不良。
5. 实验运行(1)打开电源,启动单片机。
(2)观察程序运行情况,验证程序功能是否实现。
(3)根据实验要求,调整程序参数或硬件配置,优化程序性能。
6. 数据采集与记录(1)使用示波器等设备,采集实验过程中的数据。
(2)记录实验数据,为后续分析提供依据。
7. 结果分析(1)对实验数据进行整理和分析,评估程序性能。
(2)总结实验过程中的经验教训,提出改进措施。
8. 实验报告撰写(1)整理实验过程,包括实验步骤、实验数据、实验结果等。
(2)分析实验结果,总结实验经验教训。
(3)撰写实验报告,要求格式规范、内容完整。
四、实验注意事项1. 确保实验环境安全,避免触电、短路等事故。
2. 严格遵守实验操作规程,避免损坏实验设备。
3. 注意程序调试过程中的细节,提高调试效率。
4. 实验过程中,积极思考,勇于创新,提高动手能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四-1 数码管跑马显示一、实验目的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”。
#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint count) /*延时子程序*/{uint i;while(count--!=0){for(i=0;i<72;i++);}}main(){for(j=0;j<1;j++) /*65230.9*/{uint a[6]={0x7d,0x6d,0x5b,0x4f,0xff,0x6f};uint b[20]={0x00,0x20,0x40,0x60,0x80,0xa0};for(i=0;i<6;i++){P1=b[i];P0=a[i];delay(500);}}for(j=0;j<500;j++)/*HELLO */{uint a[5]={0x76,0x79,0x38,0x38,0x3f};uint b[20]={0x00,0x20,0x40,0x60,0x80,0xa0};for(i=0;i<6;i++){P1=b[i];P0=a[i];delay(1);}}delay(500);P1=0xe0;}三、编写程序并在实验板上执行通过1、数码管跑马显示0~9,0.~9.,测试数码管性能;2、数码管依次显示6,5,2,3,0.,9,由于数码管位选决定每次只有一个数码管点亮,所以利用视觉误差使6个数码管同时点亮,显示65230.9;3、自编数码管段代码,用数码管显示英文“HELLO”;4、复位按键复位,重复执行。
实验四-2 行列按键显示一、实验目的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 UKKEY9: MOV A,R6ADD 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+DPTRMOV P0,ALCALL 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”。