单片机课程设计报告书

合集下载

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

单片机课程设计报告-可编程作息时间控制器

单片机课程设计报告-可编程作息时间控制器

单片机原理及应用课程设计报告目录目录 (1)1 设计任务书 (2)1.1 基本设计要求 (2)2 设计阐明 (2)12.1设计内容 (2)1.2设计要求 (2)1.3设备及工作环境 (3)3 系统方案整体设计 (3)3.1 设计思路 (4)3.2 系统整体框图 (4)4 硬件设计 (4)4.1 系统硬件设计 (4)4.1.1 键盘扫描 (5)4.1.2 LCD显示器 (5)4.2 系统工作原理论述 (5)5 软件设计 (5)5.1 分析论证 (5)5.1.1 显示模块 (6)5.1.2 运算模块 (6)5.1.3 校时模块 (6)3.1.4 启动/暂停,复位模块 (6)5.1.5 整体功效 (6)5.2程序清单 (7)6 调试过程及分析 (24)7 设计总结 (25)参考文献 (26)- 1 -单片机原理及应用课程设计报告1 设计任务书1.1 基本设计要求(1)在综合单片机实验箱的硬件结构上编写软件完成设计。

(2)程序的首地址应使目标机可以直接运行,即从0000H开端。

在主程序的开端部分必须设置一个合适的栈底。

程序放置的地址须持续且靠前,不要在中间留下大批的空间地址,以使目标机可以应用较少的硬件资源。

(3)2*16位LCD显示器从左到右分辨显示闹钟时间和现在时间,采用24小时标准计时制。

(4)在4个键控开关上选定2个键分辨作为小时. 分的调校键。

每按一次键,对应的显示值便加1。

分. 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不产生转变)。

(5)软件设计应用片内定时器,采用定时中断结构,应用软件延时法。

2 设计阐明12.1设计内容用ZY15MCU12BD型综合单片机实验箱及串口电路设计实现显示现在时间和闹钟时间并能够调校现在时间和闹钟时间的时钟,还能够实现闹钟的复位功能以及广播和蜂鸣器的响应。

