南昌大学单片机课程教学设计

合集下载

(完整版)单片机技术教案(综合版)

(完整版)单片机技术教案(综合版)

第一讲一、授课内容:1.授课科目:单片机技术2.授课内容:1.1什么是单片机 1.2单片机的发展 1.3 MCS-51和80C51系列简介 1.4单片机的应用领域和应用模式3.授课类型:讲授4.授课时间:2学时5.主讲教师:刘珊二、教学目的:了解单片机的发展,应用领域和应用模式,掌握单片机的特点三、教材分析:重点/难点:单片机的特点四、教学设想:1.借助多媒体教学,一方面可以使课堂生动,另一方面可以腾出大量时间加强对重难点知识的讲解.2.借助EWB软件做演示实验,增强学生对知识的理解,同时提高他们对本学科的兴趣.五、教学过程:(板书)一、什么是单片机单片机是将CPU,RAM,ROM,定时器/计数器以及I/O接口电路等计算机的主要部件集成在一块电路芯片上。

SCM:单片微型计算机MCU:微控制器SOC: 片上系统二、单片微型计算机发展概况单片机出现的历史并不长, 但发展十分迅猛。

它的产生与发展和微处理器的产生与发展大体同步, 自1971年美国Intel公司首先推出4位微处理器(4004)以来, 它的发展到目前为止大致可分为5个阶段:第1阶段(1971~1976): 单片机发展的初级阶段。

1971年11月Intel公司首先设计出集成度为2 000只晶体管/片的4位微处理器Intel 4004, 并配有RAM、ROM和移位寄存器, 构成了第一台MCS—4微处理器, 而后又推出了8位微处理器Intel 8008, 以及其它各公司相继推出的8位微处理器。

第2阶段(1976~1980): 低性能单片机阶段。

以1976年Intel公司推出的MCS—48系列为代表, 采用将8位CPU、8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构, 虽然其寻址范围有限(不大于 4 KB), 也没有串行I/O, RAM、ROM容量小, 中断系统也较简单, 但功能可满足一般工业控制和智能化仪器、仪表等的需要。

单片机课程教案

单片机课程教案

单片机课程教案一、课程概述单片机原理及应用是一门涉及微处理器、数字电路和计算机接口技术的综合性课程。

本课程的目标是使学生掌握单片机的原理和应用,了解单片机在嵌入式系统设计中的地位和作用,为学生进一步深入学习和应用单片机打下坚实的基础。

二、课程目标1、理解单片机的内部结构和工作原理。

2、掌握单片机的基本操作和编程方法。

3、熟悉单片机在嵌入式系统中的应用和设计方法。

4、培养学生的创新能力和实践操作能力。

三、课程内容第一章:单片机概述1、1单片机的基本概念及发展历程2、2单片机的特点和应用领域3、3单片机的主要产品和发展趋势第二章:单片机的基本结构和工作原理2、1单片机的内部结构和主要部件功能介绍21、2单片机的引脚和信号说明211、3单片机的存储器和寄存器介绍2111、4单片机的时钟系统和定时器/计数器介绍第三章:单片机的编程语言和开发环境3、1单片机的编程语言概述和特点31、2 C语言在单片机编程中的应用311、3 Keil C51开发环境和程序设计流程介绍3111、4程序调试和下载方法说明第四章:单片机的应用实例和实验指导4、1单片机在LED闪烁和流水灯控制中的应用实例41、2单片机在按键输入和数码管显示中的应用实例411、3单片机在A/D和D/A转换中的应用实例4111、4单片机在电机控制和红外线遥控中的应用实例本文5单片机的实验指导和实验报告要求说明第五章:单片机的发展趋势和应用领域的扩展本文1单片机在物联网和智能家居中的应用扩展本文2单片机在汽车电子和医疗设备中的应用扩展本文3单片机在工业控制和智能制造中的应用扩展本文4单片机在人工智能和机器人技术中的应用扩展第六章:课程总结和答疑解惑本文1课程总结和学习方法分享本文2答疑解惑和常见问题解答1、3学生自我评估和改进建议收集四、教学方法与手段本课程采用理论教学和实践操作相结合的方法,以案例分析和程序示范为主要手段,通过课堂讲解、小组讨论、实验指导等多种形式,使学生更好地理解和掌握单片机的原理和应用。

单片机课程设计教案

单片机课程设计教案

《单片机技术及其应用》课程设计教案一、课程设计的目的课程设计是在学完《单片机原理及接口技术》课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础.1.了解并掌握单片机的原理、结构、指令、接口及应用。

2.提高综合运用所学的理论知识独立分析和解决问题的能力。

3.掌握汇编语言程序设计和调试。

4. 掌握C51语言的设计和调试。

二、课程设计的要求1.根据设计要求,画出硬件接线图及程序的总体流程图,然后进行各控制模块的硬件设计及软件设计。

2.掌握如何应用单片机仿真器来开发应用系统及仿真调试的过程。

三、课程设计的安排1.时间安排,课程设计时间分为三个阶段:第一阶段(8学时):主要是学生接受课程设计的准备阶段。

包括:1)学生集中介绍课程设计的具体内容和具体要求,学生选题。

(4学时)2)安排学生收集相关资料,确定课程设计的总体方案。

(4学时)第二阶段(20学时):主要是学生具体课程设计的过程。

包括:学生做的工作1)确定电路中使用的电子元器件(包括元件名称和及参数值)2)软件设计与仿真(画出软件流程图,并编写具体的代码)老师做的工作1)辅导学生解决在制作过程中出现的问题2)协助学生购买设计中需要的电子元器件3)辅导学生焊接电路板和相关元器件4)辅导学生完成程序的烧写和硬件测试提供烧写器给学生,由学生能够进行软件仿真调试程序。

学生在焊接完毕后,将程序下载到主芯片里并测试电路。

由辅导老师辅导学生调试硬件和软件部分,共同解决测试过程中出现的问题,使学生在测试过程进一步学习。

第三阶段(8学时):主要是文档资料整理和答辩1)安排学生交课程设计报告并总结2)每组随机抽取3个人进行答辩,取平均成绩作为小组每个人的答辩成绩课程设计结束后,将学生的设计的实物做课程设计汇报,在实验中心1楼做一个展览。

2. 分组安排学生可以自由组合,3-6名学生成立一个小课题组,选一名组长,确定课题后由组长进行分工。

单片机课程设计

单片机课程设计

单片机课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程。

2. 使学生了解并熟练运用单片机的编程语言,如C语言或汇编语言。

3. 帮助学生掌握单片机外围电路的设计与搭建,使其能独立完成简单的电路系统。

技能目标:1. 培养学生运用单片机解决实际问题的能力,提高创新思维和动手实践能力。

2. 培养学生具备查阅资料、分析问题、设计方案、调试程序等综合技能。

情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成自主学习、合作学习的良好习惯。

2. 培养学生具备团队协作精神,学会与他人分享、交流、合作,提高沟通能力。

3. 培养学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感和创新意识。

课程性质分析:本课程为单片机课程设计,旨在让学生在掌握理论知识的基础上,通过实际操作,提高解决实际问题的能力。

学生特点分析:学生已具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足,需要通过本课程加强实践操作和综合运用。

教学要求:1. 理论与实践相结合,注重培养学生的动手能力。

2. 引导学生主动思考,发现问题,解决问题。

3. 创设实际情境,提高学生的学习兴趣和参与度。

4. 注重培养学生的团队协作能力和沟通能力。

二、教学内容1. 单片机原理及结构:介绍单片机的组成、工作原理,重点讲解CPU、存储器、输入输出接口等部分。

参考教材章节:第一章 单片机概述2. 单片机编程语言:学习C语言和汇编语言的基础知识,掌握编程技巧,能独立编写简单的单片机程序。

参考教材章节:第二章 单片机编程语言3. 单片机外围电路设计:讲解并实践常用外围电路的设计与搭建,如LED 灯、蜂鸣器、数码管等。

参考教材章节:第三章 单片机外围电路设计4. 单片机程序下载与调试:学习使用编程器、仿真器等工具,掌握程序下载、调试方法。

参考教材章节:第四章 单片机程序下载与调试5. 实践项目:设计并实现几个实际项目,如温度控制器、智能小车、智能家居系统等,锻炼学生解决实际问题的能力。

南昌大学单片机课程设计程序带机器码的程序

南昌大学单片机课程设计程序带机器码的程序

