单片机课程设计报告模板

合集下载

单片机应用技术课程设计报告模板

单片机应用技术课程设计报告模板

单片机应用技术课程设计实训报告专业:年级/班级:姓名:实训时间:实训地点:指导教师:一、实训题目:基于51单片机电子时钟设计二、实训目的:三、所用器件工作原理及控制方法:四、软硬件设计五、实训总结:附件:#include <reg52.h>#include <intrins.h> //有_nop_的头文件/***********变量定义*********************************************/#define uchar unsigned char#define uint unsigned intvoid shezhi_display(void);void led_display(uchar m);void zhengdian(void);void delay(void);void delayms(uchar ms);uchar time1s=0,time50ms; //定时1s计数器uchar time1f=0,time1x=0;uchar a,b,k,m,num=0;#define ledbit P0 //P0.0-P0.7--A~Gextern uchar code smg[]= {//共阳极0-9显示代码//-0-----1-----2-----3-----4-----5-----6-----7-----8---9--0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };sbit wx_0=P2^0;sbit wx_1=P2^1;sbit wx_2=P2^2;sbit wx_3=P2^3;sbit wx_4=P2^4; // 数码管位选sbit wx_5=P2^5;sbit zd=P1^4;sbit shezhi=P1^1;sbit jia=P1^2;sbit sub=P1^5;sbit yiwei=P1^0;void init () //对应定时器和外部中断1; {TMOD = 0x01; //T0T1方式控制 TH0=0x3c;TL0=0xb0; //计时50msEA=1; //开全局中断ET0=1; //开定时中断0TR0=1;}void delay(void) //延时函数,延时约0.6ms {unsigned char j;for(j=0;j<200;j++);}void delayms(uchar ms){uchar i;while(ms--)for(i=0;i<200;i++);}/*************** ******************************************* /函数名:led_display()/功能:数码管显示数据,驱动芯片74LS244/输入:dat ---8位数据/输出:无/说明:输入十进制数。

单片机课程设计_报告正文

单片机课程设计_报告正文

目录1 课程设计概述 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)1.4定时器控制门铃的系统设计 (1)1.5定时器控制门铃的功能要求 (2)1.6定时器控制门铃的系统的基本构成及原理 (2)2 硬件开发平台 (3)3 软件开发平台 (4)4 硬件电路的设计 (5)4.1系统硬件总电路构成及原理 (5)4.2主控制部分――AT89C51单片机简介 (5)4.3其它器件 (7)4.4定时器控制门铃系统原理图 (8)4.5设计的连线图 (9)4.6硬件资源及其分配 (9)4.7运行步骤 (9)4.8检测与调试 (10)5 程序设计 (12)5.1流程图 (12)5.2关键源代码 (13)6 运行结果 (14)结论 (15)参考文献 (16)1 课程设计概述1.1设计目的1.通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。

2.通过定时器控制门铃声响的系统设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。

1.2设计内容和要求内容:设计一个能够控制门铃声响的模拟系统。

要求:当按下开关SP1,单片机产生“叮咚”声从P3.0端口输出到喇叭。

具体实施如下:(1)按以上要求制定设计方案,并绘制出系统工作框图,绘制程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)单片机仿真器、电路板、电源等硬件正确可靠地连接;(4)利用仿真器、单片机及电路板进行程序设计与调试;1.3 设计思路1.针对本课题的设计任务,进行分析得到:本次设计是利用单片机实现对扬声器发声的,控制采用按钮操作,AT89C51单片机进行控制,最后使扬声器发出“叮咚”声音。

2.绘制电路原理图,编写程序,并进行仿真,基本实现扬声器发“叮咚”声音出功能。

1.4定时器控制门铃的系统设计通过编写程序,实现对输出频率的控制,来扬声器的管理。

单片机课程设计模板

单片机课程设计模板

单片机接口设计课程报告班级:姓名:学号:指导老师:一、设计题目:彩灯控制器二、设计要求:1.花型种类不少于四种,花型自拟;2.可用键控制彩灯按预设的花型进行变换;3.可用键控制分别用快/慢两种节拍实现花型变换。

本机地址为00H,当接到上位机发的00H时,则回发00H当接到上位机发的AAH时,则将预设花型代号发出当收到55H时,则后面的数据为新的花型三、设计整体思路:彩灯控制器可分为彩灯部分、单片机、脉冲震荡部分、复位电路、按键等。

所使用的单片机型号为80C51,80C51提供了32位I/O接口、2个16位定时器/计数器、1个全双工串行口和5个中断源来供用户使用。

同时设置了脉冲电路,为系统提供稳定频率波,也使各单片机之间的时钟信号能够同步。

复位电路所提供的复位功能是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H 单元开始执行程序。

同时,复位操作也使单片机内相应的寄存器复位到初始值。

按键是由P3.4、P3.5 两个I/O口连接,在无按键按下时,P3.4、P3.5均为高电平,当有按键按下,相应的口为低电平。