说明设计中包含的内容1.2设计要求(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成- 5 -单片机原理及应用课程设计报告设计。

单片机课程设计报告

单片机课程设计报告

中州大学工程技术学院单片机课程设计说明书课题名称秒表专业机械制造与自动化学生XX 马振杨班级机制一班学号7指导教师沈娣丽完成日期2013年9月25日目录摘要 (1)一.系统设计要求 (2)二.设计思路分析 (2)三.秒表电路原理图设计 (2)3.1系统总电路图 (2)3.2时钟电路设计 (3)3.3 输入模块电路设计 (3)3.4显示模块电路设计 (3)四.系统硬件电路设计 (3)4.1秒表显示模块 (4)4. 2控制器模块单片机的选择 (4)4. 3键盘的选择 (5)五.简易秒表软件系统设计 (6)5.1定时模块 (6)5.2 主程序流程图 (8)六.系统的调试 (8)七.心得体会 (11)八.参考文献 (12)摘要单片机在日用电子产品中的应用日益广泛,单片机控制秒表是基于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低、平安性高使用方便等优点。

秒表是人们日常生活中常常需要用到的一种工具。

本文采用AT89S51单片机从硬件和软件两方面介绍了一款简易的秒表设计过,并对硬件原理图和程序流程图作了简洁的描述。

关键字:单片机AT89C51,LED,秒表,计数器引言:随着单片机技术的不断开展,单片机在日用电子产品中的应用越来越广泛,而本文设计并制作了一款基于AT89C51的3位数码管显示的秒表,其电路简单,软硬件构造模块化,易于实现。

产品和技术革新的日新月异都让人非常惊讶。

在电子科学技术高速开展的今天,高科技产品越来越多的应用在我们的日常生活中,给我们的生活带来了非常大的方便,每时每秒我们都能感受到产品的更新换代。

像平常我们工作所用的电脑、手机和生活所用的电视机,收音机,Mp3等等,这些高科技产品给我们带来了极大的方便,但这要归功于科学技术的高速开展。

一、设计要求⑴硬件设计:根据任务要求,完成单片机最小系统及其扩展设计。

⑵软件设计:根据硬件设计完成显示功能要求,完成控制软件的编写与调试;⑶功能要求:用S1启动秒表和停顿秒表,S2键将秒表归零,按一下S1,即开场定时,在数码管上每秒加1,加到60,归零。

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告实验名称:频率计 指导教师:徐建军 学生信息:鄢立夏(电气 0903,09271061) 闫琛 (电气 0904,09271121)一、 实验题目 6 位数码管显示频率,测量频率的范围为 50HZ—50KHZ 用外 部中断或计数器,可使用 555 波形发生器。

二、 实验电路频率测量电路鄢立本电路图根据实验板的绘制。

三、 实验原理 本实验中采用了测频的方法,使用了 T0、T1 定时计数器,其中 通过控制 T1 作为定时器设定 1S 延时,T1 作为计数器接受脉冲输入。

1S 延时到,关闭 T0、T1 读取 TH0、TL0 并将此两个 8 位数据转化为 6 位十进制数存储进 30H-35H 的位寻址空间内, 然后调用数码管显示函 数,显示 30H-35H 中的数值。

然后对 T0、T1 做下一次计数的初始化 设置,并清零 TH0、TL0。

再进入下一次测频阶段,如此循环,即可夏实现动态测量输入信号的频率并在数码管上进行显示。

四、 程序控制流程图START 关闭T0、T1 停止计数单片机读取 TH0、TL0T0->十六位计数器 初始化 T1->十六位20ms定 时初始化初始化数据存储空 间初始化数据处理 函数开启T0、T1, 开始计数 数据处理完毕并送至 30H~35H?N YP3.4管脚脉冲NT1,50次中断, 定时1秒到?数码管显示 30H~35H内容N显示完 毕?频 率 计 控 制 流 程 图Y设计:鄢立夏、闫琛五、 实测代码 由于我们采用了自己焊接的 51 单片机最小系统为新片烧写程序,然后将新 片安放至实验板上进行调试的,编写软件为 Keil,所以一下包括注释等某些格式 可能和伟福软件有些不同。

望谅解。

Org 0000H Sjmp Main; Org 000BH; Sjmp Timer0_Serv; 判断 100Khz 时溢出时使用 Org 001BH Sjmp Timer1_Serv; Main: Lcall Sys_Init; LCALL Start; Sys_Loop: Ajmp Sys_Loop; while(1);//开始函数 Start: Setb TR0; Setb TR1; Setb ET1; Setb ET0 Setb EA; Ret; //系统初始化函数 Sys_Init: Lcall Timer_Init; //设置定时时间 50*20ms=1s MOV 20H,#50; //保存 T0 的计数值 Mov 21H,#0; Mov 22h,#0; Mov 23H,#0;//100Khz 位 //设置六位数据存储空间; MOV 31H,#0; MOV 32H,#0; MOV 33H,#0; MOV 34H,#0; MOV 35H,#0; MOV 36H,#0; Ret; //定时器/计数器 0、1 初始化函数,T0 作为计数器,T1 作为定时器 Timer_Init: Mov TMOD,#15H; Mov TH0,#00H; Mov TL0,#00H; Mov TH1,#0ECH;定时 10ms Mov TL1,#078H; Ret; //T0 中断服务函数 Timer0_Serv: INC 23H; 十万位处理; Reti; //T1 中断服务函数 Timer1_Serv: MOV R1,#31H;数据起始位 MOV R2,#6; MOV R4,#0FEH; Single_Spark:;单个数码管亮,循环起来MOV A,R4; MOV P0,A; RL A; MOV R4,A; MOV A,@R1; MOV DPTR,#Led_Data; MOVC A,@A+DPTR; MOV P2,A; INC R1; LCALL Delay; DJNZ R2,Single_Spark; //判断 1S 定时是否已到 Djnz 20H,Timer_Go_On; Clr TR0; Clr TR1; Mov 21H,TL0; Mov 22H,TH0; Mov 20H,#100; LCALL Frequence_Show; Mov TH0,#00H; Mov TL0,#00H; Timer_Go_On: Mov TH1,#0B1H;定时 10ms Mov TL1,#0DFH; SETB TR0; SETB TR1; EXIT: Reti; Frequence_Show: MOV R0,#31H MOV R1,#06H ;对上次的内容清零 Clear_Data: MOV @R0,#0 INC R0 DJNZ R1,Clear_Data; //计数器处理函数,封装. Data_Handle: MOV A,23H; MOV B,#0AH; DIV AB; MOV 24H,A ;存储第一位商 MOV A,B;MOV 30H,22H; ANL 30H,#0F0H; ADD A,30H; SWAP A; MOV B,#0AH; DIV AB; MOV 25H,A MOV A,B; SWAP A; ANL 22H,#0FH; ADD A,22H; MOV B,#0AH; DIV AB; MOV 26H,A MOV A,B; MOV 30H,21H; ANL 30H,#0F0H; ADD A,30H; SWAP A; MOV B,#0AH; DIV AB; MOV 27H,A; MOV A,B; SWAP A; ANL 21H,#0FH; ADD A,21H; MOV B,#0AH; DIV AB; MOV 28H,A; MOV 31H,B MOV A,24H; SWAP A; ADD A,25H; MOV B,#0AH; DIV AB; MOV 24H,A MOV A,B; SWAP A; ADD A,26H;;存储第二位商;存储第三位商;存储第四位商;存储第五位商 ;存储十进制数个位;存储第一位商MOV B,#0AH; DIV AB; MOV 25H,A; MOV A,B; SWAP A; ADD A,27H; MOV B,#0AH ; DIV AB ; MOV 26H,A; MOV A,B; SWAP A; ADD A,28H; MOV B,#0AH; DIV AB; MOV 27H,A; MOV 32H,B; MOV A,24H; SWAP A; ADD A,25H; MOV B,#0AH; DIV AB ; MOV 24H,A ; MOV A,B ; SWAP A; ADD A,26H; MOV B,#0AH; DIV AB ; MOV 25H,A; MOV A,B; SWAP A ; ADD A,27H; MOV B,#0AH; DIV AB; MOV 26H,A; MOV 33H,B; MOV A,24H; SWAP A; ADD A,25H;;存储第二位商;存储第三位商;存储第四位商 ;存储十进制数十位;存储第一位商;存储第二位商;存储第三位商 ;存储十进制数百位MOV B,#0AH; DIV AB; MOV 24H,A ; MOV A,B; SWAP A; ADD A,26H; MOV B,#0AH; DIV AB; MOV 25H,A MOV 34H,B MOV A,24H; SWAP A; ADD A,25H; MOV B,#0AH; DIV AB; MOV 35H,B; MOV 36H,A;;存储第一位商;存储第二位商 ;存储十进制数千位;存储十进制数万位 ;存储十进制数十万位MOV R0,#6; MOV R1,#31H; MOV R2,#0EFH MOV DPTR,#Led_Data;RET; Delay: MOV 40H,#0F0H; Delay_Loop: NOP; DJNZ 40H,Delay_Loop; RET; Led_Data: DB 3FH,06H,5BH,4FH,66H,6DH,0FDH,07H,0FFH,0EFH; END六、 实验问题总结及解决方法 1、 在调试数码管显示子程序时,数码管显示太暗。

万年历单片机课程设计报告

万年历单片机课程设计报告

1 任务和设计要求首先要学会安装软件, 要熟悉会使用。

2 系统设计系统框图3 硬件设计3.1 电路原理图3.2 主要单元电路3.3 元件清单4 软件设计4.1 程序流程图4.2程序清单TIME_WEEK DATA 52H TIME_YEAR DATA 5DH TIME_MONTH DATA 5EH TIME_DATA DATA 5FH YEARH DATA 36HYEAR DATA 35H MONTH DATA 34HDAY DATA 33HHOUR DATA 32H MINUTE DATA 31HSEC DATA 30HAAA BIT P3.0BBB BIT P3.1AA BIT P3.3BB BIT P3.4CC BIT P3.5BL BIT P3.2BZ1 BIT 21H.0 TIMES DATA 20H COM DATA P1 ORG 0000HLJMP START ORG 0003H RETIORG 000BH LJMP INTT0ORG 0013H RETIORG 001BH RETIORG 0023H RETISTART:MOV R0,#30H MOV R7,#9 CLEETE:MOV @R0,#00H INC R0DJNZ R7,CLEETE MOV TIMES,#00H MOV TMOD,#01H MOV TL0,#0C0H MOV TH0,#63H MOV SEC,#0MOV MINUTE,#0H MOV HOUR,#0H MOV DAY,#01H MOV MONTH,#01H MOV YEAR,#01H MOV YEARH,#20H SETB EASETB ET0SETB TR0MOV R4,#19 START1:CALL DISPJNB AA,SETMM1 JMP START1 SETMM1:CALL SETMMJMP START1 SETMM:CALL DISPCALL DISPJB AA,SETMM0 SETMM2:JNB AA,SETMM3CLR ET0CLR TR0MOV SEC,#0MOV TIMES,#01H MOV R0,#MINUTE SETMM4:NOPINC22:CALL OFFLCALL INC11CALL DISPJB AA,INC22CALL DISPJB AA,INC22INC R0MOV A,TIMESRL AMOV TIMES,AJNB TIMES.5, SETMM4 SETMM12:JNB AA , SETMM11 SETMM0:SETB TR0SETB ET0RETSETMM11:CALL DISPJMP SETMM12 SETMM3:CALL DISPJMP SETMM2INC11:MOV R3,#40INC111:MOV A,@R0JB BB,INC17ADD A,#1DA ACALL INC000INC13:JNB BB , INC14INC17:MOV @R0,A CALL DISP DJNZ R3,INC111RETINC14:CALL DISP JMP INC13 OFFL:MOV 22H,@R0 MOV R6,#10 OFF1:MOV R7,#10OFF2:MOV @ R0, # 0AAH CALL DISPDJNZ R7 , OFF2DJNZ R6 , OFF1MOV @ R0 , 22H RETINC000:JB TIMES.0, INC001 JB TIMES.1, INC002 JB TIMES.2, INC003 JB TIMES.3, INC004 JB TIMES.4, INC005 JMP INCOUTINC005:CJNE A, #99H, INCOUT MOV A,#00H JMP INCOUT INC004:CJNE A, # 13H, INCOUT MOV A,#01H JMP INCOUTINC003:CJNE A,# 32H ,INCOUT MOV A,#01H JMP INCOUT INC002:CJNE A,#24H,INCOUT MOV A,#00H JMP INCOUT INC001:CJNE A,# 60H , INCOUT MOV A,#00H INCOUT:RETINTT0:PUSH ACC PUSH PSWORL TL0,#0C0HMOV TH0,#63H DJNZ R4 , CLKE111 JMP LOOP11 CLKE111:JMP CLKELOOP11:MOV R4,#19H MOV A,SECADD A,#1DA AMOV SEC,A CJNE A, #60H , CLKE99 MOV SEC,#0 MOV A,MINUTE ADD A,#1DA AMOV MINUTE,A CLK0:CJNE A, # 60H, CLKE MOV MINUTE,#0 MOV A,HOURADD A,#1DA AMOV HOUR,ACJNE A, # 24H, CLKE MOV HOUR,#0 MOV A,DAYADD A,#1DA AMOV DAY,A MOV A,MONTH INC AMOVC A, @A + PC SJMP CLK1DB 31H,28H,31H DB 30H,31H,30H DB 31H,31H,30H DB 00H,00H,00H DB 00H,00H,00H DB 31H,30H,31H CLK1:CLR CSUBB A,DAYJNC CLKEMOV A,MONTH CJNE A,#2,CLK3MOV A,YEAR ANL A,#13HJNB ACC.4,CLK2ADD A,#2CLK2:ANL A,#3JNZ CLK3MOV A,DAY XRL A,#29HJZ CLKECLK3:MOV DAY,#1 MOV A,MONTH ADD A,#1DA AMOV MONTH,A CJNE A,#13H,CLKE MOV MONTH,#1 MOV A,YEAR ADD A,#1DA AMOV YEAR,A CLKE99:CALL CONVERT CLKE:POP PSW POP ACC RETIDISP:PUSH PSW PUSH ACC MOV 23H,R0 DISP99:MOV R1,#40H MOV R0,#30H MOV R2,#9 DISP1:MOV A,@R0ANL A,#0FHMOV @R1,AMOV A,@R0SWAP AANL A,#0FHINC R1MOV @R1,ADJNZ R2,DISP2 CALL DISPLAYMOV R0,23HPOP ACCPOP PSWRETDISP2:INC R1INC R0JMP DISP1 DISPLAY:MOV R1,#40HMOV R5,#19SETB AAAPLAY:SETB BBBNOPCLR BBBCLR AAAMOV A,@R1MOV DPTR,#TAB MOVC A,@A+DPTR MOV COM,ACALL DL1MSMOV COM,#0FFHDJNZ R5,PLAY1CLR BBBSETB AAARETPLAY1:INC R1JMP PLAYTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABH DL1MS:MOV 25H,R7MOV 24H,R6MOV R7,#20DS1:MOV R6,#10DJNZ R6,$DJNZ R7,DS1MOV R7,25HMOV R6,24HRETSTART_YEAR EQU 01 CONVERT_YEAR DATA 5CH CONVERT_MONTH DATA 38H CONVERT_DATE DATA 37H TEMP_BYTE1 DATA 57H TEMP_BYTE2 DATA 58H TEMP_BYTE3 DATA 59H TEMP_BYTE4 DATA 5AH TEMP_BYTE5 DATA 5BH CONVERT:MOV A, YEARMOV TIME_YEAR,AMOV A,MONTHMOV TIME_MONTH,AMOV A,DAYMOV TIME_DATA,AMOV A,TIME_YEARMOV B,#16DIV ABMOV CONVERT_YEAR,B MOV B,#10MUL ABADD A,CONVERT_YEARMOV CONVERT_YEAR,AMOV A,TIME_MONTHJNB ACC.4,CON_02CLR ACC.4ADD A,#10CON_02:MOV CONVERT_MONTH,A MOV A,TIME_DATAMOV B,#16DIV ABMOV CONVERT_DATE,BMOV B,#10MUL ABADD A,CONVERT_DATEMOV CONVERT_DATE,AMOV DPTR,#MONTH_DATAMOV A,CONVERT_YEARCON_06:CLR CSUBB A,#START_YEARMOV B,#3MUL ABADD A,DPLMOV DPL,AMOV A,BADDC A,DPHMOV DPH,AMOV A, #2MOVC A, @A+DPTRCLR ACC.7MOV B, #32DIV ABMOV TEMP_BYTE1,AMOV TEMP_BYTE2,BMOV TEMP_BYTE3,#0MOV A,CONVERT_MONTH CJNE A,#10,CON_08CON_08:JC CON_09MOV TEMP_BYTE3,#1CON_09:MOV A,CONVERT_YEAR ANL A,#03HJNZ CON_10MOV A,CONVERT_MONTH LCALL GET_RUN_DAYS_LOW SJMP CON_12CON_10:MOV A,CONVERT_MONTH LCALL GET_DAYS_LOWCON_12:MOV B,CONVERT_DATE DEC BADD A,BMOV TEMP_BYTE4,AJNC CON_14INC TEMP_BYTE3CON_14:MOV A,TEMP_BYTE1 LCALL GET_DAYS_LOWDEC AADD A,TEMP_BYTE2MOV TEMP_BYTE5,AMOV A,CONVERT_MONTHCJNE A,TEMP_BYTE1,CON_20 MOV A,CONVERT_DATECJNE A,TEMP_BYTE2,CON_20 CON_20:JC CON_22LJMP CON_60CON_22:MOV A,CONVERT_YEAR JNZ CON_24MOV A,#100CON_24:DEC AMOV CONVERT_YEAR,A MOV A,DPLCLR CSUBB A,#3MOV DPL,AJNC CON_26DEC DPHCON_26:MOV A,TEMP_BYTE5 CLR CSUBB A,TEMP_BYTE4MOV TEMP_BYTE3,AMOV CONVERT_MONTH,#12 CLR F0CLR AMOVC A,@A+DPTRANL A,#0F0HSWAP A;MOV TEMP_BYTE4,AJZ CON_30MOV A, #2MOVC A , @A+DPTRMOV C, ACC.7MOV A, #1MOVC A, @A+DPTRRLC ASJMP CON_34CON_30:MOV A, #1MOVC A, @A+DPTRCON_34:MOV TEMP_BYTE5, A CON_40:MOV A, TEMP_BYTE5 RRC AMOV TEMP_BYTE5, AJC CON_42MOV B, #29SJMP CON_44CON_42:MOV B, #30CON_44:MOV A, TEMP_BYTE3 CLR CSUBB A, BJZ CON_46JNC CON_50CPL AINC ACON_46: INC AMOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_DATE, A MOV A, CONVERT_MONTH MOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_MONTH, A MOV A, CONVERT_YEAR MOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_YEAR, A CALL WEEKRETCON_50:MOV TEMP_BYTE3, A JB F0, CON_52DEC CONVERT_MONTHCON_52:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE4, CON_54CPL F0CON_54:SJMP CON_40CON_60:MOV A, TEMP_BYTE4CLR CSUBB A, TEMP_BYTE5MOV TEMP_BYTE4, AJNC CON_62DEC TEMP_BYTE3CON_62:MOV CONVERT_MONTH, #1 CLR AMOVC A, @A+DPTRMOV TEMP_BYTE5, AANL A, #0F0HSWAP AXCH A, TEMP_BYTE5CLR F0ANL A, #0FHMOV TEMP_BYTE1, AMOV A, #1MOVC A, @A+DPTRMOV TEMP_BYTE2, AANL A, #0F0HORL A, TEMP_BYTE1SWAP AMOV TEMP_BYTE1, AMOV A, #2MOVC A, @A+DPTRMOV C, ACC.7MOV A, TEMP_BYTE2ANL A, # 0FHSWAP AMOV ACC.3, CMOV TEMP_BYTE2, ACON_70:MOV A, TEMP_BYTE2 RLC AMOV TEMP_BYTE2, AMOV A, TEMP_BYTE1RLC AMOV TEMP_BYTE1, AJC CON_72MOV B, #29SJMP CON_74CON_72:MOV B, #30CON_74:MOV A, TEMP_BYTE4CLR CSUBB A,BJNC CON_78MOV B, AMOV A, TEMP_BYTE3JZ CON_76DEC TEMP_BYTE3MOV TEMP_BYTE4, BSJMP CON_80CON_76:MOV A, TEMP_BYTE4 LJMP CON_46CON_78:MOV TEMP_BYTE4, ACON_80:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE5, CON_82 CPL F0JNB F0, CON_82SJMP CON_70CON_82:INC CONVERT_MONTH SJMP CON_70GET_DAYS_LOW:MOVC A, @A+PCRETDB 0,31,59,90,120,151,181,212,243,17,48,78 GET_RUN_DAYS_LOW:MOVC A, @A+PCRETDB 0,31,60,91,121,152,182,213,244,18,49,79 MONTH_DATA:DB 04DH,04AH,0B8H;2001DB 00DH,04AH,04CH;2002DB 00DH,0A5H,041H;2003DB 025H,0AAH,0B6H;2004DB 005H,06AH,049H;2005DB 07AH,0ADH,0BDH;2006DB 002H,05DH,052H;2007DB 009H,02DH,047H;2008DB 05CH,095H,0BAH;2009DB 00AH,095H,04EH;2010DB 00BH,04AH,043H;2011DB 04BH,055H,037H;2012 DB 00AH,0D5H,04AH;2013 DB 095H,05AH,0BFH;2014 DB 004H,0BAH,053H;2015 DB 00AH,05BH,048H;2016 DB 065H,02BH,0BCH;2017 DB 005H,02BH,050H;2018 DB 00AH,093H,045H;2019 DB 047H,04AH,0B9H;2020 DB 006H,0AAH,04CH;2021 DB 00AH,0D5H,041H;2022 DB 024H,0DAH,0B6H;2023 DB 004H,0B6H,04AH;2024 DB 069H,057H,03DH;2025 DB 00AH,04EH,051H;2026 DB 00DH,026H,046H;2027 DB 05EH,093H,03AH;2028 DB 00DH,053H,04DH;2029 DB 005H,0AAH,043H;2030 DB 036H,0B5H,037H;2031 DB 009H,06DH,04BH;2032 DB 0B4H,0AEH,0BFH;2033DB 004H,0ADH,053H;2034 DB 00AH,04DH,048H;2035 DB 06DH,025H,0BCH;2036 DB 00DH,025H,04FH;2037 DB 00DH,052H,044H;2038 DB 05DH,0AAH,038H;2039 DB 00BH,05AH,04CH;2040 DB 005H,06DH,041H;2041 DB 024H,0ADH,0B6H;2042 DB 004H,09BH,04AH;2043 DB 07AH,04BH,0BEH;2044 DB 00AH,04BH,051H;2045 DB 00AH,0A5H,046H;2046 DB 05BH,052H,0BAH;2047 DB 006H,0D2H,04EH;2048 DB 00AH,0DAH,042H;2049 DB 035H,05BH,037H;2050 DB 009H,037H,04BH;2051 DB 084H,097H,0C1H;2052 DB 004H,097H,053H;2053 DB 006H,04BH,048H;2054 DB 066H,0A5H,03CH;2055DB 00EH,0A5H,04FH;2056 DB 006H,0B2H,044H;2057 DB 04AH,0B6H,038H;2058 DB 00AH,0AEH,04CH;2059 DB 009H,02EH,042H;2060 DB 03CH,097H,035H;2061 DB 00CH,096H,049H;2062 DB 07DH,04AH,0BDH;2063 DB 00DH,04AH,051H;2064 DB 00DH,0A5H,045H;2065 DB 055H,0AAH,0BAH;2066 DB 005H,06AH,04EH;2067 DB 00AH,06DH,043H;2068 DB 045H,02EH,0B7H;2069 DB 005H ,02DH, 04BH; 2070 DB 08AH, 095H, 0BFH; 2071 DB 00AH, 095H, 053H; 2072 DB 00BH, 04AH, 047H; 2073 DB 06BH, 055H, 03BH; 2074 DB 00AH, 0D5H, 04FH; 2075 DB 005H, 05AH, 045H; 2076 DB 04AH, 05DH, 038H; 2077DB 00AH, 05BH, 04CH; 2078 DB 005H, 02BH, 042H; 2079 DB 03AH, 093H, 0B6H; 2080 DB 006H, 093H, 049H; 2081 DB 077H, 029H, 0BDH; 2082 DB 006H, 0AAH, 051H; 2083 DB 00AH, 0D5H, 046H; 2084 DB 054H, 0DAH, 0BAH; 2085 DB 004H, 0B6H, 04EH; 2086 DB 00AH, 057H, 043H; 2087 DB 045H, 027H, 038H; 2088 DB 00DH, 026H, 04AH; 2089 DB 08EH, 093H, 03EH; 2090 DB 00DH, 052H, 052H; 2091 DB 00DH, 0AAH, 047H; 2092 DB 066H, 0B5H, 03BH; 2093 DB 005H, 06DH, 04FH; 2094 DB 004H, 0AEH, 045H; 2095 DB 04AH, 04EH, 0B9H; 2096 DB 00AH, 04DH, 04CH; 2097 DB 00DH, 015H, 041H; 2098 DB 02DH, 092H, 0B5H; 2090DB 00DH, 053H, 049H; 2100 TIME_WEEK1 DATA 52H WEEK:MOV A, TIME_YEARMOV B, #16DIV ABMOV TEMP_BYTE1, BMOV B, #10MUL ABADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHJB ACC.7, GETW02MOV A, #100ADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHCLR ACC.7GETW02: JNB ACC.4, GETW04 ADD A , #10CLR ACC.4GETW04: MOV TEMP_BYTE2,AMOV A, TIME_DATAMOV B, #16DIV ABMOV TEMP_BYTE3, BMOV B, #10MUL ABADD A, TEMP_BYTE3MOV TEMP_BYTE3, AMOV A ,TEMP_BYTE1ANL A, #03HJNZ GETW10MOV A, TEMP_BYTE2CJNE A, #3,GETW06GETW06: JNC GETW10DEC TEMP_BYTE3GETW10: MOV A,TEMP_BYTE2 LCALL GET_CORRECTADD A, TEMP_BYTE1MOV B, #7DIV ABMOV A, TEMP_BYTE1ANL A, #0FCHRR ARR AADD A, BADD A, TEMP_BYTE3 MOV B, #7DIV ABMOV A, BCJNE A, #0,OUTOUT MOV B, #8 OUTOUT:MOV TIME_WEEK, B RETGET_CORRECT: MOVC A, @A+PC RETDB 0,3,3,6,1,4,6,2,5,0,3,5 END5 系统仿真及调试6 仿真结果及分析上图为运行时的显示, 左边两个数码管显示器显示的是年、月、日, 中间的显示的是时、分、秒, 右边显示的是农历日期以及星期。

单片机万年历课程设计报告

单片机万年历课程设计报告

单片机万年历课程设计报告一、课程设计目标本课程设计旨在帮助学生掌握单片机应用基础知识,学习并完成万年历电路的设计和代码编写。

通过这个实践,学生将会深入理解单片机在实际生活中的应用,同时提升自己的程序设计和解决问题的能力。

二、课程设计内容1. 万年历电路的原理和设计本次课程设计要求学生完成一个万年历电路的设计,包括硬件电路和程序设计。

在电路设计中,学生需要考虑到显示器、时钟模块、日期模块和温湿度传感器等部分的连接和调试。

在程序设计方面,学生需要实现万年历的功能,包括显示当前日期和时间、自动确定闰年、节假日提示等。

2. 单片机基本原理和应用实践在万年历电路设计之前,本课程将会对单片机基本原理进行介绍,包括单片机内部结构、芯片选型和I/O口控制等。

另外,还将介绍单片机在各种应用场景中的应用实践,如遥控、电脑控制、机器人和智能家居等。

3. 问题解决和困难克服在学生完成万年历电路设计的过程中,难免会遇到各种问题和困难。

本课程将对学生进行相关的实用技巧和方法讲解,帮助他们解决问题和克服难关。

三、课程设计流程1. 单片机基础知识介绍(2学时)讲解单片机内部结构及其原理,并介绍单片机应用实践2. 万年历电路设计(12学时)对万年历的硬件和软件进行介绍,包括连接显示器和外设、编写程序等3. 问题解决(2学时)介绍学生应对问题的技巧和方法,并帮助他们克服电路设计中的问题和难点四、课程设计评价标准1. 设计成果设计成果的好坏是课程设计的重要衡量标准之一,包括电路的设计完整性、软件功能实现等方面。

2. 实践能力课程设计是一种实践性强的学习形式,学生需要通过实践来掌握知识,因此他们的实践能力成为衡量标准之一。

3. 团队合作在课程设计的过程中,学生要协同工作,完成一个大型的项目,因此团队合作能力是衡量标准之一。

4. 学习的态度学习态度是衡量标准之一,包括学生在课程设计中的主动性、积极性和责任感等方面。

五、总结通过这个万年历课程设计,学生不仅学会了单片机应用的基础知识,还掌握了实际项目开发的方法和技巧。

单片机原理及应用课程设计报告

单片机原理及应用课程设计报告
培养实践能力和创新思维
课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看

单片机课程设计

单片机课程设计

单片机课程设计课程设计任务书1.设计目的:本设计包括确定控制任务、系统总体方案设计、硬件系统设计、软件程序的设计等,以便使学生掌握有关单片机控制的设计思想和设计方法。

为学生今后从事单片机控制系统开发工作打下基础。

研究proteus仿真软件实现电路的仿真。

2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论,熟悉掌握单片机的编程方法,用单片机AT89S51实现十字路通信号灯的控制,完成系统的软硬件设计及调试。

具体要求如下:1、正常情况下交通信号灯的控制时序给定。

南北绿灯、黄灯、红灯分别用P1.0,P1.1,P1.2控制,东西绿黄红分别用P1.3,P1.4,P1.5控制。

2、设定东西方向、南北方向紧急切换按钮各一个,当紧急按钮按下时,相应方向紧急切换为绿灯,以便特种车辆通行3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:1.根据题目要求的目标,经由进程查阅有关材料,确定体系设计方案,并设计其硬件电路图。

2.画出电路原理图,分析主要模块的功能及他们之间的数据传输和控制干系。

3.用Proteus软件绘制硬件电路图并仿真。

4.软件设计包括流程图、用汇编语言或C语言对软件进行编译,并能通过调试。

课程设计任务书4.主要参考文献:XXX.19942.XXX.单片机原理及接口技术(第3版).XXX.20 5.设计成果形式及要求:1.硬件电路图2.软件流程图和步伐清单3.编写课程设计报告。

6.工作计划及进度:2015.6月1日~ 6月3日查找材料,确定方案6月4日~ 6月6日设计硬件电路,绘制电路原理图6月7日~ 6月10日软件设计,并调试经由进程6月11日~6月12日编写课程设计报告,答辩或成就考核XXX系主任审查意见:签字:年月日XXX课程设计仿单目录一引言1.1交通灯的研究意义进入20世纪80年代后期,交通问题成为困扰世界各国的普遍性难题,随着汽车的数量的不断增加和城市化进程的不断加快,城市交通现象逐渐变得拥挤和阻塞,由此引起的交通事故、噪声和大气污染等社会问题己经日益严重。

单片机课程设计报告

单片机课程设计报告

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

2. 学生能掌握单片机编程的基本语法,如指令系统、寄存器等。

3. 学生能了解并运用单片机在现实生活中的应用,如智能家居、机器人控制等。

技能目标:1. 学生具备使用开发板进行单片机程序编写、调试的能力。

2. 学生能通过小组合作,设计并实现简单的单片机控制系统,培养动手实践能力。

3. 学生能运用所学知识解决实际问题,具备一定的创新能力和问题解决能力。

情感态度价值观目标:1. 学生通过单片机课程学习,培养对电子技术的兴趣和热情,增强学习动力。

2. 学生在学习过程中,养成团队协作、沟通交流的良好习惯,增强集体荣誉感。

3. 学生了解单片机在我国科技发展中的重要性,培养国家使命感和社会责任感。

课程性质分析:本课程为单片机课程设计,旨在让学生通过实践操作,掌握单片机的基本原理和编程技术,提高解决实际问题的能力。

学生特点分析:本年级学生具备一定的电子技术基础知识,对单片机有一定了解,但编程能力和实践操作经验有限。

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

2. 采用项目驱动教学法,引导学生主动探究、解决问题。

3. 培养学生的团队协作能力,提高沟通表达水平。

4. 结合生活实际,激发学生学习兴趣,培养创新思维。

二、教学内容根据课程目标,本章节教学内容分为以下三个部分:1. 单片机基础理论- 理解单片机的概念、发展历程及应用领域。

- 掌握单片机的硬件结构、工作原理及性能指标。

- 学习单片机的指令系统、寄存器、I/O口编程等基本知识。

教学内容对应教材章节:第一章 单片机概述、第二章 单片机硬件结构及工作原理。

2. 单片机编程与调试- 学习单片机编程语言(如C语言、汇编语言)及开发环境。

- 掌握单片机程序编写、调试方法,了解程序下载、运行过程。

- 学习中断、定时器、串行通信等单片机功能模块的使用。

教学内容对应教材章节:第三章 单片机编程语言、第四章 单片机编程与调试。

单片机课程设计报告书---多路防盗报警电路的设计

单片机课程设计报告书---多路防盗报警电路的设计

课程设计报告书---多路防盗报警电路的设计课程设计任务书一、目的任务单片机原理与接口技术课程设计是一个实践教学环节,也是学生练的重要环节,是对学生的知识、能力和素质的一次培养训练和检验。

通过课程设计,使学生进一步巩固所学理论知识,并利用所学知识解决设计中的一些基本问题,培养和提高学生设计、识图、绘图,以及查阅、使用有关技术资料的能力。

本次课程设计,学生通过查阅资料、接口设计、程序设计、安装调试等环节,完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用。

二、设计内容1、主要内容(1)熟悉设计任务书,分析设计要求,借阅参考资料。

(2)在计算机上设计硬件原理图。

(3)设计软件框图、流程图编写软件程序、调试程序(4)用仿真器对所做的系统进行仿真,修改调试程序等;(5)加载程序到实验箱,调试、检查编程效果(6)撰写设计报告,绘图等。

三、设计要求1、理解设计任务书,原始设计要求。

2、掌握以下设计内容及方法:画出硬件电路原理图,确定各元件参数,确定软件流程,编写程序,调试程序,最后撰写设计报告,验收考核。

4、有勤于思考、刻苦钻研的学习精神和严肃认真、一丝不苟、精益求精的学习态度。

对有抄袭他人设计图纸(课程设计报告书)或找他人代编设计程序、等行为的弄虚作假者一律按不及格记成绩,并根据学校有关规定给予处理。

5、敢于创新,勇于实践,注意培养创新意识和工程意识。

6、扎实掌握课程的基本理论和基本知识,概念清楚,设计计算正确实验数据可靠,绘图符合标准,课程设计报告书撰写规范。

7、在设计周内完成所规定的设计任务,提交《课程设计报告书》一份。

报告书装订顺序:1)模板封皮2)任务书3)本课程设计要求4)设计报告a.系统总框图及系统工作原理。