ORG 0000H0000 020030 LJMP MAINORG 0003H ;外部中断0入口0003 020060 LJMP PAN2ORG 0030HMAIN:0030 D2AF SETB EA ;打开中断总允许0032 D2A8 SETB EX0 ;打开外部中断0允许0034 7590F6 MOV P1,#0F6H ;给键盘赋初值0037 7C1E MOV R4,#30 ;设置t0延时次数,即任务中延;时1.5s的功能选择,因为定时器;最多计时65536us,所以需要多次计时累计0039 758C3C MOV TH0,#3CH ;t0赋初值003C 758AB0 MOV TL0,#0B0H003F 758901 MOV TMOD,#01H ;设置t0工作方式为方式10042 D288 SETB IT0 ;打开中断0;学号滚动显示程序0044 900172 XUEHAO: MOV DPTR,#XTAB0047 7A05 MOV R2,#5 ;从上到下滚动分四次,另加一次黑屏0049 7B06 XUEHAO2:MOV R3,#6 ;每次发送6个显示码进数码管004B 7400 XUEHAO1:MOV A,#0 ;A清零004D 93 MOVC A,@A+DPTR ;查表,给A赋值004E F599 MOV SBUF,A ;将A中数据发送到串行口0050 3099FD JNB TI,$ ;判断串行口发送是否完毕0053 C299 CLR TI ;清除中断标志位,准备进行下一次发送0055 A3 INC DPTR ;DPTR加1,指向下一个字型码地址0056 DBF3 DJNZ R3,XUEHAO1 ;判断是否到了6个0058 120134 LCALL DELAY1S ;延迟1s,进行显示005B DAEC DJNZ R2,XUEHAO2 ;判断从下滚动三次是否完毕005D 020044 LJMP XUEHAO ;新一轮显示;键盘程序0060 F570 PAN2: MOV 70H,A ;响应中断,保存原数据,保护现场0062 858271 MOV 71H,DPL0065 858372 MOV 72H,DPH0068 8B73 MOV 73H,R3006A 8A74 MOV 74H,R2006C 8D75 MOV 75H,R5006E 8E76 MOV 76H,R60070 8F77 MOV 77H,R70072 12014D LCALL DELAY10MS ;延时10MS判断按键是否按下,没按下则返回0075 20B24B JB P3.2,PAN10078 900190 MOV DPTR,#STAB ;键值显示表地址送给DPTR007B 120121 LCALL JIANZHI ;调用判断键值的程序007E F57A MOV 7AH,A ;将键值保存到7AH中0080 93 MOVC A,@A+DPTR ;查表给A赋值0081 7F06 MOV R7,#6 ;发送6次键值0083 F599 PAN: MOV SBUF,A ;将键值通过串行口发送至显示屏0085 3099FD JNB TI,$0088 C299 CLR TI008A DFF7 DJNZ R7,PAN ;判断是否发送完毕;长按键判断开始008C 7590F6 SELECT: MOV P1,#0F6H ;给键盘赋初值008F 20B244 JB P3.2,SELECTOUT ;判断按键是否按下,没有则跳出中断0092 120145 LCALL DELAY50MS ;延时50ms0095 7590F6 MOV P1,#0F6H ;给键盘赋初值0098 20B23B JB P3.2,SELECTOUT ; 判断按键是否按下,没有跳出中断009B DCEF DJNZ R4,SELECT ;判断按键是否按了1.5s,没有则跳出中断009D 7590F6 PAN4: MOV P1,#0F6H ;按键超1.5s后,等待按键弹起00A0 20B2FA JB P3.2 ,PAN400A3 7590F6 MOV P1,#0F6H ;给键盘赋初值00A6 E57A MOV A,7AH ;取出7AH中的键值00A8 B40006 CJNE A,#0,SELECT1 ;判断是不是按了按键0,不是的话继续判断00AB 120156 LCALL XUEHAOCHANG ;确定是按键0,调用学号显示功能00AE 0200EE LJMP SELECTOUT1 ; 完成功能,跳到中断返回程序00B1 B40206 SELECT1: CJNE A,#2,SELECT2 ;判断是否是按键2,不是的话继续判断00B4 12011E LCALL ATOD ;确定是按键2,调用AD功能子程序00B7 0200EE LJMP SELECTOUT1 ;完成功能,跳到中断返回程序00BA B40331 SELECT2: CJNE A,#3,SELECTOUT1 ;判断是否是按键3,不是跳中断返回程序00BD 120106 LCALL D2A ;确定是按键3,调用DA功能子程序00C0 0200EE LJMP SELECTOUT1 ;完成功能,跳到中断返回程序00C3 E570 PAN1:MOV A,70H ;按键没按下返回程序,取出中断前的数据,恢复现场00C5 857182 MOV DPL,71H00C8 857283 MOV DPH,72H00CB AB73 MOV R3,73H00CD 8A74 MOV 74H,R200CF 8D75 MOV 75H,R500D1 8E76 MOV 76H,R600D3 8F77 MOV 77H,R700D5 32 RETI00D6 12013C SELECTOUT:LCALL DELAY0A5MS ;按键按下但时间不到1.5s的中断返回程序,恢复现场00D9 7C1E MOV R4,#30 ;R4重新赋初值00DB E570 MOV A,70H00DD 857182 MOV DPL,71H00E0 857283 MOV DPH,72H00E3 AB73 MOV R3,73H00E5 8A74 MOV 74H,R200E7 8D75 MOV 75H,R500E9 8E76 MOV 76H,R600EB 8F77 MOV 77H,R700ED 32 RETI00EE 7590F6 SELECTOUT1:MOV P1,#0F6H ;按键按下达到1.5s的中断返回程序00F1 7C1E MOV R4,#30 ; R4重新赋初值00F3 E570 MOV A,70H ;恢复现场00F5 857182 MOV DPL,71H00F8 857283 MOV DPH,72H00FB AB73 MOV R3,73H00FD 8A74 MOV 74H,R200FF 8D75 MOV 75H,R50101 8E76 MOV 76H,R60103 8F77 MOV 77H,R70105 32 RETI;DA转换程序0106 F566 D2A:MOV 66H ,A ; 将A中的值保存到66H中0108 907FFF MOV DPTR,#07FFFH ; 启动DA转换器010B 7400 MOV A,#00H ;将A清零010D 7AE8 MOV R2,#1000 ; 发送1000个三角波010F F0 UP:MOVX @DPTR,A0110 04 INC A ;使A自加10111 B4E8FB CJNE A,#1000,UP ;三角波的上升沿,时间控制5ms;(因三角波频率为100Hz,故周期为10ms,则上升沿和;下降沿分别为5ms)0114 14 DOWN:DEC A ;使A自减10115 F0 MOVX @DPTR ,A0116 B400FB CJNE A,#0,DOWN ; 三角波的下降沿,时间控制5ms 0119 DAF4 DJNZ R2,UP ; 判断发送1000个是否完毕011B E566 MOV A,66H ; 取出保存到66H的A值011D 22 RET; AD转换程序011E 7590F6 ATOD: MOV P1,#0F6H ;预留AD转换程序入口;键值判断程序0121 7800 JIANZHI: MOV R0,#0 ;将R0清零0123 7400 MOV A,#0 ;将A清零0125 309402 JNB P1.4,JP1 ;判断P1.4是否为0,若为0则跳转,; 说明按下了0或2若为1则顺序执行,说明按下了1或30128 7801 MOV R0,#1 ;将值0赋给R0012A 7590C7 JP1:MOV P1,#0C7H ;给键盘赋值C7H012D 309002 JNB P1.0,JP2 ;判断P1.0是否为0,若为零则跳转,; 证明按了0或1,若仍为1则顺序执行,; 证明按下了2或30130 7402 MOV A,#2 ;将值2赋给A0132 28 JP2:ADD A,R0 ;将A于R0中值相加得到键值0133 22 RET;延时一秒的程序0134 7D64 DELAY1S: MOV R5,#1000136 12014D DELAY1S1: LCALL DELAY10MS0139 DDFB DJNZ R5,DELAY1S1013B 22 RET;延时0.5ms的程序013C 7E05 DELAY0A5MS: MOV R6,#5013E 7F31 DELAY0A5MS1:MOV R7,#490140 DFFE DJNZ R7,$0142 DEFA DJNZ R6,DELAY0A5MS10144 22 RET;延时50ms的程序0145 7D05 DELAY50MS: MOV R5,#50147 12014D DELAY50MS1: LCALL DELAY10MS014A DDFB DJNZ R5,DELAY50MS1014C 22 RET;延时10ms子程序014D 7E14 DELAY10MS: MOV R6,#20014F 7FFA DELAY10MS1:MOV R7,#2500151 DFFE DJNZ R7,$0153 DEFA DJNZ R6,DELAY10MS10155 22 RET;延时超1.5s的学号显示程序0156 90016C XUEHAOCHANG:MOV DPTR,#XTABCHANG0159 7B06 XUEHAOCHANG2:MOV R3,#6 ;串行口发送六次数据015B 7400 XUEHAOCHANG1:MOV A,#0 ;将A清零015D 93 MOVC A,@A+DPTR ;查表得A值015E F599 MOV SBUF,A ;将A中数据通过串行口发送0160 3099FD JNB TI,$0163 C299 CLR TI0165 A3 INC DPTR0166 DBF3 DJNZ R3, XUEHAOCHANG1 ;判断六次数据是否发送完毕0168 120134 LCALL DELAY1S016B 22 RET016C 8082C0016F B0F999 XTABCHANG: DB 80H,82H,0C0H,0B0H,0F9H,99H ;长按键盘时学号显示数字表0172 FEFEFE0175 FEFFFF XTAB: DB 0FEH,0FEH,0FEH,0FEH,0FFH,0FFH ;学号滚动显示数字表0178 9C9C9D017B BCFDFC DB 9CH,9CH,9DH,0BCH,0FDH,0FCH017E 8082C00181 B0F999 DB 80H,82H,0C0H,0B0H,0F9H,99H0184 A3AFAB0187 B3FBE3 DB 0A3H,0AFH,0ABH,0B3H,0FBH,0E3H018A FFFFFF018D FFFFFF DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH0190 C0F9A40193 B0 STAB:DB 0C0H,0F9H,0A4H,0B0H ;键值显示表符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量ATOD = 011EH CODE 标号B = 00F0H CONST 常量CY = 00D7H CONST 常量D2A = 0106H CODE 标号DELAY0A5MS = 013CH CODE 标号DELAY0A5MS1 = 013EH CODE 标号DELAY10MS = 014DH CODE 标号DELAY10MS1 = 014FH CODE 标号DELAY1S = 0134H CODE 标号DELAY1S1 = 0136H CODE 标号DELAY50MS = 0145H CODE 标号DELAY50MS1 = 0147H CODE 标号DOWN = 0114H CODE 标号DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA = 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP = 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量JIANZHI = 0121H CODE 标号JP1 = 012AH CODE 标号JP2 = 0132H CODE 标号MAIN = 0030H CODE 标号OV = 00D2H CONST 常量P = 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PAN = 0083H CODE 标号PAN2 = 0060H CODE 标号PAN4 = 009DH CODE 标号PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SELECT = 008CH CODE 标号SELECT1 = 00B1H CODE 标号SELECT2 = 00BAH CODE 标号SELECTOUT = 00D6H CODE 标号SELECTOUT1 = 00EEH CODE 标号SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP = 0081H CONST 常量STAB = 0190H CODE 标号TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量UP = 010FH CODE 标号XTAB = 0172H CODE 标号XTABCHANG = 016CH CODE 标号XUEHAO = 0044H CODE 标号XUEHAO1 = 004BH CODE 标号XUEHAOCHANG = 0156H CODE 标号XUEHAOCHANG1 = 015BH CODE 标号XUEHAOCHANG2 = 0159H CODE 标号公有符号: 90私有符号: 0。

单片机教案(讲稿)

单片机教案(讲稿)

单片机教案(讲稿)第一章:单片机概述一、教学目标1. 了解单片机的定义、发展历程和分类。

2. 掌握单片机的主要性能指标和应用领域。

3. 了解单片机的基本组成原理。

二、教学内容1. 单片机的定义和发展历程。

2. 单片机的分类及特点。

3. 单片机的主要性能指标。

4. 单片机的应用领域。

5. 单片机的基本组成原理。

三、教学方法采用讲解、演示、互动提问等方式进行教学。

四、教学步骤1. 引入话题:什么是单片机?2. 讲解单片机的定义和发展历程。

3. 讲解单片机的分类及特点。

4. 讲解单片机的主要性能指标。

5. 讲解单片机的应用领域。

6. 讲解单片机的基本组成原理。

7. 互动环节:学生提问,教师解答。

五、课后作业2. 思考题:简述单片机的基本组成原理。

第二章:单片机的基本组成原理一、教学目标1. 掌握单片机的基本组成原理。

2. 了解单片机的内部结构及功能。

3. 掌握单片机的引脚分配及作用。

二、教学内容1. 单片机的基本组成原理。

2. 单片机的内部结构及功能。

3. 单片机的引脚分配及作用。

三、教学方法采用讲解、演示、互动提问等方式进行教学。

四、教学步骤1. 引入话题:单片机是如何工作的?2. 讲解单片机的基本组成原理。

3. 讲解单片机的内部结构及功能。

4. 讲解单片机的引脚分配及作用。

5. 互动环节:学生提问,教师解答。

五、课后作业2. 思考题:简述单片机的引脚分配及作用。

第三章:单片机编程基础一、教学目标1. 掌握单片机的编程语言。

2. 熟悉单片机的指令系统。

3. 学会编写简单的单片机程序。

二、教学内容1. 单片机的编程语言。

2. 单片机的指令系统。

3. 编写简单的单片机程序。

三、教学方法采用讲解、演示、互动提问等方式进行教学。

四、教学步骤1. 引入话题:如何编写单片机程序?2. 讲解单片机的编程语言。

3. 讲解单片机的指令系统。

4. 演示如何编写简单的单片机程序。

5. 互动环节:学生提问,教师解答。

五、课后作业2. 练习题:编写一个简单的单片机程序,实现某种功能。

南昌大学单片机课程设计报告

南昌大学单片机课程设计报告

课程设计报告课程名称:微机原理课程设计题目:基于单片机的电子时钟设计学院:环境与化学工程系:过程装备与测控工程专业:测控技术与仪器班级:测仪091班学号:学生姓名:起讫日期:2011-12-19~2011-12-26指导教师:杨俊清、杨大勇摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的,研究数字钟及扩大其应用,有着非常现实的意义。

单片机数字时钟就是其中的一款设计。

它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号,单片机数字钟是单片机为核心。

时钟,本设计是以单片机STC89C52配备LCD1602显示,数字钟采用24小时制方式显示时间,带有日期和时间的设置功能。

关键词:单片机电子时钟C语言目录一、设计任务、要求 (1)二、方案总体设计与论证 (1)三、硬件设计 (2)四、系统仿真与调试 (5)五、设计总结、心得体会等 (14)六、参考文献 (14)一、设计任务、要求1、设计任务:利用单片机的C语言、STC89C52单片机及独立按键和LCD1602设计出电子时钟,且完成课程设计报告。

2、设计要求:○1、用LCD1602液晶显示。

○2、可以分别设定小时,分钟和秒,复位后时间为:00:00:00○3、能实现日期的设置,年、月、日3.创新部分:具有显示星期功能。

单片机综合实验课程设计

单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构及相关功能模块的使用方法。

2. 学生能掌握单片机编程的基本语法和技巧,能独立完成简单的程序设计。

3. 学生能了解单片机在现实生活中的应用,并学会分析实际案例。

技能目标:1. 学生能运用所学知识,完成单片机的基本操作和程序编写。

2. 学生能通过实验,学会使用相关开发工具和调试技巧,具备一定的故障排查能力。

3. 学生能运用单片机技术解决实际问题,提高创新实践能力。

情感态度价值观目标:1. 学生通过单片机综合实验课程,培养对电子信息科学的兴趣和热情。

2. 学生在团队协作中,学会沟通、分享和合作,提高解决问题的能力。

