单片机课程设计报告
单片机 课程设计报告(完成版)
单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 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.。
单片机课程设计报告电子万年历
单片机课程设计报告电子万年历单片机课程设计报告:电子万年历一、设计简介在本次单片机课程设计中,我们选择了电子万年历作为设计主题。
电子万年历是一种结合了数字电路、单片机技术和实时时钟(RTC)技术的电子产品,它具有显示年份、月份、星期、日、时、分、秒的功能,还可以根据用户的需求进行定时、闹钟、报时等功能。
二、硬件设计我们采用了基于8051内核的单片机作为主控芯片。
该单片机具有丰富的I/O 端口,适于实现各种复杂的输入输出操作。
此外,它还内置了定时器和中断控制器,可以很方便地实现实时时钟功能。
1.显示模块:为了方便用户查看时间信息,我们选用了LCD显示屏作为显示设备。
LCD屏具有功耗低、体积小、显示内容丰富等优点。
2.实时时钟(RTC)模块:我们采用了常用的DS1302芯片作为实时时钟模块。
该芯片可以提供秒、分、时、日、星期、月、年的信息,而且还有可编程的报警功能。
3.按键模块:为了实现人机交互,我们设计了一组按键。
用户可以通过按键来调整时间、设置闹钟等。
4.电源模块:为了保证系统的稳定工作,我们采用了稳定的5V直流电源。
三、软件设计我们采用了C语言编写程序。
程序主要由以下几个部分组成:1.主程序:主程序主要负责读取RTC模块的时间信息,并控制LCD显示屏显示时间。
同时,主程序还要检测按键输入,根据用户的需求进行相应的操作。
2.RTC驱动程序:为了正确地读取和设置DS1302芯片的时间信息,我们编写了相应的驱动程序。
驱动程序包括初始化和读写寄存器两部分。
3.按键处理程序:按键处理程序用于检测按键输入,并根据按键值执行相应的操作。
比如,用户可以通过按键来增加或减少时间,设置闹钟等。
4.LCD显示程序:LCD显示程序用于控制LCD显示屏的显示内容。
在本设计中,我们使用了点阵字符库,将时间信息以字符的形式显示在LCD屏上。
四、测试与验证为了确保我们的电子万年历设计正确无误,我们进行了以下的测试和验证:1.硬件测试:首先,我们对硬件电路进行了测试,确保每个模块都能正常工作。
单片机课程设计实验报告
单片机课程设计实验报告实验名称:频率计 指导教师:徐建军 学生信息:鄢立夏(电气 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. 设计原理2.1 交通灯状态交通灯状态包括红灯、黄灯和绿灯,它们按照固定的时间间隔循环切换。
2.2 按键控制设计中使用一个按键用于手动控制交通灯状态切换。
按下按键时,会切换到下一个灯状态。
3. 硬件方案3.1 单片机本设计采用ATmega328P单片机,它具有足够的GPIO引脚用于控制交通灯的LED。
3.2 LED使用红色、黄色和绿色LED模拟交通灯的三种状态。
3.3 按键一个按键连接到单片机的GPIO引脚,用于手动切换交通灯状态。
4. 软件方案4.1 控制逻辑编写单片机程序,实现交通灯状态的循环切换和按键控制逻辑。
4.2 定时器使用定时器来控制交通灯状态切换的时间间隔。
4.3 中断配置按键的中断,以便在按下按键时进行状态切换。
5. 实施过程连接硬件组件,包括LED、按键和单片机。
编写单片机程序,包括交通灯状态切换逻辑、定时器配置和按键中断处理。
编译并烧录程序到单片机。
运行程序,观察交通灯的状态切换和按键控制是否正常。
6. 测试结果经过测试,交通灯控制系统能够正常运行。
交通灯状态按照预定的时间间隔循环切换,同时按下按键可以手动切换状态,符合设计要求。
7. 问题解决在实施过程中,遇到了一些问题,如硬件连接错误和程序逻辑错误。
通过仔细检查和调试,成功解决了这些问题。
8. 总结本课程设计使我深入了解了单片机编程和控制系统的原理,通过实际动手操作,更好地掌握了这些概念。
设计交通灯控制系统是一个有趣且教育性的项目,我对单片机编程有了更深入的理解,这对我的学习和职业发展都有所帮助。
这个示例课程设计报告可以作为参考,你可以根据具体的课程设计要求和硬件平台的不同来进行调整和扩展。
万年历单片机课程设计报告
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 仿真结果及分析上图为运行时的显示, 左边两个数码管显示器显示的是年、月、日, 中间的显示的是时、分、秒, 右边显示的是农历日期以及星期。
51单片机课程设计报告
51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。
技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。
课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。
学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。
通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。
二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。
2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。
3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。
4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。
单片机电子时钟课程设计实验报告(1)
单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
单片机万年历课程设计报告
单片机万年历课程设计报告一、课程设计目标本课程设计旨在帮助学生掌握单片机应用基础知识,学习并完成万年历电路的设计和代码编写。
通过这个实践,学生将会深入理解单片机在实际生活中的应用,同时提升自己的程序设计和解决问题的能力。
二、课程设计内容1. 万年历电路的原理和设计本次课程设计要求学生完成一个万年历电路的设计,包括硬件电路和程序设计。
在电路设计中,学生需要考虑到显示器、时钟模块、日期模块和温湿度传感器等部分的连接和调试。
在程序设计方面,学生需要实现万年历的功能,包括显示当前日期和时间、自动确定闰年、节假日提示等。
2. 单片机基本原理和应用实践在万年历电路设计之前,本课程将会对单片机基本原理进行介绍,包括单片机内部结构、芯片选型和I/O口控制等。
另外,还将介绍单片机在各种应用场景中的应用实践,如遥控、电脑控制、机器人和智能家居等。
3. 问题解决和困难克服在学生完成万年历电路设计的过程中,难免会遇到各种问题和困难。
本课程将对学生进行相关的实用技巧和方法讲解,帮助他们解决问题和克服难关。
三、课程设计流程1. 单片机基础知识介绍(2学时)讲解单片机内部结构及其原理,并介绍单片机应用实践2. 万年历电路设计(12学时)对万年历的硬件和软件进行介绍,包括连接显示器和外设、编写程序等3. 问题解决(2学时)介绍学生应对问题的技巧和方法,并帮助他们克服电路设计中的问题和难点四、课程设计评价标准1. 设计成果设计成果的好坏是课程设计的重要衡量标准之一,包括电路的设计完整性、软件功能实现等方面。
2. 实践能力课程设计是一种实践性强的学习形式,学生需要通过实践来掌握知识,因此他们的实践能力成为衡量标准之一。
3. 团队合作在课程设计的过程中,学生要协同工作,完成一个大型的项目,因此团队合作能力是衡量标准之一。
4. 学习的态度学习态度是衡量标准之一,包括学生在课程设计中的主动性、积极性和责任感等方面。
五、总结通过这个万年历课程设计,学生不仅学会了单片机应用的基础知识,还掌握了实际项目开发的方法和技巧。
单片机课程设计实验报告+基于单片机的数字时钟+含完整实验代码
单片机课程设计报告基于单片机的数字时钟姓名:班级:学号:一、前言利用实验板上的4个LED数码管,设计带有闹铃、秒表功能的数字时钟。
功能要求:a)计时并显示(LED)。
由于实验板上只有4位数码管,可设计成显示“时分”和显示“分秒”并可切换。
b)时间调整功能。
利用4个独立按钮,实现时钟调整功能。
这4个按钮的功能为工作模式切换按钮(MODE),数字加(INC),数字减(DEC)和数字移位(SHITF)。
c)定闹功能。
利用4个独立按钮设定闹钟时间,时间到以蜂鸣器响、继电器动作作为闹铃。
d)秒表功能。
最小时间单位0.01秒。
二、硬件原理分析1.电源部分电源部份采用两种输入接口(如上图)。
a)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。
b)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。
注:两路电源输入是并连的,因此只选择一路就可以了,以免出问题。
S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。
电路采用两个滤波电容,给板子一个更加稳定的工作电源。
LED为电源的指示灯,通电后LED灯亮。
2.蜂鸣器蜂鸣器分为有源和无源两种,有源即两引脚有一个直流电源就可以长鸣,无源则需要一个1K左右的脉冲才可以蜂鸣,因此对于按键的提示音及报警蜂鸣使用有源来得方便。
有源也可以当无源使用,而无源则不能当有源使用,当然用有源蜂鸣器作音乐发声会失真厉害。
如上图:单片机P15输出高低电平经R21连接三极管B极,控制三极管的导通与截止,从而控制蜂鸣器的工作。
低电平时三极管导通,蜂鸣器得电蜂鸣,高电平时三极管截止,蜂鸣器失电关闭蜂鸣。
电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。
数码管的阴级由P0口经过电阻限流连接。
例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。
单片机实训抢答器课程设计报告实验
上海电机学院课程设计目录第1章绪论 (1)1.1 单片机抢答器的背景 (1)1.2 抢答器的意义 (1)第2章设计概述 (2)2.1 抢答器的工作原理 (2)2.2 设计任务 (2)第3章系统硬件电路设计 (2)3.1 AT89C51单片机硬件电路 (2)3.2原理及电路总框图 (3)第4章系统软件设计 (6)4.1 主程序设计 (6)4.2 子程序设计 (6)4.2.1数码管显示电路 (6)4.2.2键盘扫描段码表 (7)4.3 系统流程图 (7)4.3.1系统主程序流程图 (7)4.3.2系统中断程序流程图 (7)4.4 源程序代码 (9)第5章结束语 (17)5.1 小结 (17)5.2 心得体会 (17)参考文献 (18)第1章绪论1.1 单片机抢答器的背景对于抢答器我们大家来说并不陌生, 他是用于很多竞赛场合。
真正实现先抢先答, 让最先抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气, 选手们都站在同一个起跑线上, 体现了公平公正的原则。
1.2 抢答器的意义本系统采用单片机作为整个控制核心。
控制系统的四个模块为: 显示模块、存储模块、抢答开关, 总开关模块。
该系统通过一个自锁按键输入抢答信号;利用一个数码管来完成显示功能;用按键来让选手进行抢答, 在数码管上显示哪一组先答题的, 从而实现整个抢答过程。
在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中, 为了知道哪一组或哪一位选手先答题, 必须要设计一个系统来完成这个任务。
如果在抢答中, 靠视觉是很难判断出哪组先答题。
利用单片机系统来设计抢答器, 使以上问题得以解决, 即使两组的抢答时间相差几微秒, 也可分辨出哪组优先答题。
相对于类似电视台这类花几万元采购的抢答器系统, 如果个人组织小型的抢答比赛, 这毕竟不合适, 但是依靠单片机的低成本, 低功耗, 可以很好的解决个人用户需要举办小型抢答比赛的需求, 而且精度高, 操作性好。
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
1. 研究背景
•计算器是人们日常生活和工作中常用的工具之一。
•通过设计简易计算器,可以加深学生对51单片机的理解和应用。
2. 目标和需求
•设计一个基于51单片机的简易计算器,能够进行基本的四则运算和开方运算。
•要求计算器能够显示输入和计算结果。
•要求计算器具备简单的界面和操作。
3. 设计方案
•使用51单片机作为计算器的控制核心。
•通过键盘输入数字和运算符,并显示在液晶屏上。
•根据输入的运算符,进行相应的计算,并将结果显示在液晶屏上。
4. 硬件设计
•使用51单片机作为主控芯片。
•连接液晶屏模块,用于显示输入和计算结果。
•连接键盘模块,用于输入数字和运算符。
5. 软件设计
•使用C语言进行编程。
•设计主程序,包括初始化、输入处理和计算输出等功能。
•设计函数,实现基本的四则运算和开方运算。
6. 实验结果
•成功设计并实现了基于51单片机的简易计算器。
•可以正常进行基本的四则运算和开方运算。
•输入和计算结果能够准确显示在液晶屏上。
7. 总结与展望
•通过设计这个简易计算器,学生对51单片机的理解和应用能力有了提高。
•下一步可以考虑增加更多的功能,如科学计算和数据存储等。
以上是本次基于51单片机简易计算器课程设计的报告。
通过这个实验,学生对51单片机的应用能力得到了提升,进一步增强了对计算器的理解。
在未来的课程设计中,可以进一步拓展功能,提升计算器的实用性和功能性。
单片机原理及应用课程设计报告
课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看
51单片机电子时钟课程设计报告
第一部分设计任务和要求1.1单片机课程设计内容 (2)1.2单片机课程设计要求 (2)1.3系统运行流程 (2)第二部分设计方案2.1总体设计方案说明 (2)2.2系统方框图 (3)2.3系统流程图 (3)第三部分主要器材及基本简介3.1主要器材 (4)3.2主要器材简介 (4)第四部分系统硬件设计4.1最小系统 (6)4.2LCD显示电路 (6)4.3键盘输入电路 (7)4.4蜂鸣器和LED灯电路 (7)第五部分仿真电路图与仿真结果 (8)第六部分课程设计总结 (8)第七部分参考文献 (9)附录A 实物图附录B 系统源程序第一部分设计任务和要求1.1单片机课程设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。
1.2单片机课程设计要求1.能实现年、月、日、星期、时、分、秒的显示;2.能实现调时功能;3.能实现12/24小时制切换;4.能实现8 : 00—22 : 00整点报时功能。
1.3系统运行流程程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。
若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。
若没到则循环执行。
计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。
调时闪烁中断服务程序用于被调单元的闪烁显示。
调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。
实现了对时间的设置和修改、LCD显示数值等主要功能。
相关的调整是靠对功能键的判断来实现的。
第二部分设计方案2.1总体设计方案说明1.程序设计及调试根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。
2.硬件焊接及调试根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。
3.后期处理对设计过程进行总结,完成设计报告。
课程设计报告(单片机最小系统及PCB板设计)
GUIZHOU UNIVERSITY课程设计报告设计项目名称单片机最小系统及PCB板设计专业班级电子信息科学与技术081班学生姓名郎子龙学号 080712110069指导教师马光喜李良荣理学院实验时间:2011年7月12日一、课程设计目的1、加强实践教学环节,掌握单片机开发一个实际应用系统的实现技能。
2、锻炼提高将所学的专业知识应用在一个实际的单片机控制应用系统设计与实现的能力。
3、熟悉单片机最小系统的基本工作原理,能利用单片机进行系统开发,为毕业设计做好铺垫。
4、掌握并完成基本PCB板的设计与制作工艺。
二、课程设计任务1、单片机最小系统的构成设计2、单片机最小系统的开发板的软件使用3、单片机应用程序的编辑与汇编软件(Keil)的使用4、单片机应用系统软硬件设计与调试5、Protel99软件的使用学习与PCB板的设计三、课程设计具体内容1、安装开发板(安装之前请先熟悉电烙铁焊接技术)2、利用开发板完成步进电机的设计,掌握开发板的使用方法。
3、用PROTEL99完成PCB板的设计四、单片机最小系统的基本原理及制作1、MCS-51基本结构P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/V PD P3.0/RXD P3.1/TXD P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR P3.7/RD XTAL2XTAL1V SS V CC P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/V PPALE/PROG PSEN P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RST P3.2/INT0GND V CC P1.7P1.6P1.5P1.4P1.3P1.2P1.1/AIN1P1.0/AIN0P3.7注:类似的还有Philips公司的 87LPC64,20引脚8XC748/750/(751),24引脚 8X749(752),28引脚 8XC754,28引脚 等等MCS-51单片机是一款非常经典的单片机,极具代表性,而且资料非常丰富。
单片机课程设计报告
单片机课程设计 报告一、课程目标知识目标:1. 学生能理解单片机的基本概念,掌握其工作原理及结构组成。
2. 学生能掌握单片机编程的基本语法,如指令系统、寄存器等。
3. 学生能了解并运用单片机在现实生活中的应用,如智能家居、机器人控制等。
技能目标:1. 学生具备使用开发板进行单片机程序编写、调试的能力。
2. 学生能通过小组合作,设计并实现简单的单片机控制系统,培养动手实践能力。
3. 学生能运用所学知识解决实际问题,具备一定的创新能力和问题解决能力。
情感态度价值观目标:1. 学生通过单片机课程学习,培养对电子技术的兴趣和热情,增强学习动力。
2. 学生在学习过程中,养成团队协作、沟通交流的良好习惯,增强集体荣誉感。
3. 学生了解单片机在我国科技发展中的重要性,培养国家使命感和社会责任感。
课程性质分析:本课程为单片机课程设计,旨在让学生通过实践操作,掌握单片机的基本原理和编程技术,提高解决实际问题的能力。
学生特点分析:本年级学生具备一定的电子技术基础知识,对单片机有一定了解,但编程能力和实践操作经验有限。
教学要求:1. 注重理论与实践相结合,强化学生的动手实践能力。
2. 采用项目驱动教学法,引导学生主动探究、解决问题。
3. 培养学生的团队协作能力,提高沟通表达水平。
4. 结合生活实际,激发学生学习兴趣,培养创新思维。
二、教学内容根据课程目标,本章节教学内容分为以下三个部分:1. 单片机基础理论- 理解单片机的概念、发展历程及应用领域。
- 掌握单片机的硬件结构、工作原理及性能指标。
- 学习单片机的指令系统、寄存器、I/O口编程等基本知识。
教学内容对应教材章节:第一章 单片机概述、第二章 单片机硬件结构及工作原理。
2. 单片机编程与调试- 学习单片机编程语言(如C语言、汇编语言)及开发环境。
- 掌握单片机程序编写、调试方法,了解程序下载、运行过程。
- 学习中断、定时器、串行通信等单片机功能模块的使用。
教学内容对应教材章节:第三章 单片机编程语言、第四章 单片机编程与调试。
单片机课程设计报告
单片机课程设计报告导言随着科技的不断进步和发展,单片机技术在各个领域中的应用日益广泛。
作为电子工程的重要组成部分,单片机课程的设计也具有重要意义。
本报告将分享我在单片机课程设计中的学习和实践经验,并对所设计的项目进行详细分析和讨论,以期对相关领域的学习者提供参考和启发。
一、课程设计背景介绍单片机课程设计是电子工程相关专业学生的必修课程之一。
它旨在培养学生的实际应用能力、创新思维和问题解决能力。
在本次设计中,我选择了一个智能家居控制系统作为课程设计的主题。
通过设计和实现该系统,我将掌握单片机的硬件连接和软件编程,并在实践中进一步理解和应用相关知识。
二、系统设计1. 系统概述智能家居控制系统是一种可以通过手机或者其他设备进行远程控制的家居系统。
该系统可以实现对家中电器、照明、安防等设备的远程控制和自动化管理。
通过单片机控制芯片、无线通信模块和相应的传感器,可以实现对家居环境的监测和控制。
2. 硬件设计系统硬件设计主要包括单片机控制芯片的选择、传感器的选用和连接、通信模块的设置等。
在本设计中,我选择了一款常用的单片机控制芯片,并添加了温湿度传感器、光照传感器和人体红外传感器。
通过这些传感器,系统可以实时监测室内温度、湿度、光强度以及人体动静情况,并根据设置的规则进行相应的控制。
3. 软件设计系统软件设计主要包括单片机的编程、手机APP的开发和服务器的搭建等。
在本设计中,我使用C语言编写了单片机的程序,并通过串口通信与传感器和通信模块进行数据交互。
同时,我还使用Android开发平台进行了手机APP的开发,用户可以通过APP与家居控制系统进行交互和控制。
为了实现远程控制和数据传输,我搭建了一台服务器,并编写了相应的脚本和接口。
三、系统实现和测试1. 硬件连接和调试在硬件设计完成后,我进行了各个部件的连接和调试。
通过仔细查阅硬件连接图和相应的接口说明,我按照规定的步骤进行了连接,并通过测试仪器对各个部件的工作状态进行了检查和调试。
单片机设计实验报告简单计算器的设计
目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (2)2.1主控模块 (2)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (4)2.1.4 STC89C52单片机的定时/计数器 (4)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (5)2.3 LCD液晶显示器简介 (6)2.3.1液晶模块简介 (6)2.3.2液晶显示部分与89S52的接口 (7)3系统软件设计 (9)3.1系统软件流程图 (9)3.2系统整体原理图 (10)4.系统调试 (11)4.1硬件调试 (11)4.2软件调试 (11)4.3调试结果 (12)5. 心得体会 (13)1.总体方案选择1.1 实验要求:1)通过小键盘实现数据的输入,并在LED数码管上显示2)实现+、-、*、/3)在LED数码管上显示结果4)并有清零,退出功能1.2方案设计本系统以STC89C52单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示灯功能的控制,起到总控和协调各模块之间工作的作用。
单片机通过检测键盘读取使用者按下对用功能的按键,然后通过单片机内部运放把运算的结果显示在液晶屏幕上。
图1-1系统结构框图本系统结构如图1-1所示,本设计可分为以下模块:单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。
下面对各个模块的设计方案逐一进行论证分析。
2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图2-1。
单片机课程设计报告书---交通灯控制电路设计
交通灯控制电路设计一、选题背景交通灯控制系统是城市道路管理中极为重要的一个环节,其在加强道路交通管理,减少交通事故的发生,提高道路使用效率等方面具有不可替代的作用。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。
本文将介绍一种用单片机作为系统的主控单元,通过单片机嵌入软件程序来实现交通信号灯的多重控制方式,整个系统以STC89C52RC单片机为核心加以晶振电路、复位电路、电源电路构成系统的控制枢纽,系统状态显示系统采用7段LED数码管进行倒计时的现实,红、黄、绿三色LED灯作为信号指示。
系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口出现的状况。
本系统性能稳定,功能完善,实用性强。
二、方案论证(设计理念)1.主要内容用单片机系统设计十字路口交通灯控制电路,要求东西方向的红、黄、绿灯和南北方向的红、黄、绿灯按照下面的工作时序进行工作,黄灯亮时应为闪烁状态:(1)南北和东西车辆交替进行,各通行时间 24 秒(2)每次绿灯变红灯时,黄灯先闪烁 4 秒,才可以变换运行方向。
(3)十字路口要有数字显示作为时间提示,以倒计时按照时序要求进行显示;具体为:当某方向绿灯亮时,置显示器为某值,然后以每秒减 1 计数方式工作,直至减到数为“0”,十字路口红、绿等交换,一次工作循环结束,而进入下一步某方向的工作循环。
(4)可以手动调整和自动控制,夜间为黄灯闪耀状态2.教学要求选择适当元器件设计单片机外围电路、由单片机系统完成二十四进制倒计时、四进制倒计时、显示及模式切换逻辑控制等;仿真实现各电路功能;搭建、调试电路实现设计要求的功能;掌握复杂数字电路的一般设计方法,具备初步的独立设计能力;掌握对电子线路进行仿真调试的方法和技能;掌握实现电路的实验方法和电路的调试方法。
3.方案设计与选择3.1交通信号控制原理交通信号控制原理是按照一定的控制程序,在交叉路口的每个方向上通过红、黄、绿三色灯循环显示,指挥交通流,在时间上实施隔离。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告题目基于单片机的光立方设计院系信息科学与技术学院专业计算机科学与技术姓名曹嘉宇学号 20122301 指导教师蒋朝根摘要当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,受到人们的重视和关注,应用广泛,发展迅猛。
单片机体积小,质量小,抗干扰能力强,对环境要就不高,价格低廉,灵活性好,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。
成为现代生产和生活中不可缺少的一部分。
对于大二的我们来说,学习单片机也一个学期了,对单片机有了大体的了解,此次单片机课程设计,我们采用的是STC89C52RC系列的单片机,利用此单片机来控制一个“光立方”。
光立方顾名思义就是一个立方体,我们采用的是16*16*16的模式,将LED灯分成八层,利用程序来编写各种不同的效果来控制LED的亮灭,最终使得整个立方体展现不同的造型和图案,使其变得美轮美奂,绚丽多彩。
1绪论1.1课题研究的背景:“光立方”一词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。
由此,也掀起了光立方的设计与学习热潮,在原有的基础上不断增加难度,增加变换花样,吸引电子爱好者对其研究、创新。
事实上,“光立方”已经渗透到以下几个方面:照明类LED光效——户外景观照明展开的视觉装饰活动;信息传播类LED光效——各种类型的大屏幕点缀着人们的生活;光立方制作所需材料较常见,成本低廉、性价比高等优点具有较高的研究价值。
1.2课题研究的意义:本次毕业设计一改传统的平面流水灯的风格,而是从平面向立体发展,通过更宽广的三维空间呈现出更加绚丽的效果,直接冲击着人们审美视觉,不在停留在乏味的平面成像。
3D8光立方主体部分由512LED灯组成,在制作过程中锻炼学习动手焊接能力,并以低成本,智能化产品对实现经济利益、商业价值的形成具有积极的推动作用。
1.3 论文研究内容与结构安排本文研究的内容如下:单片机控制模块:采用89C52控制核心,其它相关的外围电路构成本系统的模块;时钟信号电路:采用普通晶体时钟源,其中晶体用11.0592MHZ的石英晶振;显示模块:通过对单片机编程,利用程序来控制LED的亮灭,以达到动画的效果。
具体介绍内容安排如下:第二章主要阐述系统方案的选择与论证,将系统分为主控模块、驱动模块、显示模块等,并分别对各模块方案进行了选择与论证。
第三章主要介绍了个硬件电路的设计,还对各单元实现的功能以及芯片引脚功能特点进行说明。
同时阐述整个系统的设计思路以及搭建方法。
第四章主要阐述主程序的编写以及整个软件的框架。
第五章阐述的是整个光立方系统的调试过程以及在调试过程中出现的软件、硬件问题。
并阐述了解决这些问题的办法。
第六章主要对整个毕业设计的设计过程进行总结,并阐述了在制作过程中的收获和心得。
2总体设计2.1 工作原理本设计以STC12C5A60S2单片机为控制核心设计一个由512个蓝色LED灯组成的光立方。
系统主要由主控、驱动、显示等模块构成。
系统模块框图如图2-1:图2-1 系统结构框图3 系统硬件电路设计与实现3.1 硬件电路设计本电路是由STC12C5A60S2单片机为控制核心,其和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,具有串口烧写编程功能,低功耗[1];时钟源电路有很多种,比如阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通晶体时钟源,其中晶体用12MHZ的石英晶振[12]。
显示部份由显示部份由512个雾面LED灯组成来进行显示。
3.2 单片机最小系统单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。
对89C51单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等[7](见图3-1)。
单片机的最小系统如下图所示:图3-1单片机最小系统框图图3-2单片机最小系统3.2.1时钟电路在设计时钟电路之前,让我们先了解下单片机上的时钟管脚:XTAL1(19 脚):芯片内部振荡电路输入端。
XTAL2(18 脚):芯片内部振荡电路输出端。
XTAL1 和XTAL2 是独立输入和输出反相放大器,它可以被配置为使用石英晶振的片内振荡器。
内部方式的时钟电路如图3-3(a)所示,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡[9]。
经过综合考虑,本设计中采用了11.0592M 的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
一般情况下选取33pF 的陶瓷电容就可以了。
[8]外部方式的时钟电路如图3-3(b )所示,RXD 接地,TXD 接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz 的方波信号。
[15](a )内部方式时钟电路 (b )外部方式时钟电路图3-3 时钟电路另外值得一提的是检测晶振是否能够起振的方法可使用示波器能看到XTAL2 输出的非常好看的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压。
[13]3.3.1LED 灯排序方式设计将每层的LED 排序如图3-8,D0,D1,D2,D3…D62,D63分别为64个LED 阵列实际排序方式,也就是光立方的俯视图,对应下图分别是其数据信号O __U __T __0,O __U __T __1,O __U __T __2,O __U __T __3…O__U __T __62,O __U __T __63;图3-8 3D8光立方效果图3.3.2 LED 灯接法方式设计1.“光立方”是由8层这样布局的LED 组成,每层位置排列全部一致,如图3-9 。
每层LED 的所有正极全部接到一起,然后连接74hc595的行扫描驱动电路,通过74hc595译码确定使能哪一层3.各层同一位置LED 的负极连接都一起,例如第一层的D0和第二、三、四…等层的D0的负极都连接一起,然后再把它们接到O __U __T __0上面,如图3-10。
图3-9 LED 层与层的连接方式 图 3-10 LED 负极与输出端连接方式3.5光立方搭建方法3.5.1将LED 从点到线的搭建首先制作一块搭建用的木板如图3-11,木板孔与孔直接的距离为22.86mm ,必须与电路板上的两空距离一致。
将LED 灯逐个安在板上,并对LED 的脚进行折弯使正极引脚与负极的夹角为直角。
最后将8个LED 的阴极焊接在一起,如 图3-12。
注意:弯折阴极脚时弯曲处尽量靠近灯体不要留太长,这样焊接阳极时不容易造成短路。
图3-11搭建木板图3-12 已搭好的8个LED灯3.5.2将LED从线到面的搭建进行八次上诉焊接后接下来就是将8束的LED焊接起来。
在从点到线时是将所有LED的阴极连在一起,而这次则是将所有LED阳极弯折并依次连接,如图3-13。
注意:由于焊接过程中将产生静电容易将LED烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具检测。
同时检测灯与灯之间有没虚焊情况。
图3-13 已搭好的8排LED灯3.5.3将LED从面到体的搭建最后一个步骤是将已焊好的8个面进行焊接,其方法是将之前8个面上的阴极对应位置依次焊接,最后留出的8个阴极与输出端进行连接,LED的64阳极则与74hc595的数据输出端依次连接,如图3-14。
图3-14 已搭好的8层LED灯4 系统软件设计4.1 主程序设计程序主函数运行流程框图如图4-1。
图4-1 主程序框图首先,将系统所需要的文件的宏定义文件包含进来。
定义:74hc595控制输入模块P0口;驱动模块P1;74hc595控制输出模块P2口。
初始化定时器0,延时5us,开中断,使其处于等待中断状态。
接着,初始化光立方体,驱动光立方,利用扫描形式使光立方体的LED灯逐个点亮形成动画。
5.1.2. 软件测试3D8光立方主要是通过程序来控制光立方体从而达到多种动画变化的效果。
由于要形成多样的3D动画,在变成过程中也出现了不少的问题。
最后经过多次的细心修改,顺利的完成了编程工作。
主要问题有:1、烧入程序后,不能显示完整的动画。
解决方法:重新检查程序,检查对应的引脚定义有没错。
再者检查延时是否过快导致动画不明显。
2、第一次烧入程序时用<REG52.H>作为头文件名,发现程序溢出编译不通过并且检查程序无错误。
解决方法:该问题可能是52单片机为8K内存,而本光立方设计程序达到35K远远超出52单片机的内存,于是将头文件名改为<STC12C5A60S2.H>,并配合keil4进行编译,编译通过。
5.2 结果分析本设计通过硬件设备和软件完美配合,总共呈现十一个连续的动画效果。
经过多次的反复测试与分析,所呈现的动画与程序中预期的效果吻合,符合设计要求。
在软硬件测试过程中让我们对原先设计的电路的原理及功能进一步熟悉,并对各电路模块和相关的芯片联合工作更加了解。
在这个调试的过程中虽然挺枯燥无味,但锻炼我们发现问题并解决问题的能力,对我们的专业知识起到了温故知新的作用。
6、课程设计心得体会此次为期两个礼拜的课程设计,让我感受颇深。
最终看到了绚丽多姿,变化多端的LED光立方的图案。
在这半个多月的学习中,在很大程度上培养了自己的独立思考及其动手能力。
学会了自己独立的发现问题、分析问题。
老师还为我们提供了网络,遇到不明白的问题,首先是通过上网查阅相关资料、翻阅书籍找出问题的答案。
而且还有老师在实验室指导我们的设计,在查阅资料仍找不到但答案的还可以请教老师。
尽管此次设计过程中遇到些问题,但最终还是一步一个脚印过来了。
本次我主要的是负责程序的编写。
在刚开始烧写程序进去调试时,发现LED灯P0口和P2口控制的两组灯点亮的有点延时,不能够同步显示图案的效果。
检查程序后发现,原来是在送完P0口数据后,就立马加了个延时,再送P2口数据,再延时,这样导致P0口与P2口之间的显示效果在视觉上慢了半拍,达不到预期图案要显示的效果,最后将中间的那个延时程序调到送完P2口数据之后再给其进行延时,通过调试发现能够正常显示。
另外在编写各种图案显示代码的时候,让我深刻的体会到,要想编好相应的代码,光立方的三维空间的想象能力还是比较重要,那么多灯到底是要求哪个灯给高电平哪个灯给低电平,还要根据显示要求组合好。
以防出现乱码显示情况。
在汇编程序中,刚开始想用移位指令来实现代码的传送,发现在一些简单的图案还可以(如扫描极有规律的显示),但在复杂一点的立体图就无法使用了,最后还是将其全部统一改写成调用数组的形式送代码,这样既简单又不容易出错。