b.系统的硬件电路连接图,电路的原理。

c.软件设计流程及其说明。

d.电路设计,软件编程、调试中遇到的问题及分析解决方法。

e.实验结果及其分析。

f.体会。

四、成绩评定1、考核方式:考查2、成绩评定:平时考勤20%,小组自评20%,调试结果验收30%,设计报告书占30%。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告导言随着科技的不断进步和发展,单片机技术在各个领域中的应用日益广泛。

作为电子工程的重要组成部分,单片机课程的设计也具有重要意义。

本报告将分享我在单片机课程设计中的学习和实践经验,并对所设计的项目进行详细分析和讨论,以期对相关领域的学习者提供参考和启发。

一、课程设计背景介绍单片机课程设计是电子工程相关专业学生的必修课程之一。

它旨在培养学生的实际应用能力、创新思维和问题解决能力。

在本次设计中,我选择了一个智能家居控制系统作为课程设计的主题。

通过设计和实现该系统,我将掌握单片机的硬件连接和软件编程,并在实践中进一步理解和应用相关知识。

二、系统设计1. 系统概述智能家居控制系统是一种可以通过手机或者其他设备进行远程控制的家居系统。

该系统可以实现对家中电器、照明、安防等设备的远程控制和自动化管理。

通过单片机控制芯片、无线通信模块和相应的传感器,可以实现对家居环境的监测和控制。