四、原理图:五、程序模块(流程图):主流程图:花型1流程图:开始中断初始化选择快慢节拍花型循环变换结束花型二流程图:花型三流程图:花型四流程图:六、心得体会:在这次单片机课程设计中遇到了很多的难题,因为以前没有接触过C语言的单片机,但是在老师和同学的帮助下,以及自己通过查找一些资料,顺利的解决了遇到的问题,完成了老师布置的要求。

通过本次课程设计也时我对单片机的一些有关的知识有了更进一步的了解,单片机是一门实践性很强的课程,它必须和其它的芯片一起才能最大可能的发挥出它的各种各样的功能。

所以就需要我们的知识面要广,这样在设计过程中才能有效的解决问题。

由于我们所用的是C语言编程,所以会遇到一些问题,但通过不断的查找资料和尝试最终还是解决了问题。

本次课程设计也锻炼了我们的实践能力,通过编写程序,我们能够把所学的知识很好地应用到实际中去,从而学以致用,能够设计一些生活中很小的系统。

单片机课程设计报告范例

单片机课程设计报告范例

单片机课程设计示例交通灯控制系统设计一、总体设计1、设计要求:交通灯的任务要求为:模拟十字路口的交通灯的亮、灭及闪烁基本工作原理:根据交通灯的亮灭情况,可以分为四种状态,利用定时计数器每20秒产生一次中断,每产生一次中断后由是否有特殊情况决定交通灯的状态变换。

2、硬件和软件功能的划分本课题要求实现的功能比较简单。

由单片机的定时/计数器产生八分之一秒的定时时间,通过软件的方式实现20秒的定时时间。

交通灯的亮灭由8255A控制,PA口控制东西向,PB口控制南北向。

3、交通灯状态划分十字路口交通灯如下图所示,将12个交通灯进行编号这12个交通灯共有四个状态:状态1(S1):东西红灯(4、10)亮,南北绿灯(3、9)亮状态2(S2):南北绿灯(3、9)灭,黄灯(2、8)闪烁,东西仍为红灯(4、10)亮状态3(S3):南北红灯(1、7)亮,东西绿灯(6、12)亮状态4(S4):东西绿灯(6、12)灭,黄灯(5、11)闪烁,南北仍为红灯(1、7)亮当东西向(或南北向)有特殊情况,开关K0为低电平则应使交通灯处于S3(东西绿灯、南北),开关K1为低电平则应使交通灯处于S1(南北向绿灯、东西向红灯),当K0、K1均为低电平则取消特殊情况,返回正常显示情况。

二、硬件设计根据总体设计要求,确定系统扩展与功能接口,设计出系统的电路原理图。

1、系统扩展最小系统,由8031、地址锁存器和程序存储器组成。

根据课题要求,在此基础上进行扩展。

地址锁存器选74LS373,程序程序器选2764(8K),尽管本系统程序不长,但考虑以后扩展方便,选用2764。

考虑到交通灯数量比较多,控制信号比较多,对单片机的I/O口进行扩展,使用通用I/O接口芯片8255A来对单片机I/O口进行扩展。

2、功能接口所谓接口是CPU与外界的连接部件,以实现CPU与外部设备的最佳耦合和匹配。

本课题只要求显示接口。

显示设备为2位七段数码管。

要使用七段数码管可以利用8031的串行口、可以利用可编程并行I/O扩展芯片8155或8255。

单片机课程设计报告排版

单片机课程设计报告排版

单片机课程设计报告排版一、教学目标本课程旨在让学生掌握单片机的基本原理、编程方法和应用技巧。

通过本课程的学习,学生将能够:1.理解单片机的基本结构和工作原理;2.掌握单片机的编程语言和编程方法;3.学会使用单片机进行简单应用的开发;4.培养动手实践能力和团队协作精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.单片机的基本原理:包括单片机的结构、工作原理和性能特点;2.单片机编程:包括编程语言、编程方法和编程技巧;3.单片机应用:包括常见应用案例分析和实践操作。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:用于讲解单片机的基本原理和编程方法;2.案例分析法:通过分析典型应用案例,使学生更好地理解单片机的应用;3.实验法:通过动手实践,让学生熟练掌握单片机的编程和应用技巧。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料;2.参考书:提供相关领域的参考书籍,丰富学生的知识体系;3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣;4.实验设备:提供充足的实验设备,保证学生动手实践的机会。

五、教学评估本课程的评估方式将采用多元化、全过程的评价体系,以确保评估的客观性和公正性。

评估主要包括以下几个方面:1.平时表现:包括课堂参与度、提问回答、团队协作等,占总评的30%;2.作业:包括课后练习和实验报告,占总评的20%;3.考试成绩:包括期中和期末考试,占总评的50%。

六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行合理规划。

教学进度将保持紧凑,确保在有限的时间内完成教学任务。

具体安排如下:1.上课时间:每周一到周五,每天2课时;2.上课地点:实验室和理论教室;3.教学进度:按照教材和教学大纲进行安排,确保每个章节都有足够的学时进行讲解和实践;4.实践活动:每个章节结束后,安排一次实验实践,让学生动手操作,巩固理论知识。

单片机课程设计实习报告(共6篇)

单片机课程设计实习报告(共6篇)