3. 学生能认识到单片机技术对社会发展的作用,树立正确的价值观和责任感。

课程性质:本课程为实践性课程,侧重于培养学生的动手能力和创新能力。

学生特点:学生已具备一定的单片机基础知识,对实际操作感兴趣,但编程能力和问题解决能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践和团队协作,提高学生的综合能力。

通过课程目标分解,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容本课程教学内容主要包括以下几部分:1. 单片机基础理论:回顾单片机的基本原理、内部结构、工作原理等,重点讲解中断系统、定时器/计数器、串行通信等模块的功能和应用。

2. 单片机编程语言:以C语言为基础,介绍单片机编程的基本语法、数据类型、运算符、控制语句等,并通过实例进行讲解。

3. 单片机实验操作:结合教材章节,进行以下实验:- 基本输入输出实验:学习单片机I/O口控制,实现LED灯、蜂鸣器等设备的控制。

- 中断控制实验:掌握中断系统的使用,实现外部中断控制。

- 定时器/计数器实验:学习定时器/计数器的配置,完成定时控制等功能。

- 串行通信实验:了解串行通信原理,实现单片机之间的数据传输。

南昌大学单片机课程设计程序

南昌大学单片机课程设计程序

ORG 0000H0000 020030 LJMP MAINORG 0003H0003 0200F4 LJMP IN_INT0 ;INT0中断入口ORG 0013H0013 02006C LJMP INT1_IN ;INT1中断入口ORG 0030H0030 75521E MAIN: MOV 52H,#30 ;设定定时循环次数0033 758130 MOV SP,#30H0036 7590F0 MOV P1,#0F0H0039 758910 MOV TMOD,#10H ;选择定时器T1方式1003C 758D3C MOV TH1,#3CH ;一次计时50ms的初值003F 758BB0 MOV TL1,#0B0H0042 D288 SETB IT0 ;设置外部中断0为电平触发方式0044 D28A SETB IT1 ;设置外部中断1为边沿触发方式0046 75A885 MOV IE,#85H ;允许外部中断0和外部中断1 0049 D2BA SETB PX1 ;设置外部中断1为高优先级中断004B 12004E LCALL NEXT1 ;循环滚动学号004E 9001EC NEXT1:MOV DPTR, #TAB20051 7F07 L3:MOV R7,#07H ;显示7个数字0053 7E03 MOV R6,#03H0055 7830 MOV R0,#30H0057 E4 CLR A0058 E6 L4:MOV A,@R00059 93 MOVC A,@A+DPTR ;取相应的字形代码005A F599 MOV SBUF, A ;发送字形代码005C C299 CLR TI ;清除串行发送中断标志005E A3 INC DPTR005F 08 INC R00060 DFF6 DJNZ R7,L40062 1201CD LCALL DELAY10065 DEF1 DJNZ R6,L40067 1201CD LCALL DELAY1 ;每次完成显示后延时006A 80E2 SJMP NEXT1 ;循环发送,实现滚动效果006C D2D3 INT1_IN: SETB RS0 ;保护第零组工作寄存器006E C0E0 PUSH ACC ;保护现场0070 C083 PUSH DPH0072 C082 PUSH DPL0074 1201B5 LCALL DELAY2 ;去除抖动,10ms延时0077 30B303 JNB P3.3,LP1007A 020186 LJMP OUT007D C293 LP1: CLR P1.3 ;若为真按键,开蜂鸣器007F D28E SETB TR1 ;开始计时0081 12018F LCALL KEY ;确定键值0084 208F05 JB TF1,LP2 ;判断是长按键还是短按键0087 20B317 JB P3.3,LP4008A 80F1 SJMP LP1 ;判断按键是否长于1.5秒008C 758D3C LP2: MOV TH1,#3CH008F 758BB0 MOV TL1,#0B0H0092 20B3E8 JB P3.3,LP10095 D552E5 DJNZ 52H,LP10098 30B3FD JNB P3.3,$009B C299 CLR TI009D D293 SETB P1.3009F 8026 SJMP LONG00A1 1201CD LP4: LCALL DELAY100A4 30B3D6 JNB P3.3,LP1 ;按键若真松开就停蜂鸣器00A7 D293 SETB P1.300A9 C28E CLR TR1 ;进入短按键程序,停止计时并恢复初值00AB 758D3C MOV TH1,#3CH00AE 758BB0 MOV TL1,#0B0H00B1 75521E MOV 52H,#3000B4 755107 MOV 51H,#07H00B7 E550 MOV A,50H ;取所按的键值00B9 9001E8 MOV DPTR,#TAB1 ;在七个数码管里显示该键值00BC 93 MOVC A,@A+DPTR00BD F599 LOOP: MOV SBUF,A00BF 1099FD JBC TI,$00C2 D551F8 DJNZ 51H,LOOP00C5 80FE SJMP $00C7 C28E LONG: CLR TR1 ;进入长按键程序,停计时并恢复初值00C9 758D3C MOV TH1,#3CH00CC 758BB0 MOV TL1,#0B0H00CF 75521E MOV 52H,#3000D2 E550 MOV A,50H00D4 B40113 CJNE A,#01H,LONG1 ;若按的是健1,则显示学号00D7 7A07 MOV R2,#07H00D9 7860 MOV R0,#60H00DB E6 L2: MOV A,@R000DC 9001E8 MOV DPTR,#TAB100DF 93 MOVC A,@A+DPTR00E0 F599 MOV SBUF,A00E2 1099FD JBC TI,$00E5 08 INC R000E6 DAF3 DJNZ R2,L200E8 80FE SJMP $00EA E550 LONG1: MOV A,50H00EC B41173 CJNE A,#11H,LONG2 ;若按键为3,则输出电压00EF 90FEF9 MOV DPTR,#0FEF9H ;选定ADC080900F2 F0 MOVX @DPTR,A ;启动AD转换00F3 22 RET00F4 C083 IN_INT0: PUSH DPH00F6 C082 PUSH DPL00F8 C0E0 PUSH ACC00FA 753500 MOV 35H,#00H ;将用来存商和余数的单元清零00FD 753600 MOV 36H,#00H0100 753700 MOV 37H,#00H0103 753800 MOV 38H,#00H0106 905FF9 MOV DPTR,#5FF9H ;选中IN10109 E0 MOVX A,@DPTR ;读数010A 75F033 MOV B,#51010D 84 DIV AB010E F7 MOV @R1,A ;存转换后的BCD码个位010F 09 INC R10110 A70A MOV @R1,0AH ;存小数点0112 09 INC R10113 740A D1: MOV A,#100115 C5F0 XCH A,B0117 A4 MUL AB ;余数乘100118 30F006 JNB B,D2 ;判断有没有溢出011B 753505 MOV 35H,#5011E 753601 MOV 36H,#10121 75F033 D2: MOV B,#510124 84 DIV AB ;低八位除以510125 2535 ADD A,35H ;商相加0127 F7 MOV @R1,A ;存小数点后第一位0128 09 INC R10129 E5F0 MOV A,B012B 2536 ADD A,36H ;余数相加012D 75F00A MOV B,#100130 A4 MUL AB ;余数乘100131 30F006 JNB B,D3 ;判断有没有溢出0134 753705 MOV 37H,#50137 753801 MOV 38H,#1013A 75F033 D3: MOV B,#51013D 84 DIV AB ;低八位除以51013E 2537 ADD A,37H ;商相加0140 F7 MOV @R1,A ;存小数点后第二位0141 09 INC R10142 7700 MOV @R1,#00H ;存黑0144 09 INC R10145 7700 MOV @R1,#00H ;存黑0147 9001EC MOV DPTR,#TAB2014A 7C06 MOV R4,#6 ;送六个数014C E6 LD: MOV A,@R0 ;从最后一位开始送014D 19 DEC R1014E 93 MOVC A,@A+DPTR ;选字形代码014F F599 MOV SBUF,A0151 3099FD JNB TI,$0154 C299 CLR TI0156 DCF4 DJNZ R4,LD ;是否六个数送完0158 1201B5 LCALL DELAY2 ;延时015B D0E0 POP ACC015D D082 POP DPL015F D083 POP DPH0161 32 RETI0162 B40003 LONG2: CJNE A,#00H,START ;若按的是键0,则输出波形0165 020186 LJMP OUT0168 907FFF START: MOV DPTR,#7FFFH ;选定DAC0832016B 7401 L5: MOV A,#01H016D F5F0 MOV B,A016F 7400 MOV A,#00H0171 95F0 SUBB A,B ;输出400HZ的梯形波0173 04 UP: INC A0174 F0 MOVX @DPTR,A0175 B46400 CJNE A,#64H,L300178 40F9 L30: JC UP017A 1201DF DOWN: LCALL DEL017D 14 L20: DEC A017E F0 MOVX @DPTR,A017F B40000 CJNE A,#00H,L400182 40E7 L40:JC L50184 80F7 SJMP L200186 C2D3 OUT: CLR RS0 ;若按的是键1,退出中断0188 D082 POP DPL ;恢复现场018A D083 POP DPH018C D0E0 POP ACC018E 32 RETI018F D2D4 KEY: SETB RS1 ;确定键值的子程序0191 7590F0 MOV P1,#0F0H0194 8590F0 MOV B,P10197 75900F MOV P1,#0FH019A E590 MOV A,P1019C 45F0 ORL A,B ;形成键码019E F5F0 MOV B,A ;存入B中01A0 7800 MOV R0,#00H01A2 9001EC MOV DPTR,#TAB2 ;取健号初值01A5 E8 KEY1: MOV A,R001A6 93 MOVC A,@A+DPTR ;取表格中对应键码值01A7 B5F004 CJNE A,B,KEY2 ;与B相比,不等则继续比较01AA 8850 MOV 50H,R0 ;相等则将键值保存01AC 8004 SJMP KEY301AE 08 KEY2: INC R001AF B804F3 CJNE R0,#04H,KEY101B2 C2D4 KEY3: CLR RS101B4 22 RET01B5 D2D4 DELAY2: SETB RS1 ;10ms延时程序01B7 7814 MOV R0,#14H01B9 797D D4: MOV R1,#7DH01BB 00 D5: NOP01BC 00 NOP01BD D9FC DJNZ R1,D501BF D8F8 DJNZ R0,D401C1 C2D4 CLR RS101C3 22 RET01C4 C2D3 OUT1: CLR RS001C6 D082 POP DPL01C8 D083 POP DPH01CA D0E0 POP ACC01CC 32 RETI01CD 7D0A DELAY1: MOV R5,#10 ;0.5s延时程序01CF D28C SETB TR001D1 108D02 DL5: JBC TF0,DL301D4 80FB SJMP DL501D6 758C3C DL3: MOV TH0,#3CH01D9 758AB0 MOV TL0,#0B0H01DC DDF3 DJNZ R5,DL501DE 22 RET01DF 7806 DEL: MOV R0,#601E1 795A DL2: MOV R1,#9001E3 D9FE DL1: DJNZ R1,DL101E5 D8FA DJNZ R0,DL201E7 22 RET01E8 C0F9A401EB B0 TAB1:DB 0C0H,0F9H,0A4H,0B0H, ;0,1,2,3的字形代码01EC 04040001EF 04040001F2 00 TAB2:DB 04H,04H,00H,04H,04H,00H,00H ;1,1,0,9,1,9,5的字形代码01F3 585C0401F6 5C540401F9 04 DB 58H,5CH,04H,5CH,54H,04H,04H01FA 6D6F0601FD 6F3F060200 06 DB 6DH,6FH,06H,6FH,3FH,06H,06H0201 4079240204 301912 TAB3:DB 40H,79H,24H,30H,19H,12H ;0,1,2,3,4,5的键码值。

学单片机的课程设计

学单片机的课程设计

学单片机的课程设计一、课程目标知识目标:1. 理解单片机的基本结构、工作原理及其在各行各业的应用。

2. 掌握单片机编程的基本语法、指令系统以及编程技巧。

3. 学习并掌握单片机外围电路的设计方法,如传感器、执行器等。

技能目标:1. 能够运用所学知识设计简单的单片机控制系统,具备实际操作能力。

2. 培养学生具备分析和解决单片机应用过程中出现问题的能力。

