《《智能仪器设计基础》实验指导书》由会员分享,可在线阅读,更多相关《《智能仪器设计基础》实验指导书(57页珍藏版)》请在金锄头文库上搜索。
1、成都理工大学智能仪器设计基础实验指导书成都理工大学核技术与自动化工程学院电气工程系2012-9-10目 录实验1 单片机 8255并行I/O扩展1实验2 单片机的 LCD 驱动实验3实验3 SPI接口实验DS1302时钟9实验4 1-Wire接口实验DS18b20温度11实验5 A/D转换实验15实验6 综合实验基于51的电子计算器18实验1 单片机 8255并行I/O扩展一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握Proteus7软件的使用、单片机的并行I/O扩展原理及8255芯片的工作原理。二、实验环境:计算机、Proteus7软件、Keil C三、实验
2、步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include#include#define COM8255 XBYTE0x007F#define PA8255 XBYTE0x007C#define PB8255 XBYTE0x007D#define PC8255 XBYTE0x007E#define uchar unsigned charvoid main()COM8255=0x8E;while(1)PA8255=0xFF;3、Proteus7软件平台下实现软硬件仿真,效果如下:实验2 单片机的 LCD 驱动实验一、实验目的: 通过学生在Prote
3、us7软件平台实现电路图设计,使学生充分掌握51内核单片机的LCD驱动接口设计及驱动程序的编写原则。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:; LCD Display Driver Demo.; Timing code assumes 1.2MHz Clock;LCD Registers addressesLCD_CMD_WRequ 0LCD_DATA_WRequ1LCD_BUSY_RDequ2LCD_DATA_RDequ3;LCD CommandsLCD_CLSequ1LCD_H
4、OMEequ2LCD_SETMODEequ4LCD_SETVISIBLEequ8LCD_SHIFTequ16LCD_SETFUNCTIONequ32LCD_SETCGADDRequ64LCD_SETDDADDRequ128;Reset vectororg 0000hjmp start;Start of the programorg 0100hstring1a:db ! A M A Z I N G ! db 0string1b:db ! A M A Z I N G ! db 0string2:db A virtual LM032L. db 0string3:db driven by a virt
5、ual db 0string4:db 8051 processor!db 0start:mov A,#038hcall wrcmdloop:mov A,#LCD_SETVISIBLE+6 ;Make the display & blink visible:call wrcmdmov R7,#2loop2: mov DPTR,#string1acall wrstr mov DPTR,#200 call wtmsmov A,#LCD_CLS;Clear screencall wrcmdmov DPTR,#string1bcall wrstr mov DPTR,#200 call wtmsmov A
6、,#LCD_CLS;Clear screencall wrcmddjnz R7,loop2mov DPTR,#string1acall wrstr mov DPTR,#400 call wtmsmov A,#LCD_SETDDADDR+64call wrcmdmov DPTR,#string2call wrslow mov DPTR,#200 call wtmsmov A,#LCD_CLS;Clear screencall wrcmdmov DPTR,#string3call wrslow mov A,#LCD_SETDDADDR+64call wrcmdmov DPTR,#string4ca
7、ll wrslowmov A,#LCD_SETVISIBLE+7;Show the blink cursor as well.call wrcmd mov DPTR,#2000 call wtmsmov A,#LCD_CLS;Clear screencall wrcmdjmp loop;Sub routine to write null terminated string at DPTR in program ram.wrstr:mov R0,#LCD_DATA_WRwrstr1:clr Amovc A,A+DPTRjz wrstr2movx R0,Acall wtbusyinc DPTRpu
8、sh DPLpush DPHpop DPHpop DPLjmp wrstr1wrstr2:ret;Sub routine to write null terminated string at DPTR in program ram. Slowlywrslow:mov R0,#LCD_DATA_WRwrslw1:clr Amovc A,A+DPTRjz wrslw2movx R0,Acall wtbusyinc DPTRpush DPLpush DPH mov DPTR,#100 call wtmspop DPHpop DPLjmp wrslw1wrslw2:ret;Sub routine to
9、 write command:wrcmd:mov R0,#LCD_CMD_WRmovx R0,Ajmp wtbusy;Sub routine to write character:wrchar:mov R0,#LCD_DATA_WRmovx R0,A;Subroutine to wait for busy clearwtbusy: mov R1,#LCD_BUSY_RDmovx A,r1jb ACC.7,wtbusyret;Wait for number of seconds in Awtsec:push ACCcall wtmspop ACCdec Ajnz wtsecret;Wait fo
10、r number of milliseconds in DPTRwtms: xrl DPL,#0FFh;Cant do DEC DPTR, so do the loop by forming 2s complementxrl DPH,#0FFh;and incrementing instead.inc DPTRwtms1:mov TL0,#09Ch;100 ticks before overflow = 1ms at 1.2MHz Clockmov TH0,#0FFhmov TMOD,#1;Timer 0 mode 1setb TCON.4;Timer 0 runswtms2:jnb TCON
11、.5,wtms2clr TCON.4;Timer 0 stopsclr TCON.5inc DPTRmov A,DPLorl A,DPHjnz wtms1retEND 3、Proteus7软件平台下实现软硬件仿真,效果如下:实验3 SPI接口实验DS1302时钟一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握SPI工作原理,并掌握DS1302时钟的软硬件实现方法。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include #include LCD160
12、2.h#include DS1302.hvoid Delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);main()SYSTEMTIME CurrentTime;LCD_Initial();Initial_DS1302();GotoXY(0,0);Print(Date: );GotoXY(0,1);Print(Time: );while(1)DS1302_GetTime(&CurrentTime);DateToStr(&CurrentTime);TimeToStr(&CurrentTime
13、);GotoXY(6,0);Print(CurrentTime.DateString);GotoXY(6,1);Print(CurrentTime.TimeString);Delay1ms(300);3、Proteus7软件平台下实现软硬件仿真,效果如下:实验4 1-Wire接口实验DS18b20温度一、实验目的: 通过学生在Proteus7软件平台实现电路图设计,使学生充分掌握1-Wire工作原理,并掌握DS18b20温度的软硬件实现方法。二、实验环境:计算机、Proteus7软件、Keil C三、实验步骤:1、电路原理图设计参考原理图:2、在Keil C 软件平台下编写程序代码,参考如下:#include /用AT89C51时就用这个头文件/#include /用华邦W78E58B时必须用这个头文件