2. 硬件设计系统硬件设计主要包括单片机控制芯片的选择、传感器的选用和连接、通信模块的设置等。

在本设计中,我选择了一款常用的单片机控制芯片,并添加了温湿度传感器、光照传感器和人体红外传感器。

通过这些传感器,系统可以实时监测室内温度、湿度、光强度以及人体动静情况,并根据设置的规则进行相应的控制。

3. 软件设计系统软件设计主要包括单片机的编程、手机APP的开发和服务器的搭建等。

在本设计中,我使用C语言编写了单片机的程序,并通过串口通信与传感器和通信模块进行数据交互。

同时,我还使用Android开发平台进行了手机APP的开发,用户可以通过APP与家居控制系统进行交互和控制。

为了实现远程控制和数据传输,我搭建了一台服务器,并编写了相应的脚本和接口。

三、系统实现和测试1. 硬件连接和调试在硬件设计完成后,我进行了各个部件的连接和调试。

通过仔细查阅硬件连接图和相应的接口说明,我按照规定的步骤进行了连接,并通过测试仪器对各个部件的工作状态进行了检查和调试。

单片机原理课程设计

单片机原理课程设计

单片机原理课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握其内部结构及工作流程;2. 学会使用单片机编程语言进行程序设计,掌握基本的编程技巧;3. 了解单片机在现实生活中的应用,理解其功能及作用。