3. 提高学生的团队协作能力和创新能力,能够共同完成复杂的单片机项目。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣和热情,激发学习动力。

2. 培养学生具备良好的工程素养,关注单片机技术的发展趋势。

3. 增强学生的自信心和责任感,使其在单片机项目实践中能够克服困难,勇于担当。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手操作能力和创新能力。

学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程能力,具有较强的求知欲和探索精神。

教学要求:教师应注重理论与实践相结合,关注学生的个体差异,引导学生在实践中掌握单片机技术,提高学生的综合素养。

通过分解课程目标为具体的学习成果,为教学设计和评估提供明确的方向。

二、教学内容1. 单片机基础理论- 单片机的基本结构及工作原理- 单片机指令系统与编程语法- 单片机外围电路设计方法2. 单片机编程与操作- 常用单片机开发环境介绍- 单片机C语言编程基础- 单片机程序下载与调试方法3. 单片机应用实例- 传感器与单片机的接口技术- 执行器与单片机的控制方法- 常见单片机应用系统的分析与设计4. 实践项目与案例分析- 设计简单的单片机控制系统- 分析并解决单片机应用中的问题- 团队合作完成复杂单片机项目教学内容安排与进度:第一周:单片机基础理论第二周:单片机编程与操作第三周:单片机应用实例第四周:实践项目与案例分析教材章节:第一章:单片机概述第二章:单片机结构与原理第三章:单片机指令与编程第四章:单片机外围电路设计第五章:单片机应用系统实例教学内容注重科学性和系统性,结合课程目标,让学生在实践中掌握单片机技术,培养其动手能力和创新能力。

单片机课程设计程序

单片机课程设计程序

单片机课程设计程序一、课程目标知识目标:1. 让学生理解单片机的基本原理和结构,掌握其工作流程。

2. 学会使用指定的编程语言(如C语言)编写单片机程序,并能实现基础功能。

3. 掌握单片机外围电路的设计方法,能够将程序与外围电路结合,完成特定功能。

技能目标:1. 培养学生运用单片机解决实际问题的能力,能设计简单的程序控制电路。

2. 培养学生动手实践和团队协作能力,能够独立或合作完成单片机课程设计项目。

3. 提高学生的编程技巧和故障排查能力,能对程序进行调试和优化。

情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成积极的学习态度。

2. 引导学生认识到单片机在科技发展中的重要作用,增强创新意识和责任感。

3. 培养学生勇于尝试、不断探索的精神,提高面对挫折和挑战的心理素质。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手操作能力和实际应用能力。

学生特点:学生为初中或高中年级,具备一定的电子基础和编程知识,对单片机有一定了解,求知欲强。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践操作能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理、内部结构,重点讲解CPU、内存、I/O口等基本组成部分。

教材章节:第一章 单片机概述2. 编程语言基础:学习C语言基础知识,包括数据类型、运算符、控制结构等,为编写单片机程序打下基础。

教材章节:第二章 C语言基础3. 单片机编程:学习如何编写单片机程序,包括I/O口控制、定时器、中断处理等,并能实现基础功能。

教材章节:第三章 单片机编程与实例4. 外围电路设计:介绍单片机外围电路的设计方法,包括传感器、执行器等接口电路设计。

教材章节:第四章 单片机外围电路设计5. 课程设计项目:结合所学知识,分组进行课程设计,完成特定功能的单片机程序与外围电路设计。

南昌大学-单片机课程设计-设计图-源程序

南昌大学-单片机课程设计-设计图-源程序

