Professional Documents
Culture Documents
Program:
start:
SETB P3.3 ;|
SETB P3.4 ; | enable display 3
MOV P1, #11111001B ; put pattern for 1 on display
CALL delay
CLR P3.3 ; enable display 2
MOV P1, #10100100B ; put pattern for 2 on display
CALL delay
CLR P3.4 ;|
SETB P3.3 ; | enable display 1
MOV P1, #10110000B ; put pattern for 3 on display
CALL delay
CLR P3.3 ; enable display 0
MOV P1, #10011001B ; put pattern for 4 on display
CALL delay
JMP start ;
MOV R0, #200
DJNZ R0, $
RET
Program :
Transmitting data on 8051 serial port
CLR SM0 ;
SETB SM1 ;
MOV A, PCON ;
SETB ACC.7 ;
MOV PCON, A ;
MOV 33H, #0 ;
MOV R0, #30H ;
MOV A, @R0 ;
JZ finish ;
MOV C, P ;
MOV ACC.7, C ;
MOV SBUF, A ;
INC R0 ;
JNB TI, $ ;
CLR TI ;
JMP again ;
JMP $ ;
Receiver data on 8051 serial port
CLR SM0 ;
SETB SM1 ;
SETB REN ;
MOV A, PCON ;
SETB ACC.7 ;
MOV PCON, A ;
MOV TMOD, #20H ;
MOV TH1, #0FDH ;
MOV TL1, #0FDH ;
SETB TR1 ;
MOV R1, #30H ;
JNB RI, $ ;
CLR RI ;
MOV A, SBUF ;
CJNE A, #0DH, skip ;
JMP finish ;
MOV @R1, A ;
INC R1 ;
JMP again ;
JMP $ ;
Simulation Results:
Simulation Result
:
1. Result:
Fig.1: Embedded system in a car
Program:
* Connect the FRC connector cable from CN13 on the training Kit module to the Graphic LCD
Module
#include "types.h"
#include <string.h>
#include <stdio.h>
#include "glcd.h"
#include "fonts.h"
#include "DS18b20.H"
int main(void)
char str[256];
float temperature;
PINSEL1 = 0;
PINSEL0 = 0;
glcd_Init();
glcd_Text(0,fonts[FONT_NINE_DOT-1].glyph_height+2,FONT_NINE_DOT,str);
glcd_UpdateAll();
Delay_US(1000 * 5000);
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_demopic();
Delay_US(1000 * 5000)
glcd_SetInvert(GLCD_MODE_INVERTED);
glcd_UpdateAll();
Delay_US(1000 * 5000);
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_Box(GLCD_RIGHT/4,GLCD_BOTTOM/4,GLCD_RIGHT/2,GLCD_BOTTOM/2,GLCD_
MODE_SET);
glcd_UpdateAll();
Delay_US(1000 * 5000);
glcd_Box(GLCD_RIGHT/4+1,GLCD_BOTTOM/4+1,GLCD_RIGHT/2-2,GLCD_BOTTOM/2
- 2,GLCD_MODE_CLEAR);
glcd_UpdateAll();
Delay_US(1000 * 5000);
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_Circle(GLCD_RIGHT/4,GLCD_BOTTOM/2,GLCD_BOTTOM/2,GLCD_MODE_SET);
glcd_UpdateAll();
Delay_US(1000 * 10000);
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_SetInvert(GLCD_MODE_NORMAL);
glcd_UpdateAll();
Delay_US(1000 * 5000);
glcd_ClrScr(GLCD_CLEAR_ALL);
fI = 0;
chI = 0;
glcd_ClrScr(GLCD_CLEAR_ALL);
wd = 0;
ht = fonts[fI].glyph_height;
{
wd += (fonts[fI].store_width * 8);
wd = (fonts[fI].store_width * 8);
ht += (fonts[fI].glyph_height) + 1;
str[0] = chI;
str[1] = '\0';
//void glcd_Text(uint8_t left, uint8_t top, uint8_t font, const char *str);
glcd_Text(wd-fonts[fI].store_width * 8,ht-
fonts[fI].glyph_height,fI,str);
glcd_UpdateAll();
Delay_US(1000 * 10000);
glcd_SetInvert(GLCD_MODE_NORMAL);
result = Init_DS18B20();
if(result)
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_Text(0,GLCD_BOTTOM-fonts[FONT_NINE_DOT-1].glyph_height
- 2,FONT_NINE_DOT,str);
glcd_UpdateAll();
while(1);
WriteCommand(SKIP_ROM);
WriteCommand(WRITE_SCRATCHPAD);
WriteCommand(0);
WriteCommand(0);
WriteCommand(RESOLUTION_12);
WriteCommand(SKIP_ROM);
WriteCommand(WRITE_SCRATCHPAD);
WriteCommand(0);
WriteCommand(0);
WriteCommand(RESOLUTION_12);
result = Init_DS18B20();
if(result)
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_Text(0,GLCD_BOTTOM-fonts[FONT_NINE_DOT-1].glyph_height
-2,FONT_NINE_DOT,str);
glcd_UpdateAll();
while(1);
WriteCommand(SKIP_ROM);
WriteCommand(COPY_SCRATCHPAD);
Delay_milliSecond(10 * 2);
rePrint = 1;
while(1)
result = Init_DS18B20();
if(result)
glcd_ClrScr(GLCD_CLEAR_ALL);
glyph_height-2,FONT_NINE_DOT,str);
glcd_UpdateAll();
while(1);
}
WriteCommand(SKIP_ROM);
/* Function : Issue Convert Temperature command and wait for its completion */
//ConvertTemperature();
WriteCommand(CONVERT_T);
Delay_milliSecond(1000);
result = Init_DS18B20();
if(result)
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_UpdateAll();
while(1);
WriteCommand(SKIP_ROM);
WriteCommand(READ_SCRATCHPAD);
ReadByte(rBuf
alcCRC = CalculateCRC(rBuff,8);
if(calcCRC != rBuff[8])
rePrint = 1;
glcd_ClrScr(GLCD_CLEAR_ALL);
glcd_Text(0,fonts[FONT_NINE_DOT-1].
glyph_height+1,FONT_NINE_DOT,str);
else
temp = rBuff[0];
if(rePrint)
rePrint = 0;
glcd_ClrScr(GLCD_CLEAR_ALL); sprintf(str,(const
char*)"Room Temperature"); glcd_Text(0,0
*(fonts[FONT_NINE_DOT].glyph_height+3),FONT_NINE_DOT,str);
sprintf(str,(const char*)"Celcius:%2.3f
",temperature);
glcd_Text(0,2
*(fonts[FONT_SEVEN_DOT].glyph_height+3),FONT_SEVEN_DOT,str);
x = 15 * 7 + 5;
y = 2 *(fonts[FONT_SEVEN_DOT].glyph_height+3);
glcd_Sphere(x,y-1,3,GLCD_MODE_SET);
37
glcd_Sphere(x,y,3,GLCD_MODE_SET);
x = 15 * 7 + 5 - 2 -1;
y = 2 *(fonts[FONT_SEVEN_DOT].glyph_height+3);
glcd_Box(x,y,7,(42)*(fonts[FONT_SEVEN_DOT].glyp
h_height+3),GLCD_MODE_SET);
x = 15 * 7 + 5;
y = 4 *(fonts[FONT_SEVEN_DOT].glyph_height+3);
glcd_Sphere(x,y,5,GLCD_MODE_SET);
x = 15 * 7 + 5;
y = 4 *(fonts[FONT_SEVEN_DOT].glyph_height+3) + 1;
glcd_Sphere(x,y,5,GLCD_MODE_SET);
else
glcd_Text(0,2
*(fonts[FONT_SEVEN_DOT].glyph_height+3),FONT_SEVEN_DOT,str);
glcd_UpdateAll();
38
{
//Approximately 1 ms Interval
__nop();
};
39
Program:
/*****************************************************************************
* History
*****************************************************************************/
#include "type.h"
#include "irq.h"
#include "timer.h"
#include "rtc.h"
/*****************************************************************************
**
**
** parameters: None
**
40
*****************************************************************************/
alarm_on = 1;
IDISABLE;
/*****************************************************************************
**
**
** parameters: None
**
*****************************************************************************/
alarm_on = 0;
#if 0
41
/*--- Initialize registers ---*/
AMR = 0;
CIIR = 0;
CCR = 0;
PREINT = PREINT_RTC;
PREFRAC = PREFRAC_RTC;
#endif
AMR = 0;
CIIR = 0;
CCR = 0;
PREINT = PREINT_RTC;
PREFRAC = PREFRAC_RTC;
return;
/*****************************************************************************
**
**
** parameters: None
42
**
*****************************************************************************/
CCR |= CCR_CLKEN;
ILR = ILR_RTCCIF;
return;
/*****************************************************************************
**
**
** parameters: None
**
*****************************************************************************/
return;
/*****************************************************************************
43
**
**
** parameters: None
**
*****************************************************************************/
CCR |= CCR_CTCRST;
return;
/*****************************************************************************
**
**
** parameters: None
**
*****************************************************************************/
SEC = Time.RTC_Sec;
MIN = Time.RTC_Min;
HOUR = Time.RTC_Hour;
44
DOM = Time.RTC_Mday;
DOW = Time.RTC_Wday;
DOY = Time.RTC_Yday;
MONTH = Time.RTC_Mon;
YEAR = Time.RTC_Year;
return;
/*****************************************************************************
**
**
** parameters: None
**
*****************************************************************************/
ALSEC = Alarm.RTC_Sec;
ALMIN = Alarm.RTC_Min;
ALHOUR = Alarm.RTC_Hour;
ALDOM = Alarm.RTC_Mday;
ALDOW = Alarm.RTC_Wday;
ALDOY = Alarm.RTC_Yday;
ALMON = Alarm.RTC_Mon;
ALYEAR = Alarm.RTC_Year;
return;
45
}
/*****************************************************************************
**
**
** parameters: None
**
*****************************************************************************/
RTCTime LocalTime;
LocalTime.RTC_Sec = SEC;
LocalTime.RTC_Min = MIN;
LocalTime.RTC_Hour = HOUR;
LocalTime.RTC_Mday = DOM;
LocalTime.RTC_Wday = DOW;
LocalTime.RTC_Yday = DOY;
LocalTime.RTC_Mon = MONTH;
LocalTime.RTC_Year = YEAR;
return LocalTime;
/*****************************************************************************
46
**
**
**
*****************************************************************************/
AMR = AlarmMask;
return;
/*****************************************************************************
** End Of File
***********************************
47