技能目标:1. 能够运用单片机进行简单的电路控制,具备实际操作能力;2. 培养学生动手实践、团队协作和解决问题的能力;3. 提高学生的编程技能,使其能够独立完成简单的单片机程序设计。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣,激发其探索精神;2. 增强学生的创新意识,鼓励其勇于尝试和挑战;3. 培养学生严谨、务实的科学态度,使其认识到技术发展对社会进步的重要性。

课程性质分析:本课程为单片机原理课程设计,注重理论与实践相结合,以培养学生的实际操作能力和创新精神为核心。

学生特点分析:学生为高年级学生,具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践操作经验不足。

教学要求:1. 结合课本内容,深入浅出地讲解单片机原理,注重实际应用;2. 创设实践环节,让学生动手操作,提高其技能水平;3. 激发学生兴趣,引导其探索单片机技术的未来发展。

二、教学内容1. 单片机基础理论:- 单片机的内部结构及工作原理;- 单片机的性能指标与选型;- 单片机指令系统与编程方法。

2. 单片机编程语言:- 汇编语言基础;- C语言在单片机编程中的应用;- 常用编程技巧及案例分析。

3. 单片机硬件接口:- I/O口编程与应用;- 定时器/计数器原理与应用;- 中断系统及其应用。

4. 单片机系统设计与实践:- 系统设计流程与方法;- 简单电路控制设计与实现;- 综合项目设计与展示。