(上图硬件原理图可以另存为图片放大了看,清晰度五颗星,放心好了)源程序清单1.汇编程序ORG 0000H ;主程序入口0000 020030 LJMP MAINORG 0003H ;外部中断0入口0003 0200D4 LJMP A2DORG 000BH ;t0入口000B 02007A LJMP SELECTORG 0013H ;外部中断1入口0013 020062 LJMP KEYORG 0030HMAIN: ;主程序0030 75A886 MOV IE,#86H ;外部中断0,t0,外部中断1使能0033 7590F6 MOV P1,#0F6H ;键盘初值0036 758C3C MOV TH0,#3CH ;t0赋初值0039 758AB0 MOV TL0,#0B0H003C 758901 MOV TMOD,#01H ;设置t0工作方式为方式1003F D288 SETB IT0 ;打开中断00041 120048 LCALL XUEHAO ;调用显示学号子程序0044 7C1E MOV R4,#30 ;设置t0延时次数,即任务中延时1.5s的功能选择,因为定时器最多计时65536us,所以需要多次计时累计0046 80FE SJMP $ ;踏步命令0048 9001A7 XUEHAO: MOV DPTR,#XUEHAOTAB ;学号显示子程程序004B 7A03 MOV R2,#3 ;3次刷新004D 7B05 XUEHAO2:MOV R3,#5 ;每次发送5个显示码进数码管004F 7400 XUEHAO1:MOV A,#0 ;a清零,dptr自加来选择需要显示的字型码0051 93 MOVC A,@A+DPTR ;查表,给a赋值0052 F599 MOV SBUF,A ;a发送到串行口0054 3099FD JNB TI,$ ;查询串行口发送中断标志位0057 C299 CLR TI ;清除中断标志位,准备进行下一次发送0059 A3 INC DPTR ;dptr加1,指向下一个字型码地址005A DBF3 DJNZ R3,XUEHAO1 ;执行显示5个字型码005C 12018D LCALL DELAY1S ;延迟1s005F DAEC DJNZ R2,XUEHAO2 ;刷新3次0061 22 RET0062 12019E KEY: LCALL DELAY10MS ;键盘按键响应程序0065 20B311 JB P3.3,KEY1 ;延迟10ms之后判断是否按键还是按下状态,为按下则返回0068 9001B6 MOV DPTR,#SHUZITAB ;dptr指向数字表首地址006B 1200B4 LCALL JUDGEKEY ;调用判断键值子程序006E 04 INC A ;键值加1调用字型码(因为硬件显示的数字比键值大1)006F 93 MOVC A,@A+DPTR ;查表得字型码0070 F599 MOV SBUF,A ;发送a到串行口进行显示0072 3099FD JNB TI,$ ;0075 C299 CLR TI0077 D28C SETB TR0 ;打开定时器t00079 32 KEY1: RETI ;中断返回SELECT: ;长按1.5s功能选择程序007A 20B319 JB P3.3,SELECTOUT ;判断按键是否按下,否则返回007D DC17 DJNZ R4,SELECTOUT ;判断是否达到1.5s,否则r4减1返回(r4记录中断次数)007F 1200B4 LCALL JUDGEKEY ;调用判断键值子程序0082 B40003 CJNE A,#0,SELECT1 ;得到a的键值,判断功能0085 12009D LCALL D2A0088 B40103 SELECT1: CJNE A,#1,SELECT2008B 120048 LCALL XUEHAO008E B40303 SELECT2: CJNE A,#3,SELECT30091 1200CA LCALL ATOD0094 7C1E SELECT3: MOV R4,#30 ;r4重新赋初值0096 758C3C SELECTOUT:MOV TH0,#3CH ;定时计数器重新赋初值0099 758A0B MOV TL0,#0BH009C 32 RETI ;中断返回009D 900FFF D2A: MOV DPTR,#0FFFH ;数模转换程序00A0 74C8 MOV A,#20000A2 7A64 MOV R2,#10000A4 14 D2A1: DEC A00A5 F0 MOVX @DPTR,A00A6 B400FB CJNE A,#0,D2A100A9 120195 LCALL DELAY3MS00AC 04 D2A2: INC A00AD F0 MOVX @DPTR,A00AE B4C8FB CJNE A,#200,D2A200B1 DAF1 DJNZ R2,D2A100B3 22 RET00B4 7800 JUDGEKEY: MOV R0,#0 ;键值判断程序00B6 7400 MOV A,#000B8 309402 JNB P1.4,JP100BB 7801 MOV R0,#100BD 7590A7 JP1:MOV P1,#0A7H00C0 309002 JNB P1.0,JP200C3 7402 MOV A,#200C5 28 JP2:ADD A,R000C6 7590F6 MOV P1,#0F6H00C9 22 RET00CA E4 ATOD: CLR A ;模数转换程序00CB D2A8 SETB EX0 ;打开中断000CD 90FFFE MOV DPTR,#0FFFEH ;dptr指向adc0808首地址00D0 F0 MOVX @DPTR,A ;启动adc080800D1 7814 MOV R0,#20 ;重新设定采样次数00D3 22 RET ;返回A2D: ;模数转换中断响应程序00D4 90FFFE MOV DPTR,#0FFFEH00D7 D2D4 A2D1: SETB RS1 ;打开第三组00D9 E0 MOVX A,@DPTR ;取得adc0808反馈值00DA F5F0 MOV B,A ;把a中的值倒置(因为采样的时候是从高位到低位倒置的)00DC 7400 MOV A,#000DE 30F702 JNB B.7,SS100E1 D2E0 SETB ACC.000E3 30F602 SS1:JNB B.6,SS200E6 D2E1 SETB ACC.100E8 30F502 SS2:JNB B.5,SS300EB D2E2 SETB ACC.200ED 30F402 SS3:JNB B.4,SS400F0 D2E3 SETB ACC.300F2 30F302 SS4:JNB B.3,SS500F5 D2E4 SETB ACC.400F7 30F202 SS5:JNB B.2,SS600FA D2E5 SETB ACC.500FC 30F102 SS6:JNB B.1,SS700FF D2E6 SETB ACC.60101 30F002 SS7:JNB B.0,SS80104 D2E7 SETB ACC.70106 75F033 SS8:MOV B,#51 ;以下将得到数值转换成bcd码,因为a 的范围是0~255,电压范围是0~5,所以将得到值除以51得到最高位整数值0109 84 DIV AB ;然后第二位再乘10,除以51,得到第二位,以此类推010A FB MOV R3,A010B E5F0 MOV A,B010D 75F00A MOV B,#100110 A4 MUL AB0111 FA MOV R2,A0112 E5F0 MOV A,B0114 B4000A CJNE A,#00,LP10117 EA MOV A,R20118 75F033 MOV B,#51011B 84 DIV AB011C FA MOV R2,A011D E5F0 MOV A,B011F 800B SJMP LP20121 EA LP1: MOV A,R20122 04 INC A0123 75F033 MOV B,#510126 84 DIV AB0129 FA MOV R2,A012A E5F0 MOV A,B012C 75F00A LP2:MOV B,#10012F A4 MUL AB0130 F9 MOV R1,A0131 E5F0 MOV A,B0133 B40008 CJNE A,#0,LP30136 E9 MOV A,R10137 75F033 MOV B,#51013A 84 DIV AB013B F9 MOV R1,A013C 8009 SJMP LP4013E E9 LP3:MOV A,R1013F 04 INC A0140 75F033 MOV B,#510143 84 DIV AB0144 2405 ADD A,#50146 F9 MOV R1,A0147 120157 LP4:LCALL DIANYA014A C2D4 CLR RS1014C 90FFFE MOV DPTR,#0FFFEH014F F0 MOVX @DPTR,A ;转换完成,最高位,次高位,最低位分别放在r3,r2,r10150 D882 DJNZ R0,A2D0152 7814 MOV R0,#200154 C2A8 CLR EX00156 32 RETI0157 74FF DIANYA: MOV A,#0ffH ;显示电压程序0159 F599 MOV SBUF,A ;显示黑015B 3099FD JNB TI,$015E C299 CLR TI0160 74FF MOV A,#0FFH0162 F599 MOV SBUF,A0164 3099FD JNB TI,$0167 C299 CLR TI0169 9001B6 MOV DPTR,#SHUZITAB016C EB MOV A,R3016D 93 MOVC A,@A+DPTR016E 547F ANL A,#7FH0170 F599 MOV SBUF,A0172 3099FD JNB TI,$0175 C299 CLR TI0178 93 MOVC A,@A+DPTR0179 F599 MOV SBUF,A017B 3099FD JNB TI,$017E C299 CLR TI0180 E9 MOV A,R10181 93 MOVC A,@A+DPTR0182 F599 MOV SBUF,A0184 3099FD JNB TI,$0187 C299 CLR TI0189 12018D LCALL DELAY1S018C 22 RET018D 7D64 DELAY1S: MOV R5,#100 ;延时一秒子程序018F 12019E DELAY1S1: LCALL DELAY10MS0192 DDFB DJNZ R5,DELAY1S10194 22 RET0195 7E06 DELAY3MS: MOV R6,#6 ;延时一秒子程序0197 7FFA DELAY3MS1:MOV R7,#2500199 DFFE DJNZ R7,$019B DEFA DJNZ R6,DELAY3MS1019D 22 RET019E 7E14 DELAY10MS: MOV R6,#20 ;延时一秒子程序01A0 7FFA DELAY10MS1:MOV R7,#25001A2 DFFE DJNZ R7,$01A4 DEFA DJNZ R6,DELAY10MS101A6 22 RET01A7 FFFFF701AA F7F7 XUEHAOTAB:DB 0FFH,0FFH,0F7H,0F7H,0F7H ;学号显示表01AC FBFBAB01AF A7B3 DB 0FBH,0FBH,0ABH,0A7H,0B3H01B1 F9F9C001B4 82B0 DB 0F9H,0F9H,0C0H,82H,0B0H01B6 C0F9A401B9 B0999201BC 82F88001BF 90 SHUZITAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;数字表符号值类型A2D = 00D4H CODE 标号A2D1 = 00D7H CODE 标号AC = 00D6H CONST 常量ACC = 00E0H CONST 常量ATOD = 00CAH CODE 标号B = 00F0H CONST 常量CY = 00D7H CONST 常量D2A = 009DH CODE 标号D2A1 = 00A4H CODE 标号D2A2 = 00ACH CODE 标号DELAY10MS = 019EH CODE 标号DELAY10MS1 = 01A0H CODE 标号DELAY1S = 018DH CODE 标号DELAY1S1 = 018FH CODE 标号DELAY3MS = 0195H CODE 标号DELAY3MS1 = 0197H CODE 标号DIANYA = 0157H CODE 标号DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA = 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP = 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量JP1 = 00BDH CODE 标号JP2 = 00C5H CODE 标号KEY = 0062H CODE 标号KEY1 = 0079H CODE 标号LP1 = 0121H CODE 标号LP2 = 012CH CODE 标号LP3 = 013EH CODE 标号LP4 = 0147H CODE 标号MAIN = 0030H CODE 标号OV = 00D2H CONST 常量P = 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SELECT = 007AH CODE 标号SELECT1 = 0088H CODE 标号SELECT2 = 008EH CODE 标号SELECT3 = 0094H CODE 标号SELECTOUT = 0096H CODE 标号SHUZITAB = 01B6H CODE 标号SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP = 0081H CONST 常量SS1 = 00E3H CODE 标号SS2 = 00E8H CODE 标号SS3 = 00EDH CODE 标号SS4 = 00F2H CODE 标号SS5 = 00F7H CODE 标号SS6 = 00FCH CODE 标号SS8 = 0106H CODE 标号TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量XUEHAO = 0048H CODE 标号XUEHAO1 = 004FH CODE 标号XUEHAO2 = 004DH CODE 标号XUEHAOTAB = 01A7H CODE 标号公有符号: 97私有符号: 0以下程序为wave输入源程序,不带机器码,方便同学复制粘贴体验神奇效果~ORG 0000H ;主程序入口LJMP MAINORG 0003H ;外部中断0入口LJMP A2DORG 000BH ;t0入口LJMP SELECTORG 0013H ;外部中断1入口LJMP KEYORG 0030HMAIN: ;主程序MOV IE,#86H ;外部中断0,t0,外部中断1使能MOV P1,#0F6H ;键盘初值MOV TH0,#3CH ;t0赋初值MOV TL0,#0B0HMOV TMOD,#01H ;设置t0工作方式为方式1SETB IT0 ;打开中断0LCALL XUEHAO ;调用显示学号子程序MOV R4,#30 ;设置t0延时次数,即任务中延时1.5s的功能选择,因为定时器最多计时65536us,所以需要多次计时累计SJMP $ ;踏步命令XUEHAO: MOV DPTR,#XUEHAOTAB ;学号显示子程程序MOV R2,#3 ;3次刷新XUEHAO2:MOV R3,#5 ;每次发送5个显示码进数码管XUEHAO1:MOV A,#0 ;a清零,dptr自加来选择需要显示的字型码MOVC A,@A+DPTR ;查表,给a赋值MOV SBUF,A ;a发送到串行口JNB TI,$ ;查询串行口发送中断标志位CLR TI ;清除中断标志位,准备进行下一次发送INC DPTR ;dptr加1,指向下一个字型码地址DJNZ R3,XUEHAO1 ;执行显示5个字型码LCALL DELAY1S ;延迟1sDJNZ R2,XUEHAO2 ;刷新3次RETKEY: LCALL DELAY10MS ;键盘按键响应程序JB P3.3,KEY1 ;延迟10ms之后判断是否按键还是按下状态,为按下则返回MOV DPTR,#SHUZITAB ;dptr指向数字表首地址LCALL JUDGEKEY ;调用判断键值子程序INC A ;键值加1调用字型码(因为硬件显示的数字比键值大1)MOVC A,@A+DPTR ;查表得字型码MOV SBUF,A ;发送a到串行口进行显示JNB TI,$ ;CLR TISETB TR0 ;打开定时器t0KEY1: RETI ;中断返回SELECT: ;长按1.5s功能选择程序JB P3.3,SELECTOUT ;判断按键是否按下,否则返回DJNZ R4,SELECTOUT ;判断是否达到1.5s,否则r4减1返回(r4记录中断次数)LCALL JUDGEKEY ;调用判断键值子程序CJNE A,#0,SELECT1 ;得到a的键值,判断功能LCALL D2ASELECT1: CJNE A,#1,SELECT2LCALL XUEHAOSELECT2: CJNE A,#3,SELECT3LCALL ATODSELECT3: MOV R4,#30 ;r4重新赋初值SELECTOUT:MOV TH0,#3CH ;定时计数器重新赋初值MOV TL0,#0BHRETI ;中断返回D2A: MOV DPTR,#0FFFH ;数模转换程序MOV A,#200MOV R2,#100D2A1: DEC AMOVX @DPTR,ACJNE A,#0,D2A1LCALL DELAY3MSD2A2: INC AMOVX @DPTR,ACJNE A,#200,D2A2DJNZ R2,D2A1RETJUDGEKEY: MOV R0,#0 ;键值判断程序MOV A,#0JNB P1.4,JP1MOV R0,#1JP1:MOV P1,#0A7HJNB P1.0,JP2MOV A,#2JP2:ADD A,R0MOV P1,#0F6HATOD: CLR A ;模数转换程序SETB EX0 ;打开中断0MOV DPTR,#0FFFEH ;dptr指向adc0808首地址MOVX @DPTR,A ;启动adc0808MOV R0,#20 ;重新设定采样次数RET ;返回A2D: ;模数转换中断响应程序MOV DPTR,#0FFFEHA2D1: SETB RS1 ;打开第三组MOVX A,@DPTR ;取得adc0808反馈值MOV B,A ;把a中的值倒置(因为采样的时候是从高位到低位倒置的)MOV A,#0JNB B.7,SS1SETB ACC.0SS1:JNB B.6,SS2SETB ACC.1SS2:JNB B.5,SS3SETB ACC.2SS3:JNB B.4,SS4SETB ACC.3SS4:JNB B.3,SS5SETB ACC.4SS5:JNB B.2,SS6SETB ACC.5SS6:JNB B.1,SS7SETB ACC.6SS7:JNB B.0,SS8SETB ACC.7SS8:MOV B,#51 ;以下将得到数值转换成bcd码,因为a的范围是0~255,电压范围是0~5,所以将得到值除以51得到最高位整数值DIV AB ;然后第二位再乘10,除以51,得到第二位,以此类推MOV R3,AMOV A,BMOV B,#10MUL ABMOV R2,AMOV A,BCJNE A,#00,LP1MOV A,R2MOV B,#51MOV R2,AMOV A,BSJMP LP2LP1: MOV A,R2INC AMOV B,#51DIV ABADD A,#5MOV R2,AMOV A,BLP2:MOV B,#10MUL ABMOV R1,AMOV A,BCJNE A,#0,LP3MOV A,R1MOV B,#51DIV ABMOV R1,ASJMP LP4LP3:MOV A,R1INC AMOV B,#51DIV ABADD A,#5MOV R1,ALP4:LCALL DIANYACLR RS1MOV DPTR,#0FFFEHMOVX @DPTR,A ;转换完成,最高位,次高位,最低位分别放在r3,r2,r1DJNZ R0,A2DMOV R0,#20CLR EX0RETIDIANYA: MOV A,#0ffH ;显示电压程序MOV SBUF,A ;显示黑JNB TI,$CLR TIMOV A,#0FFHMOV SBUF,AJNB TI,$MOV DPTR,#SHUZITABMOV A,R3MOVC A,@A+DPTRANL A,#7FHMOV SBUF,AJNB TI,$CLR TIMOV A,R2MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIMOV A,R1MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TILCALL DELAY1SRETDELAY1S: MOV R5,#100 ;延时一秒子程序DELAY1S1: LCALL DELAY10MSDJNZ R5,DELAY1S1RETDELAY3MS: MOV R6,#6 ;延时一秒子程序DELAY3MS1:MOV R7,#250DJNZ R7,$DJNZ R6,DELAY3MS1RETDELAY10MS: MOV R6,#20 ;延时一秒子程序DELAY10MS1:MOV R7,#250DJNZ R7,$DJNZ R6,DELAY10MS1RETXUEHAOTAB:DB 0FFH,0FFH,0F7H,0F7H,0F7H ;学号显示表DB 0FBH,0FBH,0ABH,0A7H,0B3HDB 0F9H,0F9H,0C0H,82H,0B0HSHUZITAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;数字表。

单片机的课程设计

单片机的课程设计

单片机的课程设计一、课程目标知识目标:1. 理解单片机的基本组成、工作原理和功能特点;2. 掌握单片机的编程语言和开发环境,如C语言和Keil;3. 学会使用单片机进行数字和模拟量的输入输出控制;4. 了解单片机在嵌入式系统中的应用和发展前景。

技能目标:1. 能够独立完成单片机的程序设计和调试;2. 能够运用所学知识,设计简单的单片机控制系统;3. 培养学生动手实践能力,提高解决问题的能力;4. 提高学生的团队协作和沟通能力。

情感态度价值观目标:1. 培养学生对单片机及嵌入式系统的兴趣,激发学习热情;2. 培养学生严谨的科学态度,敢于面对困难和挑战;3. 增强学生的创新意识,鼓励尝试和探索;4. 培养学生具备良好的职业道德,为我国电子产业的发展贡献力量。

本课程针对高中年级学生,结合单片机学科特点,注重理论联系实际,以培养学生的实际操作能力和创新精神为核心。

课程目标既关注知识技能的掌握,又强调情感态度价值观的培养,旨在为学生奠定扎实的单片机基础,提高其在电子领域的竞争力。

通过对课程目标的分解和实施,教师可以更好地开展教学活动,评估学生的学习成果。

二、教学内容1. 单片机基础知识:介绍单片机的组成、发展历程、分类及性能指标,以教材第一章内容为基础。

- 单片机的基本结构- 单片机的发展与应用领域- 性能指标与选型2. 单片机编程语言与开发环境:学习C语言编程和Keil开发环境的使用,参考教材第二章。

- C语言基础语法- Keil开发环境搭建与使用- 程序的编写、编译、下载与调试3. 数字与模拟量的输入输出控制:学习单片机I/O口编程,教材第三章内容。

- 数字I/O口操作- 模拟量输入输出原理及编程- 传感器与单片机的接口技术4. 中断与定时器:介绍中断系统、定时器的工作原理和应用,以教材第四章为主。

- 中断系统的概念与原理- 定时器的工作原理及编程- 中断与定时器的应用实例5. 单片机系统设计与实践:结合前述知识点,进行单片机控制系统设计,参考教材第五章。

单片机教案(讲稿)

单片机教案(讲稿)

单片机教案(讲稿)章节一:单片机概述教学目标:1. 了解单片机的定义、特点和分类。

2. 掌握单片机的基本组成部分及其作用。

3. 熟悉单片机的发展历程和应用领域。

