Professional Documents
Culture Documents
All Code Micro
All Code Micro
#include<reg51.h>
void main(void){
int i;
for(i=0;i<10;i++){
destination[i]=source[i];
while(1);
//Hex/Binary
#include<reg51.h>
void delay(void);
void main(void){
unsigned char
Bnum[16]={0x00,0x01,0x04,0x05,0x10,0x11,0x14,0x15,0x40,0x41,0x44,0x45,0x50,0x51,0x54,0x55};
while(1){
int k;
for(k=0;k<16;k++){
P1=Bnum;
delay();
void delay(void){
int i;
for(i=0;i<10;i++){
int j;
for(j=0;j<10000;j++); }}
//BCD
#include<reg51.h>
void delay(void);
void main(void){
while(1){
int k;
for(k=0;k<10;k++){
P1=Bnum;
delay();
void delay(void){
int i;
for(i=0;i<10;i++){
int j;
for(j=0;j<10000;j++);
}
//ASCII
#include<reg51.h>
void delay(void);
void main(void){
while(1){
int k;
for(k=0;k<16;k++){
P1=mynum[k];
delay();
void delay(void){
int i;
for(i=0;i<10;i++){
int j;
for(j=0;j<10000;j++);
//Flashing LED
#include<reg51.h>
void delay(void);
void main(void){
while(1){
P1=0x00;
delay();
P1=0xFF;
delay();
}
void delay(void){
int i;
for(i=0;i<10;i++){
int j;
for(j=0;j<10000;j++){
//Seven Segment
#include <reg51.h>
for(i=0;i<ms_Count;i++)
for(j=0;j<100;j++);
int main()
char seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
while (1)
{
for (cnt = 0x00; cnt <= 99; cnt++) // loop to display 0-99
num = cnt;
P2 = SegOne;
P1 = seg_code[temp];
DELAY_ms(10);
P2 = SegTwo;
P1 = seg_code[temp];
DELAY_ms(10);
}
//Pract_4_LBR
#include<p18f4550.h>
extern void _startup(void);
#pragma code _RESET_INTERRUPT_VECTOR = 0x1000
void _reset(void){
_asm goto _startup _endasm
}
#pragma code
#pragma code _HIGH_INTERRUPT_VECTOR = 0x1008
void _high_ISR(void){
//_asm goto High_ISR_endasm
}
#pragma code _LOW_INTERRUPT_VECTOR = 0x1018
void _low_ISR(void){
// _asm goto Low_ISR _endasm
}
#pragma code
void main()
{
unsigned char i;
unsigned char msg1[ ]="PVG";
unsigned char msg2[ ]="COET PUNE";
TRISD = 0x00; //Set direction of PORTD as an output (Data lines of
LCD)
ADCON1=0X0F; // CHANNELS OF INTERNAL ADC used as a digital pin
TRISE=0X00; //set direction of PORTE as an output (Control lines of
LCD)
msdelay(50);
void LCD_init(void)
{
LCD_command(0x38); //8-bit mode, 2 Line, 5x7 Dots matrix for each
character display
msdelay(50);
LCD_command(0x0C); //Display ON, Cursor ON
msdelay(15);
LCD_command(0x01); //clear Display screen
msdelay(15);
LCD_command(0x06); //Increment cursor(shift right)
msdelay(15);
LCD_command(0X80); // Force cursor to blink on first row 1st position
msdelay(15);
}
void LCD_command (unsigned char value)
{
ldata=value; //Send the command value to PORTD
rs=0; //selection of command register of LCD
rw=0;
en=1; //Generate High to Low pulse on Enable pin
msdelay(1);
en=0;
}
void LCD_write_string(static char *str)
{
int i = 0;
while (str[i] != 0)
{
lcddata(str[i]);
msdelay(15);
i++;
}
}
void lcddata (unsigned char value)
{
ldata=value; //Send the command value to PORTD
rs=1; //selection of DATA register of LCD
rw=0;
en=1; //Generate High to Low pulse on Enable pin
msdelay(1);
en=0;
}
void msdelay (unsigned int itime)
{
int k,j;
for(k=0;k<itime;k++)
for(j=0;j<135;j++);
}
//Pract_6
#include<p18f4550.h>
#include<stdlib.h>
extern void _startup (void);
void timer_isr(void);
#pragma code _RESET_INTERRUPT_VECTOR = 0x1000
void _reset (void)
{
_asm goto _startup _endasm
}
#pragma code
//The program execution comes to this point when a timer interrupt is
generated
#pragma code _HIGH_INTERRUPT_VECTOR = 0x1008
void high_ISR (void)
{
_asm goto timer_isr _endasm //The program is relocated to execute
the interrupt routine timer_isr
}
#pragma code _LOW_INTERRUPT_VECTOR = 0x1018
void low_ISR (void)
{
}
#pragma code
// This function is executed as soon as the timer interrupt is generated
due to timer overflow
#pragma interrupt timer_isr
void timer_isr(void)
{
// TMR0H = 0XF6; // Reloading the timer values after overflow
// TMR0L = 0X3C;
TMR0H = 0XFF; // Reloading the timer values after overflow
TMR0L = 0XFF;
PORTB = ~PORTB; //Toggle the PORTB led outputs RB0 - RB3
INTCONbits.TMR0IF = 0;//Resetting the timer overflow interrupt flag
}
//void delay(int i)
//{
//T0CON=0x00;
//TMR0H=0xFF;
//INTCONbits.TMR0IF=0;
//INTCONbits.TMR0IE=1;
//INTCONbits.GIE=1;
//T0CONbits.TMR0ON=1;
//}
void main()
{
ADCON1 = 0x0F; //Configuring the PORTB pins as digital I/O
TRISB = 0; //Configuring the LED port pins as outputs
PORTB = 0xFF; //Setting the initial value of the LED's after reset
T0CON = 0x00; //Set the timer to 16-bit mode,internal instruction cycle
clock,no
prescaler
// TMR0H = 0xFD;
//TMR0L = 0xA8;
INTCONbits.TMR0IF =0; // Clear Timer0 overflow flag
INTCONbits.TMR0IE =1; // TMR0 interrupt enabled
INTCONbits.GIE =1; // Global interrupt enabled
T0CONbits.TMR0ON =1; // Start timer0
while(1); //Program execution stays here untill the timer overflow
interrupt is generated
}
//Pract_7
/**************************************************/
/** I N C L U D E S **/
#include<p18f4550.h>
/** V A R I A B L E S ***********************/
#pragma udata
#pragma idata
unsigned char String[]={"WELCOME \n\rPress any key from PC\n\r"};
unsigned char String1[]={"\n\rUART Tested\n\r"};
/** P R I V A T E P R O T O T Y P E S
***************************************/
extern void _startup (void); // See c018i.c in your C18 compiler
dir
void High_ISR(void);
void Low_ISR(void);
/** V E C T O R R E M A P P I N G
*******************************************/
extern void _startup (void);
#pragma code _RESET_INTERRUPT_VECTOR = 0x1000
void _reset (void)
{
_asm goto _startup _endasm
}
#pragma code
}
#pragma code
/** D E C L A R A T I O N S
**************************************************/
#pragma code
void main()
{
unsigned char temp;
unsigned char i=0;
SSPCON1 = 0; // Make sure SPI is disabled //Refer Datasheet
TRISCbits.TRISC7=1; // RX
TRISCbits.TRISC6=0; // TX
SPBRG = 0x71;
SPBRGH = 0x02;// 0x0271 for fosc :48MHz -> 19200 baud XTAL=20MHz,
TXSTA = 0x24; // TX enable BRGH=1
RCSTA = 0x90; // continuous RX
BAUDCON = 0x08; // BRG16 = 1
temp = RCREG; // Empty buffer
temp = RCREG; // Empty buffer
for(i=0;String[i]!='\0';i++)
{
TXbyte(String[i]);
}
while(PIR1bits.RCIF==0); //Wait util data from PC is received
for(i=0;String1[i]!='\0';i++)
{
TXbyte(String1[i]);
}
while(1); //loop forever
}
//Pract_8
/** I N C L U D E S ********/
#include<p18f4550.h>
/** P R I V A T E P R O T O T Y P E S
***************************************/
/** V E C T O R R E M A P P I N G
*******************************************/
#pragma code
/** D E C L A R A T I O N S
**************************************************/
#pragma code
void main()
{
TRISCbits.TRISC0 = 0 ; // DC Motor IN1
TRISCbits.TRISC1 = 0 ; // DC Motor IN2
TRISCbits.TRISC2 = 0 ; // CCP2 PWM
output, DC motor enable
PR2 = 0x4A; //10khz // set PWM period to
Maximum value
CCPR1L = 0x12; // Initalise PWM duty cycle to
00
CCP1CON = 0x2C; // Configure CCP1CON as
explained above.
T2CON = 0x07;
PORTCbits.RC0 = 0;
PORTCbits.RC1 = 1;
while(1)
{