单片机课程设计实习报告(共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&omega;电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10&mu;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、熟悉本专业自己设计的“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。

单片机课程设计报告模板

单片机课程设计报告模板

单片机技术及应用综合训练(设计报告)题目:姓名:学院:专业:班级:学号:指导教师:2014年5 月一、选题要求临床求助呼叫监护是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。

呼叫系统的优劣直接关系到病员的安危,要求及时、准确、可靠、简便可行。

本呼叫系统基于Ateml89C52单片机,振荡电路的晶振采用12MHz,由控制核心AT89C52单片机、电源电路、振荡电路、复位电路、数码管解码芯片、病房选择和七段数码管等部分组成,系统框图如下:二、硬件电路设计工作原理为:电源电路为单片机以及其他模块提供5V电源。

晶振模块为单片机提供时钟标准,使系统各部分能协调工作。

复位电路模块为单片机系统提供复位功能。

单片机作为主控制器,根据输入信号对系统进行相应的控制。

病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。

所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。

另外,当有病房呼叫时蜂鸣器响直至复位。

此次设计的电路图如下:三、软件设计1、功能介绍:启动系统后,数码管显示0。

当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有多个病人同时呼叫时,数码管显示优先级高的病房号,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则数码管显示后呼叫的病房号,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。

2、程序流程图:3、程序源代码:#include <reg51.h>#define uchar unsigned char sbit key4=P3^0;//定义按键位置sbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;sbit reset=P3^4;//复位sbit BEEP=P1^7;//定义蜂鸣器端口uchar flag,i;void choice();void clean();void delay();void de();void ring();void main(){while(1){P3=0xff;reset=0;BEEP=0;flag=0;choice();delay();clean();}}void choice()//确定病人{ while(reset!=1&&flag==0) {if(key1==0){de();if(key1==0){P0=0X86;flag=1;}}else if(key2==0){de();if(key2==0&&key1!=0){P0=0Xdb;flag=1;}}else if(key3==0){de();if(key3==0&&key1!=0&&key2!=0){P0=0Xcf; flag=1;}}else if(key4==0){de();if(key4==0&&key1!=0&&key2!=0&&key3!=0){P0=0Xe6; flag=1;}}}}void clean() //RESET 为高的时候复位{if(reset==1){BEEP=0;P0=0x3f;}}void delay() //RESET为低的时候延时{while(!reset){ring();}}void ring(){for(i=0;reset==0;i++)//喇叭发声的时间循环{de();BEEP=!BEEP;if(key1==0||key2==0||key3==0)//第二次呼叫{if( P0==0X86)P0=0X86;else if(P0==0Xdb&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==0)P0=0X86;else if(P0==0Xe6&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==1&&key2==1&&key3==0)P0=0Xcf;}}}void de(){for(i=300;i>0;i--);}四、软硬件调试结果1、未通电:2、通电时:3、低优先级病房先呼叫:(蜂鸣器响)高优先级病房后呼叫:(蜂鸣器响)4、高优先级病房先呼叫:(蜂鸣器响)低优先级病房后呼叫:(蜂鸣器响)呼叫有效呼叫无效5、当有三个病房同时呼叫时:1号2号4号病房同时呼叫显示1五、总结本次实验程序参考网上,但下载时程序有误,经细心验证检查得已改正,这有助于我进一步对C语言的学习和掌握。

单片机课程设计报告模板

单片机课程设计报告模板

单片机课程设计报告模板单片机课程设计报告一、设计目的本次单片机课程设计旨在培养我们对单片机的基本认知和应用能力,通过对STC89C52单片机的学习和实践,提升我们的编程能力和创新思维,同时让我们深入了解单片机的工作原理和应用场景,为未来工作和学习打下坚实基础。

二、设计内容本次课程设计主要涵盖了单片机的基本原理、C语言编程以及电路设计。

我们以智能家居为例,设计了一个可以通过Wi-Fi连接到手机APP控制家电的智能开关系统。

1.单片机的选择我们选择STC89C52作为单片机的核心控制器,这是一款8位高性能单片机,拥有大容量闪存和SRAM存储器、多种定时器和计数器、16位定时器等重要功能,非常适合用于物联网控制和智能家居领域。

2.开发环境的搭建我们采用KEIL软件和PROTEUS电路仿真软件作为开发工具,为了让我们更加熟练地使用这两款软件,我们在课堂上进行了详细的讲解和实践操作,学习了单片机的汇编、C语言编程、调试和调试工具的使用。

3.电路设计为了实现智能家居的控制,我们需要搭建一个能够与单片机相互协作的电路。

我们选择了常见的继电器来控制家电设备的开和关。

具体的电路设计方案如下:①按键电路:在电路中加入按键触发模块,实现单片机中断、感应等功能。

②Wi-Fi WiFi模块:为了实现远程控制,我们使用了ESP8266模块和手机APP进行通讯。

③继电器模块:该模块内置独立的继电器驱动IC,设计电容保护电路和DIP开关控制当前继电器输出端口,保障免受电磁干扰和防止继电器共振。

4.软件设计本次课程设计的重点是编写单片机程序。

我们通过不断的实践和调试,成功编写了相应的程序,实现了以下功能:①通过Wi-Fi模块连接到手机APP,实现APP和单片机的通讯。

②实现对接ESP8266模块,并正确设置ESP8266模块的IP地址和端口号。

③通过单片机控制继电器模块,实现对家电的远程控制。

5.上位机程序设计上位机程序我们选择了Visual Studio C++作为开发工具,通过Socket编程实现了与单片机的通讯。

单片机课程设计报告参考模板

单片机课程设计报告参考模板

注意:以下单片机课程设计报告格式是结合老师发来的报告要求制作的,其中正文“程序存储器和数据存储器的单元分配”没有,由于大部分同学的程序都是使用C语言编写的,单元分配可能无法知道。

本人报告中不具有这部分内容。

本版本报告给是仅供参考!仅供参考!
惠州学院
课程设计
课程:
题目:
学生系别:
学生专业:
学生班级:
学生姓名:
学生学号:
指导教师:
2013年11月25日
惠州学院课程设计任务书
摘要
目录1.设计方案
1.1设计思想
1.2设计说明
2.硬件部分
2.1原理框图
2.2 STC89C52单片机
2.3四位LED共阴数码管
2.4按键电路
2.4.1复位电路
2.4.2电源电路
2.4.3晶振电路
2.4.4调整电路
2.5 74LS373锁存器
3.软件部分
3.1程序流程图
3.1.1主程序流程图
3.1.2子程序流程图
3.2程序清单
4.调试
4.1整合过程
4.2问题与解决方法
4.3实物效果图
5.总结
6.参考文献
7.附录。

单片机技术及应用课程设计报告

单片机技术及应用课程设计报告

课程设计报告第一部分:概述1.1 课程设计的背景和意义单片机技术在现代工业生产和科研中起着举足轻重的作用,因此对单片机技术的理论和应用知识的学习显得尤为重要。

本课程设计的目的在于通过理论与实践相结合的方式,使学生能够全面掌握单片机技术的基本原理和应用方法,为将来的工作和研究打下坚实的基础。

1.2 课程设计的目标和要求本课程设计旨在培养学生对单片机技术的全面理解和应用能力,具体要求包括:- 掌握单片机的基本原理和结构- 熟练掌握单片机的编程语言和开发工具- 能够设计并实现简单的单片机应用系统- 具备一定的单片机故障排除和维护能力第二部分:课程内容2.1 单片机基础知识- 单片机的定义和分类- 单片机的基本结构和工作原理- 单片机的发展历程及应用领域2.2 单片机编程语言- C语言在单片机编程中的应用- 汇编语言在单片机编程中的应用- 单片机常用编程语言对比与选择2.3 单片机开发工具- 单片机编程与仿真工具的选用- 常用单片机开发板介绍与使用- 单片机调试工具的应用2.4 单片机应用系统设计- 单片机控制原理- 单片机在自动控制领域的应用案例- 单片机在智能监控领域的应用案例2.5 单片机故障排除与维护- 单片机常见故障及解决方法- 单片机维护的注意事项- 单片机相关知识的拓展与学习第三部分:课程设计方法3.1 教学内容的设置本课程设计旨在通过理论教学和实践操作相结合的形式展开教学,具体内容包括课堂讲解、实验演示、课程设计等多种形式。

3.2 教学方法的选择- 教师为主导,学生为主体的教学方式- 实验操作和项目设计为主要形式- 多媒体教学与互动授课相结合3.3 课程评估方式本课程将通过平时表现、实验报告、课程设计报告和期末考核等方式对学生的学习情况进行全面评估。

第四部分:课程设计实施4.1 教学内容详细安排- 第1-2周:单片机基础知识- 第3-4周:单片机编程语言- 第5-6周:单片机开发工具- 第7-8周:单片机应用系统设计- 第9-10周:单片机故障排除与维护4.2 实验教学实施方案- 设置不同难度的实验内容- 强调实验操作的规范性和实用性- 配备实验教学相关设备和工具4.3 课程设计作业安排- 各阶段的课程设计报告要求- 课程设计报告的提交时间和形式- 课程设计报告的评分标准第五部分:课程总结和展望5.1 课程总结通过本次课程设计,学生对单片机技术的基本理论和应用能力得到了显著提升,实践操作能力也得到了锻炼和提高。

单片机课程设计报告(简易计算机)

单片机课程设计报告(简易计算机)

专业综合课程设计任务书班级:学号:姓名:成绩:电子与信息工程学院计算机科学系图1.2 图1.3图1.42.3键盘电路这部分有16个button构成4*4矩阵,通过p1口进行行扫描方式实现按键的读取。

硬件电路图如图1.4。

2.4总体硬件图如图1.5图1.53 软件详细设计3.1键盘扫描子程序要进行数据的计算就必须进行数据的输入,也就是确定按键输入的数值是什么,这就需要对键盘进行行扫描,从而确定究竟是那个键按下。

对于键盘的扫描,既可以使用行扫描也可以使用列扫描,这里采用行扫描的方法完成对键盘的扫描行扫描就是逐行扫描键盘,看那一行有键按下,再通过返回的见马来确定究竟是哪个按键按下。

对第一行扫描就置p1.0为底电平,其余p1口为高电平,如果有按键按下,则p1口的值就会变为别的值,再由新值来确定是那个键按下。

程序流程图如图1.6图1.6dd:mov r0,#0f7h mov r1,#0cc:mov a,r0 mov p1,amov a,p1 mov r2,asetb c mov r3,#4bb:rlc a jnc aaee:inc r1 djnz r3,bbmov a,r0 setb crrc a mov r0,ajc cc ljmp ddKAOO:LJMP KAO BBB2:LJMP BB2aa:lcall mm mov a,p1xrl a,r2 nz eeff:mov a,p1 xrl a,r2jz ff MOV A,51HCJNE A,#1,BBB2RET3.4主程序及其他部分程序下图为主程序流程图:主要有:初始化子程序,清屏子程序,固定字符显示,单元定义,端口定义,字模部分。

主程序:RG 0LJMP STARTSTART:MOV SP,#60HLCALL INT ;调用初始化子程序START1:LCALL CLEAR ;调用清屏子程序初始化子程序:INT: MOV COM,#0C0H ;设置显示起始行为第一行LCALL PRM0LCALL PRR0MOV COM,#3FH ;开显示设置LCALL PRM0LCALL PRR0RET清屏子程序:CLEAR:MOV R4,#00H。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构及工作方式。

2. 学生能掌握单片机编程的基本语法,具备编写简单程序的能力。

3. 学生能了解单片机在各种实际应用中的功能,如智能家居、机器人等。

技能目标:1. 学生能够运用所学知识,独立完成单片机的硬件连接与调试。

2. 学生能够运用编程软件,编写简单的单片机程序并进行烧录。

3. 学生能够通过小组合作,完成一个具有实际应用价值的单片机项目。

情感态度价值观目标:1. 学生培养对单片机及电子技术的兴趣,激发探索精神。

2. 学生通过课程学习,提高问题解决能力和团队协作能力。

3. 学生能够认识到单片机技术在实际应用中的价值,增强社会责任感和创新意识。

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

学生特点:六年级学生具备一定的逻辑思维能力,对新事物充满好奇,但需加强团队协作和问题解决能力的培养。

教学要求:注重理论与实践相结合,关注学生的个体差异,提高学生的动手能力和创新能力。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得明显成果。

教学设计和评估将围绕具体学习成果展开,确保课程目标的实现。

二、教学内容1. 单片机基础理论:包括单片机的基本原理、内部结构、工作方式等,对应教材第一章内容。

- 单片机的发展历程与分类- 单片机的内部结构与功能- 单片机的工作原理与指令系统2. 单片机编程语言:学习单片机编程的基本语法和编程技巧,对应教材第二章内容。

- 汇编语言的编写与烧录- C语言的编写与烧录- 常用编程指令的应用3. 单片机硬件连接与调试:学习如何搭建单片机硬件系统并进行调试,对应教材第三章内容。

- 单片机最小系统搭建- 外围电路的设计与连接- 硬件调试方法与技巧4. 单片机应用案例:分析并实践单片机在各种实际应用中的功能,对应教材第四章内容。

- 智能家居系统设计- 机器人控制程序编写- 物联网应用案例分析5. 实践项目:结合所学知识,完成一个具有实际应用价值的单片机项目,为期4周。

《单片机课程设计》报告格式

《单片机课程设计》报告格式

封面格式如下:《单片机原理及应用课程设计》报告——X X X X X X设计专业:班级:姓名:学号:指导教师:2011年月日报告正文部分:(要求:正文部分一律用小四号字,宋体,1.5倍行距。

一级大标题靠左,加粗。

二级大标题靠左,不加粗。

)课程设计的内容如下:1.课程设计目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。

2.课程设计要求2.1 XXXXXXXXXXXXXXXX2.2 XXXXXXXXXXXXXXXX•••••3.硬件设计3.1 设计思想•••••3.2主要元器件介绍•••••3.3 功能电路介绍••••••••••4.软件设计4.1 设计思想•••••4.2软件流程图•••••4.3 源程序••••••••••5.调试运行5.1 XXXXXXXXXXXXXXXX5.2 XXXXXXXXXXXXXXXX•••••6.设计心得体会参考书目:(五号,宋体加粗)[1] 肖金球. 单片机原理与接口技术.[M].北京:清华大学出版社,2004.12[2]………………………………………………………………………..•••••(要求:五号字,宋体,单倍行距。

按作者、书名、出版社、地点、出版时间格式逐一列出,中间用逗号格开)蓝色字一律不要打印参考题目题目1 智能电子钟(LCD显示)设计要求:以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年。

(2) 闰年自动判别。

(3) 五路定时输出,可任意关断(最大可到16路)。

(4) 时间、月、日交替显示。

(5) 自定任意时刻自动开/关屏。

单片机课程设计实验报告

单片机课程设计实验报告

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

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

3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。

技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。

2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。

3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。

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

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

3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。

课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。

课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。

学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。

但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。

3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。

二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。

单片机课程设计报告[5篇]

单片机课程设计报告[5篇]

单片机课程设计报告[5篇]第一篇:单片机课程设计报告《单片机课程设计报告》学校:专业:班级:姓名:学号:指导教师:摘要由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。

通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。

关键词单片机,程序,流水灯,数码管,温度计,键盘扫描,定时器等。

实验内容一、课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。

在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。

实验一:键盘操作实验实验要求:通过本次实验实现对键盘的控制,操作数码管的显示数字。

实验程序:#include #include #include #include #define WR273 XBYTE[0XC000] #define RD244 XBYTE[0XC000] #define uchar unsigned char #define uint unsigned int sbit DQ =P1^0;uint count=0,x,buf[20],tim,flag;uchar fen,shi;uchar codetable_16_1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80 ,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar codetable_16_2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x0 0,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};voidled_clc(void){ XBYTE[0X8000]=0XFF;XBYTE[0X9000]=0XFF;XBYTE [0XA000]=0XFF;XBYTE[0XB000]=0XFF;}void delay(unsigned int i){ while(i--);} void delay_1ms(uint z){ uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);} uchar key_test(){ WR273=0XF0;if((RD244&0X0F)!=0X0F)return 1;else return 0;}void time_init(){ TMOD=0X01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;TR0=1;ET0=1;EA=1;} void time_display(){if(count==10000)count=0;XBYTE[0X8000]=table_16_1[coun t%10];XBYTE[0X9000]=table_16_1[count%100/10];XBYTE[0XA00 0]=table_16_1[count%1000/100];XBYTE[0XB000]=table_16_1[co unt/1000];} void TIME_SET(){ uchar a,b,c,d,key;while(flag==1){ led_clc();while(!key_test());a=keyscan();XBYTE[0XB000]=table_16_1[a];while(!key_test());b=keyscan();XBYTE[0XA000]=table_16_2[b];while(!key_test());c=keyscan();XBYTE[0X9000]=table_16_1[c];while(!key_test());d=keyscan();XBYTE[0X8000]=table_16_1[d] ;while(!key_test());key=keyscan();if(key==11){shi = a*10+b;fen = c*10+d;flag=0;} } } void TIME_DIS(){if(tim==60){ fen++;tim=0;if(fen==60){ shi++;fen=0;if(shi==24)shi=0;} } XBYTE[0X8000]=table_16_1[fen%10];XBYTE[0X9000]=table_16_1 [fen/10];XBYTE[0XA000]=table_16_2[shi%10];XBYTE[0XB000]=ta ble_16_1[shi/10];} void main(){ uint temp;led_clc();// serial_init();time_init();while(1){ temp=keyscan();if(temp==10)fla g=1;TIME_SET();//XBYTE[0X8000]=table_16_1[temp];//time_display();TIME_DIS();} } void time()interrupt 2 { uchar m;TH0=(65536-46080)/256;TL0=(65536-46080)%256;m++;if(m==20){ m=0;count++;tim++;} } void serial()interrupt 4 { if(RI==1){ x=SBUF;RI=0;} put_char(x);delay_1ms(5);}实验心得体会:通过本次实验,让我对单片机实验有了更深的了解,认为这个实验还是比较容易的,没有花太多的时间。

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

单片机系统课程设计报告专业:自动化学生姓名:学号:指导教师:完成日期:2011 年 3 月17 日目录1 设计任务和性能指标 (3)1.1设计任务.............................................................................. 错误!未定义书签。

2 设计方案 (4)2.1任务分析 (4)2.2方案设计 (4)3 系统硬件设计 (5)3.1时钟的电路设计 (5)3.2复位电路设计 (5)3.3灯控电路设计 (5)3.4倒计时电路设计 (6)3.5按键控制电路设计 (7)4 系统软件设计 (8)4.11秒定时 (8)4.2定时程序流程 (8)4.3交通灯的设计流程图 (9)4.4定时器0与中断响应 (10)5 仿真及性能分析 (10)5.1仿真结果图 (11)5.2仿真结果与分析 (12)6 心得体会 (13)参考文献 (14)附录1 系统原理图 (15)附录2 系统PCB图 .................................................................... 错误!未定义书签。

附录3 程序清单 (17)1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图5.1所示。

设东西向为主干道,南北为支干道。

图5.1 交通灯示意图1. 基本要求(1) 主干道处于常允许通行的状态,支干道有车来时才允许通行。

主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

(2) 主、支干道均有车时,两者交替允许通行,主干道每次放行30秒,支干道每次放行20秒,设立30秒、20秒计时、显示电路。

(3) 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。

黄灯亮时,原红灯按1Hz 的频率闪烁。

(4) 要求主支干道通行时间及黄灯亮的时间均可在0~99秒内任意设置。

2. 选做(1) 可设置紧急按钮,在出现紧急情况时可由交警手动实现全路口车辆禁行而行人通行状态,即主干道和支干道均为红灯亮。

(2) 实现绿波带。

所谓‘绿波带’,是指在一定路段,只要按照规定时速,就能一路绿灯畅行无阻。

“绿波带”将根据道路车辆行驶的速度和路口间的距离,自动设置信号灯的点亮时间差,以保证车辆从遇到第一个绿灯开始,只要按照规定速度行驶,之后遇到的信号灯将全是绿灯。

南东2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。

红、黄、绿交替闪亮,倒计数显示时间等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。

2.2方案设计1.硬件方案根据设计的要求可知,系统的硬件原理框图如图5.2所示。

单片机键盘LED 显示三色指示灯图5.2 系统的硬件原理框图单片机可选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB 的FLASH ROM ,设计时无需外接程序存储器,为设计和调试带来极大的方便。

南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。

键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO 口不够用时,可以考虑扩展8255或8155满足系统的要求。

2. 软件方案根据设计要求,程序框图如图5.3所示。

软件可由汇编语言完成,也可由C 语言完成。

软件设计可以分为以下几个功能模块: 主程序:初始化及键盘监控。

计时程序模块:为定时器的中断服务子程序,完成0.1秒(或其他时间)和1秒的时间定时。

显示程序模块:完成12个发光二极管(实际上只需驱动6个)和4个LED 数码管的显示驱动。

键盘扫描程序模块:判断是否有键按下,并求取键号。

主程序流程图3 系统硬件设计3.1时钟电路设计如上图所示,采用内部时钟产生方式,在XTAL1 和XTAL2 两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。

其发出的时钟脉冲直接送入片内定时控制部件。

3.2复位电路设计如上图所示,采用上电+按钮电平复位方式,当按下按钮时,RST 管脚高电平触发。

为保证复位可靠,RC 时间常数应大于两个机器周期,电容取33uf,电阻取200 欧。

3.3 灯控制电路设计如上图所示,交通灯状态显示电路由东西南北四个方向各三个LED 灯组成,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。

通过软件编程,可使路口交通变化情况为:南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30 秒、支干道每次通行时间为20 秒;在绿灯转为红灯时,要求黄灯先亮5 秒钟,才能变换运行车道;黄灯亮时每秒闪亮一次。

3.4 倒计时显示电路设计如上图所示,由两个个共阴极两位数码管来实现倒计时。

由于P0 口输出电流小,需外接上拉电阻,C1、C2 端接到P1 口的P1.0、P1.1、P1.2、P1.3 口用单片机来控制其片选。

3.5 按键控制电路设计如上图所示,开关控制由五个连接到单片机的控制按钮组成。

通过软件编程,按下K3 键电路进入外部中断0 响应,此时,可通过按键K1 和和K0 设置通行时间,每按一次K1 键南北通行时间增加一秒,而按下K0 键东西通行时间增加一秒,此时若按下K4 键东西南北的通行状况返回到初次设的状况(即南北通行),重新返回循环状态;按下按键K2,这是对紧急状况的控制,此时停止计数,东西方向和南北方向都不通行,如果K4 键按下,返回紧急状况的状态,并重启计数;按键K1 按下,控制南北方向通行;按键K0 按下,控制东西方向通行。

4 系统软件设计4.1 1S定时以在系统中要实现准确的1s定时。

采用89C51内部的定时/计数器T0,工作在方式1,定时时间计算公式为:zΣ(216-计数初值)×晶振周期x12或扛(2-6-计数初值)×机器周期其最大定时时间为131ms,离ls还差很远。

因此.把秒计时用硬件和软件计数相结合的方法实现。

即把定时器的定时时间定为125ms,这样计数溢出8次就可得到h.而8次计数可用软件方法实现。

为得到125ms定时,设计数初值为工,则有(216_X)x2=125 000从上式计算得到计数初值。

定时器定时采用中断方式完成.以便于通过中断服务程序进行溢出次数(每次125ms)的累计,计满8次即得到ls计时。

4.2 定时程序流程(1)To定时主程序流程定时主程序的主要功能是进行定时器,计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。

(2)死定时中断服务程序流程中断服务程序的主要功能是进行计时操作。

程序先判断计数溢出是否满了8次。

不满8次表明还没达到最小计时单位秒.中断返回;如满8次则表明已达到最小计时单位秒.程序继续向下执行.进行计时操作。

4.3交通灯的设计流程图4.4定时器0 及中断响应5仿真与性能分析5.1仿真结果图5.2 仿真结果当交通灯上电复位后,数码管显示p。

当按下开始键k1后,南北方向开始亮绿灯,东西方向亮红灯。

显示器开始倒计时。

当按下结束键k2后,显示器重新显示p,并且南北东西的方向全灭。

6心得体会这次单片机课程设计历时三个星期的时间,在这三个星期里我们体验了从设计、画板、编程、焊板到调试的整个过程,让我们小小的体验了一次工程师的感觉。

起初我们先到图书馆和网上查阅了大量有关超声波测距仪的资料,然后开始设计我们自己的方案,为了设计精度要求和抱着学习新知识的想法,我们选择则了从没接触过的DS18B20和LCD1602液晶芯片,虽然我们并没把这两个芯片的应用原理研究的很透彻,但基本的应用编程是可以实现的,说实话整天抱着电脑查资料、看资料是一件很痛苦的事情,一天下来眼都花了,但每学会一点新知识还是挺高兴的,有的时候想要的资料查不到我们就向老师求助,他们都会毫无保留的帮助我们。

设计完电路以后我们便开始画PCB板,这是我们上学期学习的一门课程,趁着这次机会也让我们又将这部分只是复习了一下,并将其应用于实际,终于发现我们所学的知识和实际有点联系了,也对其产生了一点兴趣。

不过我们学得并不全面,只能说是引路用的,所以在实际当中我们还要再加深一下学习,这也是我们获得新知识的一个地方。

画板时需要注意的地方很多,比如封装要根据实际器件的尺寸来设计孔的大小,间距也要符合要求,布线时线宽与线距也有一定讲究,部件摆放要按一定规律等等。

这三周的时间说轻松也不轻松,说紧张却稍带着愉快的气氛,整个过程应该是充实的,时而惊喜,时而烦闷特别是最后调试阶段有一块调通了都会让我们高兴不已,当卡在某处时也确实是让人抓狂。

总之通过这次课设,我们不但复习了过去所学,并且学到了一些新东西。

更重要的是通过这一次切身实践,才使我们真正将理论与实际结合起来,并且遇到了很多实实在在的需要我们亲自解决的问题。

通过解决这些问题,我们处理实际问题的能力有了很大提高,积累了我们的实践经验,以便为以后打下牢固的基础。

而这些才是我们作为一名工科学生最宝贵的财富。

参考文献[1] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009.[2]胡汉才.单片机原理与接口技术[M].北京: 清华大学大学出版社,2004.1-505.[3] 邢国泉. LM35温度传感器的温度特性及其应用[J]. 医疗设备信息.2007,11,25-28.[4] 薛国红,赵修斌,卢艳娥等.零漂与增益控制对量化的影响分析[J].西安:空军工程大学,2008.[5] 马忠梅,刘滨等. 单片机C语言Windows环境编程宝典[M]. 北京: 北京航空航天大学出版社. 2003.附录3 程序清单#include<reg52.h>#define unit unsigned int#define uchar unsigned charuchar codea[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code b[4]={0xfe,0xfd,0xfb,0xf7};uchar code c[4]={0xcc,0xd4,0x78,0xb8};uchar NB=25,DX=30,NBG=25,DXG=15,H=5;uchar i,k=0,cnt=0,j=0;sbit K0=P3^5;sbit K1=P3^6;sbit K4=P3^7;sbit K3=P3^2;sbit K2=P3^3;void delay(uchar t);void key();void display();void settime();void init(void){TMOD=0x01;TH0=0x3c;TL0=0xb0;IT0=1;ET0=1;TR0=1;EA=1;EX0=1;EX1=1;P2=c[k];}void int0(void) interrupt 0{EA=1;P2=0xd8;for(;;){settime();if(K1==0){delay(40);if(K1==0){while(!K1){settime();}NBG++;if(NBG==100)NBG=0;}}if(K0==0){delay(40);if(K0==0){while(!K0){settime();}DXG++;if(DXG==100)DXG=0;}}if(K4==0){delay(40);if(K4==0){while(!K4){}k=0;P2=c[k];NB=NBG,DX=NBG+H; display();EA=1;break;}}}}void int1(void) interrupt 2 {EA=0;TR0=!TR0;for(;;){P2=0xdb,P0=a[0];P1=0xfe;delay(20);P1=0xfd;delay(20);P1=0xfb;delay(20);P1=0xf7;delay(20);if(K4==0){delay(20);EA=1;P2=c[k];TR0=!TR0;break;}}}void time1(void) interrupt 1{TH0=0x3c;TL0=0xb0;cnt++;if(cnt>=20){NB--;DX--;cnt=0;if(NB==0||DX==0){k++;if(k>3)k=0;switch(k){case 0:NB=NBG,DX=NBG+H;j=0;P2=c[k];break; case 1:NB=H;j=1;P2=c[k];break;case 2:NB=DXG+H,DX=DXG;j=0;P2=c[k];break; case 3:DX=H;j=2;P2=c[k];break;}}}}void delay(uchar t){uchar i;do{for(i=0;i<20;i++);;;}while(t--);}void settime(){P1=0xfe,P0=a[(NBG+H)%10]; delay(20);P1=0xfd,P0=a[(NBG+H)/10]; delay(20);P1=0xfb,P0=a[(DXG+H)%10]; delay(20);P1=0xf7,P0=a[(DXG+H)/10]; delay(20);}void key(){if(K1==0){delay(40);if(K1==0){while(!K1){display();}k=0,P2=c[k];cnt=0;NB=NBG,DX=NBG+H; display();}}if(K0==0){delay(40);if(K0==0)while(!K0==0){{display();}k=2,P2=c[k];cnt=0;NB=DXG+H,DX=DXG; display();}}}void display(){P1=0xfe,P0=a[NB%10]; delay(20);P1=0xfd,P0=a[NB/10]; delay(20);P1=0xfb,P0=a[DX%10]; delay(20);P1=0xf7,P0=a[DX/10]; delay(20);}void main(void){init();for(;;){display();key();while(j==1){P2=0xdc;for(i=83;i>0;i--){display();}P2=c[k];for(i=83;i>0;i--){display();}}while(j==2){P2=0xf8;for(i=83;i>0;i--) {display();}P2=c[k];for(i=83;i>0;i--) {display();}}}}。

相关文档
最新文档