教学内容:1. 单片机的定义和特点2. 单片机的分类3. 单片机的基本组成部分4. 单片机的发展历程5. 单片机的应用领域教学方法:1. 讲授法:讲解单片机的定义、特点、分类及应用领域。

2. 讨论法:引导学生探讨单片机的发展历程及其重要性。

教学资源:1. 课件:展示单片机的图片、示意图等。

2. 视频:播放单片机的应用案例。

教学环节:1. 导入:介绍单片机的定义,引发学生兴趣。

2. 讲解:详细讲解单片机的特点、分类、基本组成部分。

3. 讨论:分组讨论单片机的发展历程及其重要性。

章节二:单片机硬件结构教学目标:1. 了解单片机的硬件结构及其功能。

2. 掌握单片机的主要硬件组成部分。

3. 熟悉单片机的引脚分配及内部结构。

教学内容:1. 单片机的硬件结构2. 单片机的主要硬件组成部分3. 单片机的引脚分配4. 单片机的内部结构教学方法:1. 讲授法:讲解单片机的硬件结构及其功能。

2. 演示法:展示单片机的实物及其内部结构。

教学资源:1. 课件:展示单片机的硬件结构示意图、引脚分配图等。

2. 实物:展示单片机的实物。

教学环节:1. 导入:回顾上一节课的内容,引入本节课的主题。

2. 讲解:详细讲解单片机的硬件结构及其功能。

3. 演示:展示单片机的实物及其内部结构。

章节三:单片机指令系统教学目标:1. 了解单片机的指令系统及其分类。

2. 掌握单片机指令的格式、编码及其执行过程。

3. 熟悉单片机指令的分类及其功能。

教学内容:1. 单片机的指令系统2. 单片机指令的格式、编码3. 单片机指令的执行过程4. 单片机指令的分类及其功能教学方法:1. 讲授法:讲解单片机的指令系统及其功能。

2. 示例法:分析单片机指令的格式、编码及执行过程。

教学资源:1. 课件:展示单片机指令的格式、编码示意图等。

单片机技术综合课程设计

单片机技术综合课程设计

单片机技术综合课程设计一、课程目标知识目标:1. 让学生理解单片机的基本组成、工作原理及其在工程应用中的重要性。

2. 掌握单片机编程的基本语法和常用指令,能够阅读简单的程序代码。

3. 了解单片机与其他电子元件的接口技术,能够进行基本的电路连接和调试。

技能目标:1. 培养学生运用单片机解决实际问题的能力,能够独立完成简单的程序设计和电路搭建。

2. 提高学生动手实践能力,掌握常用的调试工具和软件,能够对单片机程序进行调试和优化。

3. 培养学生团队协作能力,学会在项目中进行分工合作,共同完成课程设计任务。

情感态度价值观目标:1. 激发学生对单片机技术及电子工程领域的兴趣,培养其探究精神和创新意识。

2. 引导学生关注单片机技术在现实生活中的应用,认识到科技对社会发展的推动作用。

3. 培养学生具备良好的学习习惯和职业道德,严谨对待学术问题,尊重他人的成果和观点。

课程性质:本课程为单片机技术综合课程设计,注重理论与实践相结合,强调学生动手实践和创新能力。

学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程能力,具有较强的求知欲和自主学习能力。

教学要求:教师应注重引导学生运用所学知识解决实际问题,鼓励学生开展团队合作,关注学生的个体差异,提高教学质量。

通过本课程的学习,使学生能够达到上述具体、可衡量的学习成果。

二、教学内容1. 单片机基础知识回顾:包括单片机的组成、工作原理、内部结构,重点复习单片机的指令系统、编程方法和I/O口操作。

教材章节:第一章单片机原理概述,第二章指令系统与编程。

2. 单片机程序设计与调试:学习如何编写简单的单片机程序,使用仿真器和编程器进行程序下载、调试。

教材章节:第三章单片机程序设计,第四章单片机程序调试与下载。

3. 单片机接口技术:学习单片机与其他电子元件(如传感器、执行器等)的接口方法,掌握基本的电路设计和连接技巧。

教材章节:第五章单片机接口技术,第六章接口电路设计。

4. 综合实践项目:设计并实现一个具有实际应用价值的单片机控制系统,如温度控制器、智能家居等。

单片机的课程设计

单片机的课程设计

单片机的课程设计一、课程目标知识目标:1. 理解单片机的基本结构、工作原理及功能特点;2. 学会使用单片机的开发环境及编程语言;3. 掌握单片机在日常生活及工程应用中的基本使用方法。

技能目标:1. 能够运用C语言或汇编语言编写简单的单片机程序;2. 能够运用单片机进行简单的电路控制;3. 能够分析并解决单片机程序在运行中出现的问题。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣,激发学习热情;2. 培养学生的动手能力、团队协作能力及创新思维;3. 增强学生对我国单片机技术发展的认识,提高民族自豪感。

课程性质:本课程为电子信息类学科的单片机原理与应用课程,旨在使学生掌握单片机的基本知识、编程技巧及应用。

学生特点:学生为高二年级学生,具有一定的电子基础和编程能力。

教学要求:结合学生特点,课程目标分解为具体学习成果,以便进行教学设计和评估。

教学过程中注重实践操作,提高学生的实际动手能力。

二、教学内容1. 单片机概述:介绍单片机的发展历程、基本结构、功能特点及应用领域。

教材章节:第一章 单片机概述内容安排:1课时2. 单片机硬件结构:讲解单片机的内部结构、寄存器、I/O口、定时器等硬件资源。

教材章节:第二章 单片机硬件结构内容安排:2课时3. 单片机指令系统与编程:学习单片机的指令系统、汇编语言编程及C语言编程。

教材章节:第三章 单片机指令系统与编程内容安排:3课时4. 单片机I/O口编程与应用:学习I/O口的编程方法,进行简单的电路控制。

教材章节:第四章 单片机I/O口编程与应用内容安排:2课时5. 单片机中断系统与定时器:介绍中断系统的原理及应用,定时器的使用方法。

教材章节:第五章 单片机中断系统与定时器内容安排:3课时6. 单片机串行通信:学习单片机串行通信的原理及编程方法。

教材章节:第六章 单片机串行通信内容安排:2课时7. 单片机综合应用:结合所学知识,设计简单的单片机应用项目。

教材章节:第七章 单片机综合应用内容安排:4课时教学内容安排共计16课时,确保学生能够系统掌握单片机的基本知识、编程技巧及应用。

关于单片机的课程设计

关于单片机的课程设计

关于单片机的课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本结构、工作原理及功能特点,理解其在工程实践中的应用。

2. 使学生了解单片机编程的基本语法和编程技巧,能运用C语言或汇编语言进行简单程序设计。

3. 帮助学生掌握单片机外围电路的设计方法,能够进行基本的电路连接和调试。

技能目标:1. 培养学生运用单片机解决实际问题的能力,提高学生的动手实践能力。

2. 培养学生具备基本的程序调试和排错能力,能够分析并解决程序运行中的问题。

3. 培养学生团队协作和沟通能力,能够在项目实践中与他人共同完成任务。

情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生的学习热情和求知欲。

2. 培养学生严谨、细致的学习态度,养成良好的学习习惯。

3. 增强学生的创新意识,鼓励学生勇于尝试、敢于实践,培养其创新精神。

课程性质:本课程属于电子技术领域,以实践操作为主,理论讲解为辅,注重培养学生的动手能力和创新能力。

学生特点:学生为初中或高中年级,具备一定的电子技术基础和编程能力,对单片机有一定了解,但对实际应用和编程技巧掌握不足。

教学要求:教师需结合学生特点,采用讲解、示范、实践相结合的教学方法,注重引导学生主动探究、合作学习,提高学生的综合运用能力。

在教学过程中,关注学生的学习反馈,及时调整教学策略,确保课程目标的达成。

二、教学内容1. 单片机基础知识:介绍单片机的概念、发展历程、分类及特点。

以教材第二章内容为基础,讲解单片机的内部结构、工作原理及性能指标。

2. 单片机编程语言:讲解单片机编程的基础知识,包括C语言和汇编语言的语法、编程规范及编程技巧。

参考教材第三章,通过实例分析,使学生掌握编程方法。

3. 单片机外围电路设计:以教材第四章内容为参考,介绍常用外围元器件的功能、选型及应用,使学生能够设计简单的单片机外围电路。

4. 单片机程序设计:结合教材第五章,通过案例教学,让学生学会编写简单的控制程序,如流水灯、温度控制等。

单片机教案(讲稿)

单片机教案(讲稿)

单片机教案(讲稿)第一章:单片机概述一、教学目标:1. 了解单片机的定义、发展历程和分类。

2. 掌握单片机的主要性能指标和应用领域。

3. 熟悉单片机的结构组成和基本工作原理。

二、教学内容:1. 单片机的定义和发展历程。

2. 单片机的分类及特点。

3. 单片机的主要性能指标。

4. 单片机的应用领域。

5. 单片机的结构组成和基本工作原理。

三、教学方法:1. 讲授法:讲解单片机的定义、发展历程、分类、性能指标和应用领域。

2. 演示法:展示单片机的实物图片和结构组成图。

四、教学准备:1. 教学PPT。

2. 单片机实物图片和结构组成图。

五、教学过程:1. 导入:引导学生思考什么是单片机,为什么要学习单片机。

2. 讲解:详细讲解单片机的定义、发展历程、分类、性能指标和应用领域。

3. 演示:展示单片机的实物图片和结构组成图,让学生更直观地了解单片机。

4. 互动:提问学生,了解他们对单片机的认识,解答他们的疑问。

5. 总结:概括本节课的重点内容,布置课后作业。

第二章:单片机编程基础一、教学目标:1. 掌握单片机的编程语言和编程环境。

2. 熟悉单片机的指令系统及其功能。

3. 学会使用单片机编程软件进行程序编写和烧录。

二、教学内容:1. 单片机的编程语言。

2. 单片机的编程环境。

3. 单片机的指令系统及其功能。

4. 单片机编程软件的使用方法。

三、教学方法:1. 讲授法:讲解单片机的编程语言、编程环境和指令系统。

2. 演示法:展示单片机编程软件的使用方法。

3. 实践法:让学生动手编写简单的单片机程序并进行烧录。

四、教学准备:1. 教学PPT。

2. 单片机编程软件。

3. 编程实例及烧录设备。

五、教学过程:1. 导入:回顾上节课的内容,引导学生进入本节课的学习。

2. 讲解:详细讲解单片机的编程语言、编程环境和指令系统。

3. 演示:展示单片机编程软件的使用方法,并进行编程实例演示。

4. 实践:让学生动手编写简单的单片机程序并进行烧录,体会编程过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书课程名称:微机原理与接口技术题目: B5901112154型单片机系统的设计学院:机电工程学院系:机电工程系专业:机械设计制造及其自动化班级:机制124班学号: 5901112154 学生姓名:起讫日期: 6.16---6.23 指导教师:胡瑢华系分管主任:审核日期:说明BEIYON1 - 副本.DSN打开上面的protus软件可以看到完整的电路图1、课程设计任务书由指导教师填写,并经学院审定后下达给学生。

2、进度表是课程设计工作检查的主要依据。

3、学生根据指导教师下达的任务书,独立完成课程设计。

4、本任务书在课程设计完成后,与说明书、电路原理图和程序清单等资料一并上交指导教师,作为课程设计的主要档案资料。

一、课程设计的要求和内容(包括原始数据、技术要求、工作要求)1、工作要求单片机系统在各行各业自动控制领域的应用越来越广泛。

《微机原理与接口技术》课程设计实践教学环节要求同学们针对实际需求,灵活应用所学知识,独立进行系统综合设计,以达到巩固单片机基础知识、掌握单片机系统开发过程和提高动手实践能力的目的。

2、技术要求每位学生应独立完整地设计一套单片机系统。

该系统CPU采用AT89S51芯片,晶振为12MHz。

硬件模块可包括:a)显示模块,采用串行口串接74HC164芯片控制5个7段数码管;b)键盘模块,采用2X2行列键盘;c)声音控制模块,采用蜂鸣器发声;d)A/D采集模块,采用ADC0809采集电位计的电压值;e)D/A输出模块,采用DAC0832输出某种波形。

