Академический Документы
Профессиональный Документы
Культура Документы
UNIVERSAL BOARD
ADVANCE TECHNOLGY
UNIVERSAL BOARD
FOREWORD
With changing times micro-controller has evolved and today is part of almost every application viz. consumer electronics, communication systems automotive medical etc. With various controller architectures and easy to use compilers it has become easy to use a controller in wide range of applications with ease. There are many micro controllers available in market 89C51 (ATMEL, PHILPS) PIC (MICROCHIP) etc. With change in technology trends and introduction of latest protocols (CAN, MODBUS, I2C, SPI, USB) it is important to learn basics of micro controller with interfacing devices like SRAM, E2PROM, Stepper Motor, DC Motor, RTC, ADC, DAC, Relays, Displays. Keeping trends in mind Advance Technology has designed Universal Board. The feature that separates this board from others is the configuration of these different devices in desired fashion. User is free to assign any controller Port to the device with provided connectors. Since the Time to Market is crucial UNIVERSAL BOARD can reduce the development time since testing of basic devices can be done and by the time PCBs are manufactured designer is ready with the tested code.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
ADVANCE TECHNOLGY
UNIVERSAL BOARD
INDEX
No.
1. 1.1 2 2.1 3 3.1 3.2 3.3 3.4 3.5 3.6 4
TOPIC
INTRODUCTION
On Board Specifications
Page No.
4
5 6 8 9 10 10 11 11 12 13
25
INTRODUCTION
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 3
ADVANCE TECHNOLGY
UNIVERSAL BOARD
UNIVERSAL Board has on board (a) ADC section. (b) RTC & EEPROM section. (c) DISPLAY (LCD, LED, & 7-SEG) section. (d) INPUT SWITCHES (PUSH BUTTON & DIP SWITCH) section. (f)RELAY section. (e) BUZZER section PERIPHERALS Part No. ADC0809CCN DS1307 24C04 LCD BUZZER RELAY Specifications 8-BIT 8-CHANNEL, 100 s. 64X8, SERIAL I2C Real Time Clock. 4K serial EEPROM. 16 x 2 character LCD 5V 5A/250V AC
POWER SUPPLY REQUIREMENTS Voltage Rating +/- 5 V +/- 12V Current Rating 1A 1A
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
ADVANCE TECHNOLGY
UNIVERSAL BOARD
FEATURES:High-Performance RISC CPU: Only 35 single-word instructions to learn All single-cycle instructions except for program branches, which are twocycle Operating speed: DC 20 MHz clock input DC 200 ns instruction cycle Up to 8K x 14 words of Flash Program Memory, Up to 368 x 8 bytes of Data Memory (RAM), Up to 256 x 8 bytes of EEPROM Data Memory Pinout compatible to other 28-pin or 40/44-pin PIC16CXXX and PIC16FXXX microcontrollers Peripheral Features: Timer0: 8-bit timer/counter with 8-bit prescaler Timer1: 16-bit timer/counter with prescaler, can be incremented during Sleep via external crystal/clock Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler Two Capture, Compare, PWM modules - Capture is 16-bit, max. resolution is 12.5 ns
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 5
ADVANCE TECHNOLGY
UNIVERSAL BOARD
- Compare is 16-bit, max. resolution is 200 ns - PWM max. resolution is 10-bit Synchronous Serial Port (SSP) with SPI (Master mode) and I2C (Master/Slave) Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address detection Parallel Slave Port (PSP) 8 bits wide with external RD, WR and CS controls (40/44-pin only) Brown-out detection circuitry for Brown-out Reset (BOR) Analog Features: 10-bit, up to 8-channel Analog-to-Digital Converter (A/D) Brown-out Reset (BOR) Analog Comparator module with: - Two analog comparators - Programmable on-chip voltage reference (VREF) module - Programmable input multiplexing from device inputs and internal voltage reference - Comparator outputs are externally accessible Special Microcontroller Features: 100,000 erase/write cycle Enhanced Flash program memory typical 1,000,000 erase/write cycle Data EEPROM memory typical Data EEPROM Retention > 40 years Self-reprogrammable under software control In-Circuit Serial Programming (ICSP) via two pins Single-supply 5V In-Circuit Serial Programming Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation Programmable code protection Power saving Sleep mode Selectable oscillator options In-Circuit Debug (ICD) via two pins CMOS Technology: Low-power, high-speed Flash/EEPROM technology Fully static design Wide operating voltage range (2.0V to 5.5V) Commercial and Industrial temperature ranges Low-power consumption
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 6
ADVANCE TECHNOLGY
UNIVERSAL BOARD
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 7
ADVANCE TECHNOLGY
UNIVERSAL BOARD
ADVANCE TECHNOLGY
UNIVERSAL BOARD
No zero or full-scale adjust required 8-channel multiplexer with address logic 0V to 5V input range with single 5V power supply Outputs meet TTL voltage level specifications ADC0808 equivalent to MM74C949 ADC0809 equivalent to MM74C949-1
Key Specifications
Resolution 8 Bits Total Unadjusted Error 12 LSB and 1 LSB Single Supply 5 VDC Low Power 15 mW Conversion Time 100
ADC OUTPUT
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
ADVANCE TECHNOLGY
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
10
ADVANCE TECHNOLGY
UNIVERSAL BOARD
Stepper motor
3.6V Battery
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
11
ADVANCE TECHNOLGY
UNIVERSAL BOARD
CONNECTORS
Real-time clock (RTC) counts seconds, minutes, hours, date of the month, month, day of the week, and year with leap-year compensation valid up to 2100 56-byte, battery-backed, nonvolatile (NV) RAM for data storage Two-wire serial interface Programmable square wave output signal Automatic power-fail detect and switch circuitry Consumes less than 500nA in battery backup mode with oscillator running
12 Email: - adixit@reliancemail.net
ADVANCE TECHNOLGY
UNIVERSAL BOARD
Optional industrial temperature range: -40C to +85C Available in 8-pin DIP or SOIC Underwriters Laboratory (UL) recognized E2PROM 24C04 FEATURES Low-voltage and Standard-voltage Operation 2.7 (VCC = 2.7V to 5.5V) 1.8 (VCC = 1.8V to 5.5V) Internally Organized 128 x 8 (1K), 256 x 8 (2K), 512 x 8 (4K), 1024 x 8 (8K) or 2048 x 8 (16K) 2-wire Serial Interface Schmitt Trigger, Filtered Inputs for Noise Suppression Bi-directional Data Transfer Protocol 100 kHz (1.8V) and 400 kHz (2.5V, 2.7V, 5V) Compatibility Write Protect Pin for Hardware Data Protection 8-byte Page (1K, 2K), 16-byte Page (4K, 8K, 16K) Write Modes Partial Page Writes are Allowed Self-timed Write Cycle (5 ms max) High-reliability Endurance: 1 Million Write Cycles Data Retention: 100 Years Automotive Grade, Extended Temperature and Lead-Free Devices Available 8-lead PDIP, 8-lead JEDEC SOIC, 8-lead MAP, 5-lead SOT23,
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
13
ADVANCE TECHNOLGY
UNIVERSAL BOARD
ADVANCE TECHNOLGY
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
15
ADVANCE TECHNOLGY
UNIVERSAL BOARD
3. Now go to settings and select target. A dialog box will appear, in this dialog box select our controller named PIC16F877A, then click ok.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
16
ADVANCE TECHNOLGY
UNIVERSAL BOARD
4. Now go to settings and select toolsuit. A dialog box will again appear, in
ADVANCE TECHNOLGY
UNIVERSAL BOARD
5. Now go to settings and select options. A dialog box will again appear with
a display name C2C-plus compiler option, now select tools, now go to assembler option and choose
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 18
ADVANCE TECHNOLGY
UNIVERSAL BOARD
C:\PROGRA~1\MPLABI~1\MCHIP_~1\MPASMWIN.EXE /aINHX8M /p%target% /rHEX /w2 /q, then click ok. Then go to programmer option and choose C:\PROGRA~1\MATRIX~1\Common\PPPv3\PPPv3.exe Then click ok. BEFORE THESE ASSEMBLER AND PROGRAMMER SETTINGS YOU MUST INSTALL MPLAB IDE AND PPPV3.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
19
ADVANCE TECHNOLGY
UNIVERSAL BOARD
6. Now go to projects and select new, now specify the path where you want to save your project and name, click ok.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
20
ADVANCE TECHNOLGY
UNIVERSAL BOARD
7. A pop up box will appear you may select empty or with empty source file and click ok.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
21
ADVANCE TECHNOLGY
UNIVERSAL BOARD
8. Now write your program. After you had written your program go to build and first select compilers then assembler then build. Any error or warning will be displayed in the dialog box.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
22
ADVANCE TECHNOLGY
UNIVERSAL BOARD
9. Now after you had successfully created your .Hex file you would use an PIC programmer called PPPv3. Double Click on the icon present on the desktop.
10. Now go to options and select options then select version 2 and click ok.
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
23
ADVANCE TECHNOLGY
UNIVERSAL BOARD
11. After that go to options and select configure PICmicro and do the following displayed settings.
After that choose your hex file and select send to PICmicro.
**********Finish**********
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
24
ADVANCE TECHNOLGY
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
25
ADVANCE TECHNOLGY
UNIVERSAL BOARD
TOPIC
Program of Rotating LEDS Program of All Patterns On LEDS Program Of Seven Segment Program of LCD Program of LCD Segment Program of Relay Program Of Analog To Digital Converter Program Of Real Time Control
Page No.
26 27 29 30 33 37 40 44
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
26
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
27
UNIVERSAL BOARD
28
ADVANCE TECHNOLGY for(t=0;t<=28000;t++) {} portb=0x42; for(t=0;t<=28000;t++) {} portb=0x81; for(t=0;t<=28000;t++) {} portb=0x42; for(t=0;t<=28000;t++) {} portb=0x24; for(t=0;t<=28000;t++) {} portb=0x18; for(t=0;t<=28000;t++) {} } } }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
29
UNIVERSAL BOARD
AIM: PROGRAM OF SEVEN SEGMENTS CONNECTIONS: Connect PORT B to CONTROL of 7-Segment section. Connect PORT C to DATA of 7-Segment section.
#include<system.h> char digit[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xe7}; void delay(void) { int d; for(d=0;d<100;d++); } void main(void) { int a,b,c,d,e; trisb=0x00; trisc=0x00; while(1) { for(b=0;b<10;b++) { for(c=0;c<10;c++) { for(d=0;d<10;d++) { for(e=0;e<10;e++) { for(a=0;a<40;a++) { portb=0x08; portc=digit[b]; delay(); portb=0x04; portc=digit[c]; delay(); portb=0x02; portc=digit[d]; delay(); portb=0x01; portc=digit[e]; delay(); }} } } } }} Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 30
ADVANCE TECHNOLGY EXPERIMENT NO:-4 AIM: PROGRAM OF LCD CONNECTIONS: Connect PORT B to JP2 of LCD section. Connect PORT C to JP5 of LCD section.
UNIVERSAL BOARD
#include<system.h> void delay(void); void conwrt(void); void datwrt(void); void main(void) { trisc=0x00; trisb=0x00; portb=0x38; conwrt(); delay(); portb=0x0E; conwrt(); delay(); portb=0x01; conwrt(); delay(); portb=0x06; conwrt(); delay(); while(1) { portb=0x84; conwrt(); delay(); portb='A'; datwrt(); delay(); portb='D'; datwrt(); delay(); portb='V'; datwrt(); delay(); portb='A'; datwrt(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 31
ADVANCE TECHNOLGY delay(); portb='N'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb='E'; datwrt(); delay(); portb=0xC3; conwrt(); delay(); portb='T'; datwrt(); delay(); portb='E'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb='H'; datwrt(); delay(); portb='N'; datwrt(); delay(); portb='O'; datwrt(); delay(); portb='L'; datwrt(); delay(); portb='O'; datwrt(); delay(); portb='G'; datwrt(); delay(); portb='Y'; datwrt(); delay(); }
UNIVERSAL BOARD
} void delay(void) Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
32
ADVANCE TECHNOLGY { int d; for(d=0;d<3000;d++); } void conwrt(void) { portc=0x00; delay(); portc=0x02; delay(); portc=0x00; delay(); } void datwrt(void) { portc=0x01; delay(); portc=0x03; delay(); portc=0x01; delay(); }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
33
UNIVERSAL BOARD
AIM: PROGRAM OF LCD_SEGMENTS CONNECTIONS: Connect PORT B to JP2 of LCD section. Connect PORT C to JP5 of LCD section.
#include<system.h> void delay(void); void delay1(unsigned int); void conwrt(void); void datwrt(void); void main(void) { int i; trisc=0x00; trisb=0x00; trisa=0x00; trisd=0x00; portb=0x38; conwrt(); delay(); portb=0x0c; conwrt(); delay(); portb=0x01; conwrt(); delay(); portb=0x06; conwrt(); delay(); portb=0x82; conwrt(); delay(); portb='A'; datwrt(); delay(); portb='D'; datwrt(); delay(); portb='V'; datwrt(); delay(); portb='A'; datwrt(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 34
ADVANCE TECHNOLGY
UNIVERSAL BOARD
delay(); portb='N'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb='E'; datwrt(); delay(); portb=' '; datwrt(); delay(); portb='T'; datwrt(); delay(); portb='E'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb='H'; datwrt(); delay(); portb='.'; datwrt(); delay(); portb=0xC3; conwrt(); delay(); portb='P'; datwrt(); delay(); portb='I'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb=' '; datwrt(); delay(); portb='M'; datwrt(); delay(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
35
ADVANCE TECHNOLGY portb='O'; datwrt(); delay(); portb='D'; datwrt(); delay(); portb='U'; datwrt(); delay(); portb='L'; datwrt(); delay(); portb='E'; datwrt(); delay(); while(1) { for(i=0;i<500;i++) { porta=0x04; portd=0xf3; delay1(15); porta=0x02; portd=0x86; delay1(15); porta=0x01; portd=0xb9; delay1(15); } porta=0x00; delay1(45000); } }
UNIVERSAL BOARD
void delay(void) { int d; for(d=0;d<3000;d++); } void conwrt(void) { portc=0x00; delay(); portc=0x02; delay(); portc=0x00; Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
36
ADVANCE TECHNOLGY delay(); } void datwrt(void) { portc=0x01; delay(); portc=0x03; delay(); portc=0x01; delay(); } void delay1(unsigned int x) { unsigned int a; for(a=0;a<x;a++); }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
37
ADVANCE TECHNOLGY EXPERIMENT NO:-6 AIM: PROGRAM OF RELAY CONNECTIONS: Connect PORT B to JP5 of LCD section. Connect PORT C to JP2 of LCD section. Connect PORT D to RELAY section.
UNIVERSAL BOARD
#include<system.h> //#include<string.h> unsigned char arr1[10]={'R','E','L','A','Y',' ','1',' ','O','N'}; unsigned char arr2[10]={'R','E','L','A','Y',' ','2',' ','O','N'}; unsigned char arr3[11]={'R','E','L','A','Y',' ','1',' ','O','F','F'}; unsigned char arr4[11]={'R','E','L','A','Y',' ','2',' ','O','F','F'}; void long_delay(int); void delay(void); void conwrt(void); void datwrt(void); void main(void) { int i; trisc=0x00; trisb=0x00; trisd=0x00; long_delay(100); while(1) { portb=0x38; conwrt(); delay(); portb=0x0E; conwrt(); delay(); portb=0x01; conwrt(); delay(); portb=0x06; conwrt(); delay(); portb=0x83; conwrt(); delay(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 38
ADVANCE TECHNOLGY portd=0x02; for(i=0;i<10;i++) { portb=arr1[i]; datwrt(); } long_delay(200); portd=0x06; portb=0x83; conwrt(); for(i=0;i<10;i++) { portb=arr2[i]; datwrt(); } long_delay(200); portd=0x04; portb=0x83; conwrt(); for(i=0;i<11;i++) { portb=arr3[i]; datwrt(); } long_delay(200); portd=0x00; portb=0x83; conwrt(); for(i=0;i<11;i++) { portb=arr4[i]; datwrt(); } long_delay(200); } } void long_delay(int i) { int ii; for(ii=0;ii<i;ii++) delay(); }
UNIVERSAL BOARD
void delay(void) Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
39
ADVANCE TECHNOLGY { int d; for(d=0;d<3000;d++); } void conwrt(void) { portc=0x00; delay(); portc=0x02; delay(); portc=0x00; delay(); } void datwrt(void) { portc=0x01; delay(); portc=0x03; delay(); portc=0x01; delay(); }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
40
UNIVERSAL BOARD
AIM: PROGRAM OF ANALOG TO DIGITAL CONVERTOR CONNECTIONS: Connect PORT B to JP5 of LCD section. Connect PORT D to JP2 of LCD section.
#include<system.h> void delay(void); void delay1(void); int dat(int,int); void conwrt(void); void datwrt(void); void lcd_init(void); void display_lcd(int); void main(void) { unsigned int x; int y; trisd=0x00; while(1) { adcon1=0x80; adcon0=0x41; pir1=0x00; delay(); adcon0=adcon0|0x04; while(!((pir1&0x40)==0x40)); x=dat(adresl,adresh); x=x*49; lcd_init(); display_lcd(x); delay1(); } } void delay(void) { int i; for(i=0;i<5;i++); } void delay1(void) { Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 41
ADVANCE TECHNOLGY int i; for(i=0;i<32000;i++); } int dat(int x,int y) { int a; int b,c; b=(y&0x01)*256; c=((y>>1)&0x01)*512; a=x+b+c; return a; } void conwrt(void) { portd=0x00; delay(); portd=0x02; delay(); portd=0x00; delay(); } void datwrt(void) { portd=0x01; delay(); portd=0x03; delay(); portd=0x01; delay(); } void lcd_init(void) { trisb=0x00; portb=0x38; conwrt(); delay(); portb=0x0c; conwrt(); delay(); portb=0x01; conwrt(); delay(); portb=0x06; conwrt(); delay();
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
42
ADVANCE TECHNOLGY
UNIVERSAL BOARD
} void display_lcd( int x) { int a1,a2,a3,a4,a5,a6; a1=x%10; x=x/10; a2=x%10; x=x/10; a3=x%10; x=x/10; a4=x%10; x=x/10; a5=x%10; a6=x/10; portb=0x84; conwrt(); delay(); portb='A'; datwrt(); delay(); portb='D'; datwrt(); delay(); portb='V'; datwrt(); delay(); portb='A'; datwrt(); delay(); portb='N'; datwrt(); delay(); portb='C'; datwrt(); delay(); portb='E'; datwrt(); delay(); portb=0xc3; conwrt(); delay(); portb='C'; datwrt(); delay(); portb='H'; datwrt(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
43
ADVANCE TECHNOLGY delay(); portb='0'; datwrt(); delay(); portb=':'; datwrt(); delay(); portb=' '; datwrt(); delay(); portb=a5+0x30; datwrt(); delay(); portb='.'; datwrt(); delay(); portb=a4+0x30; datwrt(); delay(); portb=a3+0x30; datwrt(); delay(); portb=a2+0x30; datwrt(); delay(); portb=a1+0x30; datwrt(); delay(); portb='V'; datwrt(); delay(); }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
44
UNIVERSAL BOARD
AIM: PROGRAM OF REAL TIME CONTROL CONNECTIONS: Connect PORT B to JP5 of LCD section. Connect PORT D to JP2 of LCD section.
#include<system.h> unsigned char binarytime(unsigned char); unsigned char bcdtime(unsigned char); void conwrt(void); void datwrt(void); void lcd_init(void); void delay(); void disp(unsigned char); void disptitle(void); void getrtc(void); void setrtc(void); unsigned char ch[7]={0,0,0,0,0,0,0}; void main(void) { int i,a,b; trisc=0x00;//0x18; for(i=0;i<=2000;i++); lcd_init(); disptitle(); ch[0]=bcdtime(01)&0x7F; //seconds. ch[1]=bcdtime(20)&0x7F; //minutes. ch[2]=bcdtime(4)&0x3F; //hour. ch[3]=bcdtime(4)&0x07; //day. ch[4]=bcdtime(13)&0x3F; //date. ch[5]=bcdtime(2)&0x1F; //month. ch[6]=bcdtime(6); //year setrtc(); while(1) getrtc(); } Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net 45
ADVANCE TECHNOLGY
UNIVERSAL BOARD
void setrtc(void) { sspcon=0x28; sspadd=0x09;//0x09; sspstat=0x80;//0x80; sspcon2=0x01; //SEN BIT START bit delay(); while((pir1&0x08)!=0x08); //sspif pin flag pin & write mode. sspbuf=0xD0; //Adress of the rtc. pir1=pir1&0xF7;//* delay(); while((pir1&0x08)!=0x08);//* sspbuf=0x00; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[0]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[1]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[2]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[3]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[4]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. sspbuf=ch[5]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
46
UNIVERSAL BOARD
sspbuf=ch[6]; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag //delay();//* while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. pir1=pir1&0xF7; sspcon2=0x04;//* while((pir1&0x08)!=0x08);//wait for sspif to show that stop bit has been received. pir1=pir1&0xF7; //Clear the sspif bit. } void getrtc(void) { sspcon=0x28; sspadd=0x09;//0x09; sspstat=0x80;//0x80; sspcon2=0x01; //SEN BIT START bit delay(); while((pir1&0x08)!=0x08); //sspif pin flag pin & write mode. sspbuf=0xD0; //Adress of the rtc. pir1=pir1&0xF7;//* delay(); while((pir1&0x08)!=0x08);//* sspbuf=0x00; //Register address in the RTC. pir1=pir1&0xF7; //clear sspif flag while((pir1&0x08)!=0x08); //wait for sspif flag till end of byte. pir1=pir1&0xF7; //clear sspif flag. sspcon2=0x04;//* while((pir1&0x08)!=0x08);//wait for sspif to show that stop bit has been received. pir1=pir1&0xF7; //Clear the sspif bit. sspcon2=0x01; //**** //START bit while((pir1&0x08)!=0x08); //sspif pin flag pin sspbuf=0xD1; // Read mode pir1=pir1&0xF7; //sspif flag is cleared. while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //sspif flag is cleared. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[0]=sspbuf; //read SECONDS from buffer. //second=sspbuf; pir1=pir1&0xF7; //clear sspif flag. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
47
ADVANCE TECHNOLGY
UNIVERSAL BOARD
sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[1]=sspbuf; //Read Minutes. //minute=sspbuf; pir1=pir1&0xF7; //sspif bit is reset. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[2]=sspbuf; //Read Hours. //hour=sspbuf; pir1=pir1&0xF7; //sspif bit is reset. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[3]=sspbuf; //Read //day=sspbuf; pir1=pir1&0xF7; //sspif bit is reset. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[4]=sspbuf; //Read //date=sspbuf; pir1=pir1&0xF7; //sspif bit is reset. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[5]=sspbuf; //Read //month=sspbuf; pir1=pir1&0xF7; //sspif bit is reset. sspcon2=sspcon2&0xDF; //ackdt pin is reset to send ack. sspcon2=sspcon2|0x10;//* Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
48
ADVANCE TECHNOLGY
UNIVERSAL BOARD
while((pir1&0x08)!=0x08); //wait for sspif flag. sspcon2=sspcon2|0x08; //rcen bit is set,enable receiver mode. pir1=pir1&0xF7; //clear sspif flag. while((pir1&0x08)!=0x08); //wait for sspif flag. ch[6]=sspbuf; //Read //year=sspbuf; pir1=pir1&0xF7; //Clear the sspif flag. sspcon2=sspcon2|0x20; //ackdt pin is set,for NACK. sspcon2=sspcon2|0x10;//* while((pir1&0x08)!=0x08); //Wait for sspif flag. pir1=pir1&0xF7; //Clear sspif flag. sspcon2=sspcon2|0x04; //pen bit is set to initiate stop condition. while((pir1&0x08)!=0x08); pir1=pir1&0xF7; portb=0xC0; conwrt(); disp(ch[2]&0x3F); portb=':'; datwrt(); disp(ch[1]&0x7F); portb=':'; datwrt(); disp(ch[0]&0x7F); }
void disptitle(void) { portb=0x80; conwrt(); portb='H'; datwrt(); portb='H'; datwrt(); portb=' '; datwrt(); portb='M'; datwrt(); portb='M'; datwrt(); portb=' '; datwrt(); portb='S'; datwrt(); portb='S'; Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
49
ADVANCE TECHNOLGY datwrt(); } void disp(unsigned char chh) { int aa; chh=binarytime(chh); aa=chh/10; portb=aa+0x30; datwrt(); aa=chh%10; portb=aa+0x30; datwrt(); } void conwrt(void) { portd=0x00; delay(); portd=0x02; delay(); portd=0x00; delay(); } void datwrt(void) { portd=0x01; delay(); portd=0x03; delay(); portd=0x01; delay(); }
UNIVERSAL BOARD
void lcd_init(void) { trisd=0x00; trisb=0x00; portb=0x38; conwrt(); delay(); portb=0x0C; conwrt(); delay(); Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
50
ADVANCE TECHNOLGY portb=0x01; conwrt(); delay(); portb=0x06; conwrt(); delay(); portb=0x83; conwrt(); delay(); } unsigned char binarytime(unsigned char x) { return(((x>>4)*10)+(x&0x0f)); } unsigned char bcdtime(unsigned char x) { return(((x/10)<<4)+(x%10)); } void delay() { int a; for(a=0;a<1000;a++); }
UNIVERSAL BOARD
Advance Technology, SCO-160, 1st Floor, Sec-24D, Chandigarh. Ph. 0172-5086213 Email: - adixit@reliancemail.net
51