教学大纲安排:第一周:单片机基础理论及内部结构学习;第二周:单片机指令系统与编程方法;第三周:汇编语言及C语言在单片机中的应用;第四周:单片机硬件接口学习;第五周:系统设计流程与方法;第六周:简单电路控制设计与实践;第七周:综合项目设计与展示。

《单片机课程设计》

《单片机课程设计》

《单片机原理及应用课程设计》报告——秒表设计专业:电子信息工程班级:姓名:学号:11201062指导教师:2014年5 月26 日(要求:正文部分一律用小四号字,宋体,1.5倍行距。

一级大标题靠左,加粗。

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

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

2.课程设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。

3.硬件设计3.1 设计思想该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。

定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。

其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

3.2主要元器件介绍1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

2.累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

(1) ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

单片机课程设计报告书---交通灯控制电路设计

单片机课程设计报告书---交通灯控制电路设计

交通灯控制电路设计一、选题背景交通灯控制系统是城市道路管理中极为重要的一个环节,其在加强道路交通管理,减少交通事故的发生,提高道路使用效率等方面具有不可替代的作用。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。

本文将介绍一种用单片机作为系统的主控单元,通过单片机嵌入软件程序来实现交通信号灯的多重控制方式,整个系统以STC89C52RC单片机为核心加以晶振电路、复位电路、电源电路构成系统的控制枢纽,系统状态显示系统采用7段LED数码管进行倒计时的现实,红、黄、绿三色LED灯作为信号指示。

系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口出现的状况。

本系统性能稳定,功能完善,实用性强。

二、方案论证(设计理念)1.主要内容用单片机系统设计十字路口交通灯控制电路,要求东西方向的红、黄、绿灯和南北方向的红、黄、绿灯按照下面的工作时序进行工作,黄灯亮时应为闪烁状态:(1)南北和东西车辆交替进行,各通行时间 24 秒(2)每次绿灯变红灯时,黄灯先闪烁 4 秒,才可以变换运行方向。

(3)十字路口要有数字显示作为时间提示,以倒计时按照时序要求进行显示;具体为:当某方向绿灯亮时,置显示器为某值,然后以每秒减 1 计数方式工作,直至减到数为“0”,十字路口红、绿等交换,一次工作循环结束,而进入下一步某方向的工作循环。

(4)可以手动调整和自动控制,夜间为黄灯闪耀状态2.教学要求选择适当元器件设计单片机外围电路、由单片机系统完成二十四进制倒计时、四进制倒计时、显示及模式切换逻辑控制等;仿真实现各电路功能;搭建、调试电路实现设计要求的功能;掌握复杂数字电路的一般设计方法,具备初步的独立设计能力;掌握对电子线路进行仿真调试的方法和技能;掌握实现电路的实验方法和电路的调试方法。

3.方案设计与选择3.1交通信号控制原理交通信号控制原理是按照一定的控制程序,在交叉路口的每个方向上通过红、黄、绿三色灯循环显示,指挥交通流,在时间上实施隔离。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1页
2. 设计一个 50000 计数器:0-50000 计数,计满后自动清 0,重新计数(在数码管中显示)。 思路:
0~50000 可用 16 位二进制数表示,显示的五位数码管就可以搞定了。故本设计可直接采用可以 重装载的器第 1 种计数方式。然后对 TL1 和 TH1 的内容乘以 256 相加读出到一个 unint 类型的临时变 量,并对整个变量进行相应的二进制---十进制转换:分别除以 10000,所的商就是最高位,然后用 余数除以 1000,所得的商就是次高位,然后用余数处以 100。所得的商就是第三位,然后用余数处以 10。所得的商就是十位,用余数除以 10 取余得到的就是个位,把所有的位放到一个显示数组中。接 着将相应的十进制数进行译码,并通过动态扫描的方法使定义的现实数组在七段数码管上显示出来。 每来一个脉冲其显示的结果加一,直加至 50001,判断到达 50000 成功转化到显示数组中之后,把定 时计数器的高八位和低八位清 0。 程序流程图:
单片机应用技术 课程设计
设计题目:
简易出租车计价器
所在系: 电气与信息工程学院 班级: 电子信息 1005 班
学生姓名:
李泽
学号: 10401200527
指导老师: 完成时间:
刘剑 2012 年 12 月 26 日
一、设计任务: 1.1 外部脉冲自动计数,自动显示。
1.1.1 设计一个 255 计数器:0-255 计数,计满后自动清 0,重新计数(在数码管中 显示)。 1.1.2 设计一个 50000 计数器:0-50000 计数,计满后自动清 0,重新计数(在数码 管中显示)。
}
return;
}
else
//最多能计数到 6553 公里
{
dot_distance = 0;
user_data[0] = temp/10000;
user_data[1] = (temp%10000)/1000;
user_data[2] = (temp%1000)/100;
user_data[3] = (temp%100)/10;
最多可以计数到 65535 公里,保证了程序良好的健壮性。 程序设计流程图:
第3页
三、原理图图纸
第4页
四、仿真效果图
0~255 计数器: 0~50000 计数器 出租车计费系统仿真图:
第5页
五、程序
由于第一个和第二个实验的代码过于简单不在此列出 模拟出租车计费系统的程序: #include <STC89.H> #define R 0.5 //定义车轮的半径 #define pi 5 //定义圆周率 #define Perimeter (2*pi*R) #define uchar unsigned char #define uint unsigned int sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4;
TH0 = 256-255; // 每一次按键模拟 100 米
TL0 = 256-255;
EA = 1;
ET0 = 1;
TR0 = 1; //开始计数
}
void caclulate(void)
{
uint temp = 0;
uint money = 0;
temp = Perimeter*num; 最多能计数到 999.9 公里
二、设计原理及思路 1. 设计一个 255 计数器:0-255 计数,计满后自动清 0,重新计数(在数码管中显示)。
思路: 0~255 可用 8 位二进制数表示,显示的数码管用三位就可以搞定了。故本设计可直接采用可以重
装载的器第三种计数模式。然后对 TL1 的内容读出到一个临时的变量,并对整个变量进行相应的二进 制---十进制转换:首先除以 64H,所的商就是十进制的百位,然后用余数除以 0AH,所得的商就是十 进制数的十位,余数即相应的十进制的个位。将取得的个位,十位和百位放到一个现实数组中。接着 将相应的十进制数进行译码,并通过动态扫描的方法使定义的现实数组在七段数码管上显示出来。每 来一个脉冲其显示的结果加一,直加至 255 然后 T1 重新开始计数。 程序流程图:
return;
}
dot_money = 1;
user_data[4] = money/1000;
user_data[5] = (money%1000)/100;
user_data[6] = (money%100)/10; //在数
码管扫描的时候此处需要加小数点
user_data[7] = money%10;
if(flag) {
caclulate(); flag = 0; } //扫描显示 display();
//存放的是需
}
return; }
void init(void) //系统各寄存器初始化函数
{ TMOD = 0X06;
脉冲计数一次
//工作在计数模式 2,外部负
//TH0 = 256-100;
//TL0 = 256-100;
if(temp > 40948) //超出 6553 元钱 显----
{
dot_money = 0;
user_data[4] = 10;
user_data[5] = 10;
user_data[6] = 10;
user_data[7] = 10;
return;
}
money = (((temp-20)/5)*8) + 50; //money
uchar
code
smg_du[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,
0xFE,0xF6,0X02}; //不带小数点
uchar
code
dot_du[]={0xFD,0x61,0xDB,0xF3,0x67,0xB7,0xBF,0xE1,
0xFF,0xF7,0X03}; //带小数点
//temp 的单位是百米
if(temp < 9999)
{
dot_distance = 1;
user_data[0] = temp/1000;
user_data[1] = (temp%1000)/100;
user_data[2] = (temp%100)/10; //在数码管扫 描的时候此处需要加小数点
计数器每计数 100 个外部脉冲就产生中断,进入中断一次就说明轮子转了一圈,根据中断次数和 汽车轮子的半径就可以计算出车子行进了多远的距离。另外在中断里设置一个标志位,在数据没有被 刷新的时候主程序不对采集到的数据进行分离计算,这样在一个大的系统中,只有这样设计 CPU 才有 多余的空闲的时间去做别的任务。在本程序中,如果标志位没有被刷新则只做显示操作。
}
}
void display(void) {
uchar i;
//数码管扫描字程序
for(i=0;i<8;i++) {
P1=smg_du[user_data[i]]; if(i == 2 || i == 6) {
if(i == 2) {
if(dot_distance) {
P1 = dot_du[user_data[i]]; } } else { if(dot_money) P1 = dot_du[user_data[i]]; } }
user_data[3] = temp%10;

if(temp <= 20) {
dot_money = 1; user_data[4] = 0; user_data[5] = 0; user_data[6] = 5; // 在数码管扫描的时 候此处需要加小数点 user_data[7] = 0; } else { money = (((temp-20)/5)*8) + 50; //money 的单位是角
return;
}
dot_money = 1;
user_data[4] = money/1000;
user_data[5] = (money%1000)/100;
user_data[6] = (money%100)/10; //在数码管
扫描的时候此处需要加小数点 user_data[7] = money%10; return;
uchar user_data[8] = {0,0,0,0,0,0,0,0}; 要显示的数据 void delay_50us(uint t); void init(void); void caclulate(void); void display(void); void main(void) {
init(); while(1) {
void time0() interrupt 1 { flag = 1; num ++;}
第1页
五、心得体会
作为一名电子信息专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要 的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论 知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想 做类似的课程设计就为我们提供了良好的实践平台。
1.2 设计一个出租车计费系统:
起步价为 5 元(2km 以内),2km 后,0.8 元/0.5km;要求每 500m 刷新计费一次,在 8 位数码管中,前 3 位显示数码管显示里程数,后 3 位数码管显示价钱(角,元,十元,百 元)
注:要求首先采用 PROTEUS 完成单片机最小系统的硬件电路设计及仿真;程序 仿真测试通过后,再下载到单片机实训板上执行。
第2页
3.设计一个出租车计费系统: 起步价为 5 元(2km 以内),2km 后,0.8 元/0.5km;要求每 500m 刷新计费一次,在 8 为数码管中,前 4 起步
相关文档
最新文档