要求实现以下功能:(1)系统上电后,按照从下进入,在数码管上显示学号的后五位12154。

(2)查询键盘,当用户按1至4号键时在数码管上显示相应数值(例如按1键数码管显示5个1,以此类推),同时伴随蜂鸣器响(只要按键处于按下的状态蜂鸣器就响,按多久就响多久,按键弹起后终止)。

需编制键盘去抖动程序(按键中断接INT0,行线接P1.1,P1.2,列线接P1.5,P1.6)。

(3)按键长按(超过1.5秒)则按键可进行功能选择(1号键显示学号,3号键A/D采集,0号键D/A转换功能运行)。

(4)采用译码方式,通过D/A输出频率为500Hz梯形波(5)采用译码方式,启动通道0的A/D转换,进行采样,A/D转换结束后(通过INT1中断),将采集到的值转换为BCD码,并予以显示(使用三个七段数码管显示例如显示3.75)。

3、此次课程设计采用分级评分,具体操作如下:课程设计开始阶段确定自己选择何种评分等级,只是在最后提交的时候在资料袋封面标明即可。

《2011级<微机原理与接口技术课程设计>任务定义表》说明:※表中“键盘口线”定义详见附录。

※表中键盘中断接口详见附录。

※约定键键值排列见附录。

※按哪个约定键进入到哪种功能见附录。

※A/D采集使用A/D的哪个通道进行采集见附录。

※表中“显示方式”是指在编制个人学号的后六位显示程序时,实现缓慢从左右上下逐步在数码管显示,显示速度由同学自主定义。

※A/D中断入口见附录。

※表中“频率”是规定D/A输出时所采用的频率见附录。

※表中“波形”是规定D/A输出时所采用的波形见附录。

二、课程设计图纸内容及张数1、单片机系统硬件电路原理图1张(2号图纸)要求布局合理,阅读方便,元器件绘制符合规范。

每条信号线均采用直接连接方式,不准采用总线方式画法,每个元器件必须标注型号、参数或引脚号。

三、课程设计实物内容及要求1、源程序清单1份要求在WAVE软件下汇编通过(提交的程序清单中包括程序机器码),并对程序进行功能和含义进行详细注解,对自己任务的要点予以标记,使用规范格式打印。

2、课程设计说明书1份要求针对所设计的软硬件内容进行说明(必须手写),具体内容包括:芯片地址的确定、分频电路的实现、定时/计数初值的求取、软件模块的流程图、设计心得等。

四、建议课程设计进度表(含周六、日)1、第1天:教师布置设计任务,学生理解设计任务,并准备资料;2、第2-4天:系统硬件电路原理图设计;3、第5-7天:编制系统程序,并进行汇编调试;4、第8天:提交设计资料,并进行考核。

