《基于单片机的PM1.0、Pm2.5检测系统(共16页).doc》由会员分享,可在线阅读,更多相关《基于单片机的PM1.0、Pm2.5检测系统(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上单片微机原理课程设计专周 学校: 成都工业学院 系别: 电气与电子工程系题目: Pm1.0、Pm2.5智能检测 指导老师:傅林 姓名: 欧尤俊 班级: 学号: 34目录一、系统功能框图:二、原件简介:1、 AT89C511、1 AT89C51简介1、2 AT89C51基本操作2、 ADC0808模数转换2、1.内部结构2、2. 引脚功能(外部特性)三、软件部分:1、1主程序1、2.A/D转换电路1、3.显示系统四、硬件部分: 1、1.A/D转换仿真图 1、2.显示部分仿真图五、专周心得附录一附录二一、系统功能框图:Pm1.0、Pm2.5智能检测同样具有单片机应用系统的
2、三个层次。其中以AT89C51单片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行运算处理。为了更好的理清设计思路,将整个系统细分为三部分加以设计说明。整个检测系统由三个部分组成,分为三大模块:浓度检测模块、主控模块和显示模块。在本次设计中,使用的核心器件是单片机和Pm1.0、2.5传感器。为了保重整个系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来:主控模块以单片机为主。系统框图如图2-2所示。AT89C51Pm1.0检测器A/D
3、转换显示传感器Pm2.5检测器图2-2 系统框图二、原件简介:1、 AT89C51:1、1.AT89C51简介:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口
4、被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控
5、制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号RST:复位输入。当振
6、荡器复位器件时,要保持RST脚两个机器周期的高电平时间。:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 :外部程序存储器的选通信号。在由外部程序存储器取址期间,每个
7、机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 :当保持低电平时,访问外部ROM;注意加密方式1时,将内部锁定为RESET;当端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。1、2.AT89C51基本操作: AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。当振荡电路工作,并且在RST引脚上加一个至少保持2个机器周期的高电平时,就能使
8、AT89C51完成一次复位。复位不影响RAM的内容。复位后,PC指向0000H单元,使单片机从起始地址0000H单元开始重新执行程序。所以,当单片机运行出错或进入死循环时,可按复位键重新启动。2、 AD0808模数转换:ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。2、1.内部结构:ADC0808是CMOS单片型逐次逼近式AD转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。 2、2.引脚功能(外部特性):ADC0808芯片有28条引
9、脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端
10、。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路 三、软件部分:1、1主程序: MAIN: MOV R0,#30H MOV R7,#20HLOOP: MOV R0,#00H INC R0 DJNZ R7,LOOP MOV TMOD,#12H MOV TH0,#245 MOV TL0,#00H SETB EA SETB ET0 SETB TR0MAIN_1: ACALL ADC ACALL CHULI MOV
11、R6,35H MOV R7,36H ACALL H_BCD MOV 38H,R3 MOV 39H,R4 MOV 3AH,R5 ACALL FENLI ACALL DISPLAY ACALL DELAY AJMP MAIN_1INT_T0: CPL CLOCK RETIADC: CLR START SETB START CLR START JNB EOC,$ SETB OE MOV AD_DATA,P3 CLR OE RETDELAY: MOV 40H,#100DELAY_1:ACALL DISPLAY DJNZ 40H,DELAY_1 RET1、2.A/D转换电路: ADC: CLR STAR
12、T SETB START CLR START JNB EOC,$ SETB OE MOV AD_DATA,P3 CLR OE RETCHULI: MOV A,AD_DATA MOV B,#20 MUL AB MOV 35H,B MOV 36H,A RETH_BCD: CLR A MOV R3,A MOV R4,A MOV R5,A MOV R2,#10HH_BCD_1:MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A
13、MOV A,R3 ADDC A,R3 MOV R3,A DJNZ R2,H_BCD_1 RET1、3.显示系统: DISPLAY:MOV DPTR,#TAB1 MOV R0,#42H MOV R7,#3 MOV R2,#02HDSP_1: MOV P2,#01H MOV A,41H MOVC A,A+DPTR ANL A,#7FH MOV P0,A ACALL DS1MS MOV P2,R2 MOV A,R0 MOVC A,A+DPTRLOOK: CJNE A,#0F9H,MOVON SETB P1.0MOVON: JNC LOOK MOV P0,A ACALL DS1MS INC R0 MO
14、V A,R2 RL A MOV R2,A DJNZ R7,DSP_1 RETDS1MS: MOV TH1,#0FCH MOV TL1,#18H SETB TR1DS1MS_1:JBC TF1,DS1MS_2 SJMP DS1MS_1DS1MS_2:CLR TR1 RETTAB1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H 四、硬件部分: 1、1.A/D转换仿真图 1、2.显示部分仿真图 五、专周心得:通过这一周的查阅资料、自己修改、程序调试和修改,是我学会了很多。以前课堂上不懂得部分、理解不透彻的地方我都弄明白并且理解了。当然在这一周中还是
15、有很多不如意的地方。例如,当程序写出来了,调试的时候有很多错误自己又不知道怎么改,查阅资料无果后。心里真的有种想放弃的冲动!不过最后我还是坚持了下来。专周虽然让人很疲惫,但是当你做出来以后的那种成就感是永远没法替代的。通过这个专周我不仅学习了知识、运用了自己所学,还使得我领悟了许多自身应有的态度。做事的态度、处事的方法,还有就是不要放弃。附录一专心-专注-专业CLOCK BIT P1.4START BIT P1.5EOC BIT P1.6OE BIT P1.7AD_DATA EQU 30H ORG 0000H SJMP MAIN ORG 000BH AJMP INT_T0 ORG 0030HM
16、AIN: MOV R0,#30H MOV R7,#20HLOOP: MOV R0,#00H INC R0 DJNZ R7,LOOP MOV TMOD,#12H MOV TH0,#245 MOV TL0,#00H SETB EA SETB ET0 SETB TR0MAIN_1: ACALL ADC ACALL CHULI MOV R6,35H MOV R7,36H ACALL H_BCD MOV 38H,R3 MOV 39H,R4 MOV 3AH,R5 ACALL FENLI ACALL DISPLAY ACALL DELAY AJMP MAIN_1INT_T0: CPL CLOCK RETIA
17、DC: CLR START SETB START CLR START JB EOC,MOVONMOVON: SETB OE MOV AD_DATA,P3 CLR OE RETDELAY: MOV 40H,#100DELAY_1:ACALL DISPLAY DJNZ 40H,DELAY_1 RETCHULI: MOV A,AD_DATA MOV B,#20 MUL AB MOV 35H,B MOV 36H,A RETH_BCD: CLR A MOV R3,A MOV R4,A MOV R5,A MOV R2,#10HH_BCD_1:MOV A,R7 RLC A MOV R7,A MOV A,R6
18、 RLC A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 MOV R3,A DJNZ R2,H_BCD_1 RETFENLI: MOV A,38H ANL A,#0F0H SWAP A MOV 40H,A MOV A,38H ANL A,#0FH MOV 41H,A MOV A,39H ANL A,#0F0H SWAP A MOV 42H,A MOV A,39H ANL A,3FH MOV 43H,A MOV A,3AH ANL A,#0F0H SWA
19、P A MOV 44H,A MOV A,3AH ANL A,#0FH MOV 45H,A RETDISPLAY:MOV DPTR,#TAB1 MOV R0,#42H MOV R7,#3 MOV R2,#02HDSP_1: MOV P2,#01H MOV A,41H MOVC A,A+DPTR ANL A,#7FH MOV P0,A ACALL DS1MS MOV P2,R2 MOV A,R0 MOVC A,A+DPTR MOV P0,A ACALL DS1MS INC R0 MOV A,R2 RL A MOV R2,A DJNZ R7,DSP_1 RETDS1MS: MOV TH1,#0FCH MOV TL1,#18H SETB TR1DS1MS_1:JBC TF1,DS1MS_2 SJMP DS1MS_1DS1MS_2:CLR TR1 RETTAB1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND附录二