五、主要参考资料ORG 0000H ;主程序入口LJMP MAINORG 0003H ;外部中断0入口LJMP ZHAN2ORG 0013H ;外部中断1入口LJMP A2DMAIN:SETB EA ;打开中断总允许SETB EX0 ;打开外部中断0允许MOV P1,#0F9H ;设置键盘初值MOV R4,#30XUEHAO: MOV DPTR,#XTAB ;学号显示子程程序MOV R2,#3 ;从下到上滚动分三次XUEHAO2:MOV R3,#5 ;每次发送5个显示码进数码管XUEHAO1:MOV A,#0 ;A清零MOVC A,@A+DPTR ;查表,给A赋值MOV SBUF,A ;将A中数据发送到串行口JNB TI,$ ;判断串行口发送是否完毕CLR TI ;清除中断标志位,准备进行下一次发送 INC DPTR ;DPTR加1,指向下一个字型码地址DJNZ R3,XUEHAO1 ;判断是否到了5个LCALL DELAY1S ;延迟1s,进行显示DJNZ R2,XUEHAO2 ;判断从下滚动三次是否完毕LJMP XUEHAO ;新一轮显示ZHAN2: MOV 70H,A ;响应中断,保存原数据MOV 71H,DPLMOV 72H,DPHMOV 73H,R3MOV 74H,R2MOV 75H,R5MOV 76H,R6MOV 77H,R7LCALL DELAY10MS ;延时10MS判断按键是否按下,没按下则返回 JB P3.2,ZHAN1MOV DPTR,#STAB ;键值显示表地址送给DPTRLCALL JIANZHI ;调用判断键值的程序MOV 7AH,A ;将键值保存到7AH中MOVC A,@A+DPTR ;查表给A赋值MOV R7,#5 ;发送5次键值ZHAN:MOV SBUF,AJNB TI,$CLR TIDJNZ R7,ZHAN ;判断是否发送完毕SELECT: MOV P1,#0F9H ;长按键判断开始,给键盘赋初值JB P3.2,SELECTOUT ;判断按键是否按下,没有则跳出中断LCALL DELAY50MS ;延时50msMOV P1,#0F9H ;给键盘赋初值JB P3.2,SELECTOUT ; 判断按键是否按下,没有跳出中断DJNZ R4,SELECT ;判断按键是否按了1.5s,没有则跳出中断ZHAN4: MOV P1,#0F9H ;按键超1.5s后,等待按键弹起JB P3.2 ,ZHAN4MOV P1,#0F9H ;给键盘赋初值MOV A,7AH ;取出7AH中的键值CJNE A,#0,SELECT1 ;判断是不是按了按键0,不是的话继续判断 LCALL D2A ;确定是按键0,调用DA功能子程序LJMP SELECTOUT1 ; 完成功能,跳到中断返回程序SELECT1: CJNE A,#1,SELECT2 ;判断是否是按键1,不是的话继续判断LCALL XUEHAOZHAN ;确定是按键1,调用学号显示功能LJMP SELECTOUT1 ;完成功能,跳到中断返回程序SELECT2: CJNE A,#3,SELECTOUT1 ;判断是否是按键3,不是跳中断返回程序 LCALL ATOD ;确定是按键3,调用AD功能子程序LJMP SELECTOUT1 ;完成功能,跳到中断返回程序ZHAN1:MOV A,70H ;按键没按下返回程序,取出中断前的数据MOV DPL,71HMOV DPH,72HMOV R3,73HMOV 74H,R2MOV 75H,R5MOV 76H,R6MOV 77H,R7RETISELECTOUT:LCALL DELAY0A5MS ;按键按下但时间不到1.5s的中断返回程序MOV R4,#30 ;R4重新赋初值MOV A,70HMOV DPL,71HMOV DPH,72HMOV R3,73HMOV 74H,R2MOV 75H,R5MOV 76H,R6MOV 77H,R7RETISELECTOUT1:MOV P1,#0F9H ;按键按下达到1.5s的中断返回程序MOV R4,#30 ; R4重新赋初值MOV A,70HMOV DPL,71HMOV DPH,72HMOV R3,73HMOV 74H,R2MOV 75H,R5MOV 76H,R6MOV 77H,R7RETID2A:MOV 60H ,A ; 将A中的值保存到60H中MOV DPTR,#0BFFFH ; 启动DA转换器MOV A,#00H ; 梯形波的上升沿,时间控制0.5ms MOV R2,#50 ; 发送50个梯形波D2A1: MOVX @DPTR,AINC ACJNE A,#100,D2A1LCALL DELAY0A5MS ; 梯形波峰值保持0.5msD2A2:DEC A ; 梯形波的下降沿,时间控制0.5ms MOVX @DPTR ,ACJNE A,#0,D2A2LCALL DELAY0A5MS ; 梯形波的谷值保持0.5msDJNZ R2,D2A1 ; 判断发送50个是否完毕MOV A,60H ; 取出保存到60H的A值RETATOD: MOV P1,#0F9H ; 键盘赋初值JNB P3.2 ,ATOD ; 判断按键是否弹起MOV 66H,A ; 暂存A,DPTR的内容MOV 67H,DPLMOV 68H,DPHCLR A ; 清A中内容SETB PX1 ; 设置外部中断1的优先级SETB IT1 ;设置下降沿触发中断SETB EX1 ;打开中断1MOV DPTR,#0FFF8H ;DPTR指向ADC0808首地址MOVX @DPTR,A ; 启动AD转换器MOV A,66H ; 返还A,DPTR中的内容MOV DPL,67HMOV DPH,68HRETA2D: MOV DPTR,#0FFF8HA2D1: SETB RS1SETB RS0 ;打开第三组MOVX A,@DPTRCLR EA ;关闭所有中断MOV 24H,A ;由于读入电压数字量顺序相反,故需要调整MOV 2AH,#00H ; 所以将A中的值倒置JNB 27H,TOP1 ;通过24H的位地址20H到27H及2AH的位地址SETB 50H ;50H到57H进行处理,将A的值送到位地址TOP1:JNB 26H,TOP2 ;20H到27H中,然后将位地址50H到57H清零SETB 51H ;然后判断27H是否为1,是的话则使50H置1,否则 TOP2:JNB 25H,TOP3 ;50H中就仍为0,依次如此判断,从而达到把27H的 SETB 52H ;位值放到50H,把26H中的位值放到51H中,如此进 TOP3:JNB 24H,TOP4 ;行,直到将20H中的内容放到57H中调整完毕,2AH SETB 53H ;中保存的就是经倒置调整的A值TOP4:JNB 23H,TOP5SETB 54HTOP5:JNB 22H,TOP6SETB 55HTOP6:JNB 21H,TOP7SETB 56HTOP7:JNB 20H,TOP8SETB 57HTOP8:MOV A,2AH ;调整完毕MOV B,#51 ;将A中的内容转成BCD码,A的范围是0--255,电压DIV AB ;是5V,故需除以51得到整数位,将其保存在R1中,余 MOV R3,A ;数乘以10,若乘出来超过255,即B中不为0,则第二MOV A,B ;是大于5的,将乘出来的结果的低八位,即A中内容MOV B,#10 ;除以51的商加上5即为第二位MUL AB ;若乘出来的结果没有超过255,则将A中的内容除以51即MOV R6,A ;得到第二位,第三位同理处理MOV A,BCJNE A,#00H,NUM1MOV A,R6MOV B,#51DIV ABMOV R2,AAJMP LOOPNUM1:MOV A,R6 ;乘出来的结果大于255的情况INC AMOV B,#51DIV ABADD A,#5MOV R2,ALOOP:MOV A,B ; 取第三个分数MOV B,#10MUL ABMOV R6,AMOV A,BCJNE A,#00H,NUM2MOV A,R6MOV B,#51DIV ABMOV R1,AAJMP LOOP5NUM2:MOV A,R6 ;乘出来的结果大于255的情况INC AMOV B,#51DIV ABADD A,#5MOV R1,ALOOP5: MOV A,R1 ;输出第三个分数LCALL DIANYAMOV A,R2 ;输出第二个分数LCALL DIANYAMOV A,R3 ;输出第一个整数MOV DPTR,#ZRPTABMOVC A,@A+DPTRANL A,#7FH ;使得整数带小数点MOV SBUF,AJNB TI,$CLR TIMOV R4,#2 ;灭掉的2个灯TOP9:MOV A,#0AH ;给A赋第10个数LCALL DIANYADJNZ R4,TOP9LCALL DELAY1S ;调用1秒延时让电压值显示 SETB EA ;开启中断RETIDIANYA: MOV SCON,#00H ;输出电压数字程序MOV DPTR,#ZRPTABMOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIRETLCALL DELAY1SRETJIANZHI: MOV R0,#0MOV A,#0JNB P1.5,JP1MOV R0,#1JP1:MOV P1,#9BHJNB P1.1,JP2MOV A,#2JP2:ADD A,R0RETDELAY1S: MOV R5,#100 ;延时一秒子程序DELAY1S1: LCALL DELAY10MSDJNZ R5,DELAY1S1RETDELAY0A5MS: MOV R6,#5 ;延时0.5ms的程序DELAY0A5MS1:MOV R7,#49DJNZ R7,$DJNZ R6,DELAY0A5MS1RETDELAY50MS: MOV R5,#5 ;延时50ms的程序DELAY50MS1: LCALL DELAY10MSDJNZ R5,DELAY50MS1RETDELAY3MS: MOV R6,#6 ;延时3ms子程序DELAY3MS1:MOV R7,#250DJNZ R7,$DJNZ R6,DELAY3MS1RETDELAY10MS: MOV R6,#20 ;延时10ms子程序DELAY10MS1:MOV R7,#250DJNZ R7,$DJNZ R6,DELAY10MS1RETXUEHAOZHAN:MOV DPTR,#XTABZHAN ;学号显示子程程序XUEHAOZHAN2:MOV R3,#5 ;延时超1.5s的学号显示程序XUEHAOZHAN1:MOV A,#0MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC DPTRDJNZ R3,XUEHAOZHAN1LCALL DELAY1SRETXTABZHAN:DB 99H,92H,0F9H,0A4H,0F9H ;学号显示数字表XTAB:DB 0FFH,0F7H,0FFH,0F7H,0FFH ;学号显示表DB 0E3H,0A7H,0FBH,0A7H,0FBHDB 99H,92H,0F9H,0A4H,0F9HSTAB:DB 0F9H,0A4H,0B0H,99H ;键值显示表ZRPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ,0FFH ;AD转换显示表机器码0000H 020016 LJMP 0016H0003H 02003B LJMP 003BH0006H FF MOV R7, A0007H FF MOV R7, A0008H FF MOV R7, A0009H FF MOV R7, A000AH FF MOV R7, A000BH FF MOV R7, A000CH FF MOV R7, A000DH FF MOV R7, A000EH FF MOV R7, A000FH FF MOV R7, A0010H FF MOV R7, A0011H FF MOV R7, A0012H FF MOV R7, A0013H 020121 LJMP 0121H0016H D2AF SETB EA0018H D2A8 SETB EX0001AH 7590F9 MOV P1, #F9H001DH 7C1E MOV R4, #1EH001FH 900229 MOV DPTR, #0229H0022H 7A03 MOV R2, #03H0024H 7B05 MOV R3, #05H0026H 7400 MOV A, #00H0028H 93 MOVC A, @A+DPTR 0029H F599 MOV SBUF, A002BH 3099FD JNB TI, 002BH002EH C299 CLR TI0030H A3 INC DPTR0031H DBF3 DJNZ R3, 0026H 0033H 1201E3 LCALL 01E3H0036H DAEC DJNZ R2, 0024H 0038H 02001F LJMP 001FH003BH F570 MOV 70H, A003DH 858271 MOV 71H, DPL0040H 858372 MOV 72H, DPH0043H 8B73 MOV 73H, R30045H 8A74 MOV 74H, R20047H 8D75 MOV 75H, R50049H 8E76 MOV 76H, R6004BH 8F77 MOV 77H, R7004DH 120205 LCALL 0205H0050H 20B24B JB P3.2, 009EH 0053H 900238 MOV DPTR, #0238H 0056H 1201D0 LCALL 01D0H0059H F57A MOV 7AH, A005BH 93 MOVC A, @A+DPTR005CH 7F05 MOV R7, #05H005EH F599 MOV SBUF, A0060H 3099FD JNB TI, 0060H 0063H C299 CLR TI0065H DFF7 DJNZ R7, 005EH 0067H 7590F9 MOV P1, #F9H006AH 20B244 JB P3.2, 00B1H 006DH 1201F4 LCALL 01F4H0070H 7590F9 MOV P1, #F9H0073H 20B23B JB P3.2, 00B1H 0076H DCEF DJNZ R4, 0067H 0078H 7590F9 MOV P1, #F9H007BH 20B2FA JB P3.2, 0078H 007EH 7590F9 MOV P1, #F9H0081H E57A MOV A, 7AH0083H B40006 CJNE A, #00H, 008CH0086H 1200E1 LCALL 00E1H0089H 0200C9 LJMP 00C9H008CH B40106 CJNE A, #01H, 0095H 008FH 12020E LCALL 020EH0092H 0200C9 LJMP 00C9H0095H B40331 CJNE A, #03H, 00C9H 0098H 1200FF LCALL 00FFH009BH 0200C9 LJMP 00C9H009EH E570 MOV A, 70H00A0H 857182 MOV DPL, 71H00A3H 857283 MOV DPH, 72H00A6H AB73 MOV R3, 73H00A8H 8A74 MOV 74H, R200AAH 8D75 MOV 75H, R500ACH 8E76 MOV 76H, R600AEH 8F77 MOV 77H, R700B0H 32 RETI00B1H 1201EB LCALL 01EBH00B4H 7C1E MOV R4, #1EH00B6H E570 MOV A, 70H00B8H 857182 MOV DPL, 71H00BBH 857283 MOV DPH, 72H00BEH AB73 MOV R3, 73H00C0H 8A74 MOV 74H, R200C2H 8D75 MOV 75H, R500C4H 8E76 MOV 76H, R600C6H 8F77 MOV 77H, R700C8H 32 RETI00C9H 7590F9 MOV P1, #F9H00CCH 7C1E MOV R4, #1EH00CEH E570 MOV A, 70H00D0H 857182 MOV DPL, 71H00D3H 857283 MOV DPH, 72H00D6H AB73 MOV R3, 73H00D8H 8A74 MOV 74H, R200DAH 8D75 MOV 75H, R500DCH 8E76 MOV 76H, R600DEH 8F77 MOV 77H, R700E0H 32 RETI00E1H F560 MOV 60H, A00E3H 90BFFF MOV DPTR, #0BFFFH00E6H 7400 MOV A, #00H00E8H 7A32 MOV R2, #32H00EAH F0 MOVX @DPTR, A00EBH 04 INC A00ECH B464FB CJNE A, #64H, 00EAH 00EFH 1201EB LCALL 01EBH00F2H 14 DEC A00F3H F0 MOVX @DPTR, A00F4H B400FB CJNE A, #00H, 00F2H 00F7H 1201EB LCALL 01EBH00FAH DAEE DJNZ R2, 00EAH00FCH E560 MOV A, 60H00FEH 22 RET00FFH 7590F9 MOV P1, #F9H0102H 30B2FA JNB P3.2, 00FFH 0105H F566 MOV 66H, A0107H 858267 MOV 67H, DPL010AH 858368 MOV 68H, DPH010DH E4 CLR A010EH D2BA SETB PX10110H D28A SETB IT10112H D2AA SETB EX10114H 90FFF8 MOV DPTR, #0FFF8H 0117H F0 MOVX @DPTR, A0118H E566 MOV A, 66H011AH 856782 MOV DPL, 67H011DH 856883 MOV DPH, 68H0120H 22 RET0121H 90FFF8 MOV DPTR, #0FFF8H 0124H D2D4 SETB RS10126H D2D3 SETB RS00128H E0 MOVX A, @DPTR0129H C2AF CLR EA012BH F524 MOV 24H, A012DH 752A00 MOV 2AH, #00H 0130H 302702 JNB 27H, 0135H 0133H D250 SETB 50H0135H 302602 JNB 26H, 013AH 0138H D251 SETB 51H013AH 302502 JNB 25H, 013FH013DH D252 SETB 52H013FH 302402 JNB 24H, 0144H 0142H D253 SETB 53H0144H 302302 JNB 23H, 0149H 0147H D254 SETB 54H0149H 302202 JNB 22H, 014EH014CH D255 SETB 55H014EH 302102 JNB 21H, 0153H 0151H D256 SETB 56H0153H 302002 JNB 20H, 0158H 0156H D257 SETB 57H0158H E52A MOV A, 2AH015AH 75F033 MOV B, #33H015DH 84 DIV AB015EH E5F0 MOV A, B0160H 75F00A MOV B, #0AH0163H A4 MUL AB0164H FE MOV R6, A0165H E5F0 MOV A, B0167H B40008 CJNE A, #00H, 0172H 016AH EE MOV A, R6016BH 75F033 MOV B, #33H016EH 84 DIV AB016FH FA MOV R2, A0170H 217B AJMP 017BH0172H EE MOV A, R60173H 04 INC A0174H 75F033 MOV B, #33H0177H 84 DIV AB0178H 2405 ADD A, #05H017AH FA MOV R2, A017BH E5F0 MOV A, B017DH 75F00A MOV B, #0AH0180H A4 MUL AB0181H FE MOV R6, A0182H E5F0 MOV A, B0184H B40008 CJNE A, #00H, 018FH 0187H EE MOV A, R60188H 75F033 MOV B, #33H018BH 84 DIV AB018CH F9 MOV R1, A018DH 2198 AJMP 0198H018FH EE MOV A, R60190H 04 INC A0191H 75F033 MOV B, #33H 0194H 84 DIV AB0195H 2405 ADD A, #05H 0197H F9 MOV R1, A0198H E9 MOV A, R10199H 1201BD LCALL 01BDH019CH EA MOV A, R2019DH 1201BD LCALL 01BDH01A0H EB MOV A, R301A1H 90023C MOV DPTR, #023CH 01A4H 93 MOVC A, @A+DPTR 01A5H 547F ANL A, #7FH01A7H F599 MOV SBUF, A01A9H 3099FD JNB TI, 01A9H01ACH C299 CLR TI01AEH 7C02 MOV R4, #02H01B0H 740A MOV A, #0AH01B2H 1201BD LCALL 01BDH01B5H DCF9 DJNZ R4, 01B0H01B7H 1201E3 LCALL 01E3H01BAH D2AF SETB EA01BCH 32 RETI01BDH 759800 MOV SCON, #00H 01C0H 90023C MOV DPTR, #023CH 01C3H 93 MOVC A, @A+DPTR 01C4H F599 MOV SBUF, A01C6H 3099FD JNB TI, 01C6H01C9H C299 CLR TI01CBH 22 RET01CCH 1201E3 LCALL 01E3H01CFH 22 RET01D0H 7800 MOV R0, #00H01D2H 7400 MOV A, #00H01D4H 309502 JNB P1.5, 01D9H 01D7H 7801 MOV R0, #01H01D9H 75909B MOV P1, #9BH01DCH 309102 JNB P1.1, 01E1H 01DFH 7402 MOV A, #02H01E1H 28 ADD A, R001E2H 22 RET01E3H 7D64 MOV R5, #64H01E5H 120205 LCALL 0205H01E8H DDFB DJNZ R5, 01E5H01EAH 22 RET01EBH 7E05 MOV R6, #05H01EDH 7F31 MOV R7, #31H01EFH DFFE DJNZ R7, 01EFH01F1H DEFA DJNZ R6, 01EDH01F3H 22 RET01F4H 7D05 MOV R5, #05H01F6H 120205 LCALL 0205H01F9H DDFB DJNZ R5, 01F6H01FBH 22 RET01FCH 7E06 MOV R6, #06H01FEH 7FFA MOV R7, #FAH 0200H DFFE DJNZ R7, 0200H 0202H DEFA DJNZ R6, 01FEH 0204H 22 RET0205H 7E14 MOV R6, #14H 0207H 7FFA MOV R7, #FAH 0209H DFFE DJNZ R7, 0209H 020BH DEFA DJNZ R6, 0207H 020DH 22 RET020EH 900224 MOV DPTR, #0224H 0211H 7B05 MOV R3, #05H 0213H 7400 MOV A, #00H 0215H 93 MOVC A, @A+DPTR 0216H F599 MOV SBUF, A 0218H 3099FD JNB TI, 0218H 021BH C299 CLR TI021DH A3 INC DPTR021EH DBF3 DJNZ R3, 0213H 0220H 1201E3 LCALL 01E3H0223H 22 RET0224H 99 SUBB A, R10225H 92F9 MOV F8H.1, C 0227H A4 MUL AB0228H F9 MOV R1, A0229H FF MOV R7, A022AH F7 MOV @R1, A/*022BH FF MOV R7, A022CH F7 MOV @R1, A022DH FF MOV R7, A022EH E3 MOVX A, @R1022FH A7FB MOV @R1, FBH0231H A7FB MOV @R1, FBH0233H 99 SUBB A, R10234H 92F9 MOV F8H.1, C0236H A4 MUL AB0237H F9 MOV R1, A0238H F9 MOV R1, A0239H A4 MUL AB023AH B099 ANL C, /TI023CH C0F9 PUSH F9H023EH A4 MUL AB023FH B099 ANL C, /TI0241H 9282 MOV P0.2, C0243H F8 MOV R0, A0244H 8090 SJMP 01D6H0246H FF MOV R7, A。

相关文档
最新文档