วงจรเข้ารหัส
Nateekan Ninkung
วันจันทร์ที่ 9 มีนาคม พ.ศ. 2563
วันอังคารที่ 25 กุมภาพันธ์ พ.ศ. 2563
งานหา micro 18
Interfacing LED
#include<reg51.h>
#define led P0
unsigned char i=0;
void delay (int);
void delay (int d)
{
unsigned char i=0;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}
void main()
{
while(1)//// led blink
{
led=0xff;
delay(1000);
led=0x00;
delay(1000);
++i;
if(i==7)
{
i=0;
break;
}
}
while(1)//// binary equivalent representation of 1byte data
{
led=i++;
if(i==256)
{
i=0;
break;
}
delay(500);
}
while(1);
}
งานหา micro 17
8 Channel Quiz Buzzer Circuit using Microcontroller
#include<reg51.h>
#define SEGMENT P2 // PORT2 to Segments of 7-Segment Display
#define SWITCH P1 // Input Switches (buttons) to PORT1
sbit buzz=P3^0; // Buzzer
sbit rst=P3^3; // Reset Switch (Reset the display) - not the microcontroller
sbit digit=P3^7; // 7-Segment Display Common Pin (to enable)
void delay (int); // Delay function
int x=0,y,z;
unsigned char ch[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98}; // Hexadecimal values from 0 to 9.
void delay (int d)
{
unsigned char i;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}
void main()
{
SWITCH=0xff;
SEGMENT=0xff;
digit=1;
buzz=0;
rst=1;
while(1)
{
while(SWITCH==0xff); // wait until any button is pressed.
while (SWITCH==0xfe) // Button 1 is pressed.
{
SEGMENT=ch[1];
buzz=1;
delay(1000); // Activate buzzer for 1 second.
buzz=0;
while(rst!=0); // display the digit until the reset is pressed.
}
while (SWITCH==0xfd) // Button 2 is pressed.
{
SEGMENT=ch[2];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0xfb) // Button 3 is pressed.
{
SEGMENT=ch[3];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0xf7) // Button 4 is pressed.
{
SEGMENT=ch[4];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0xef) // Button 5 is pressed.
{
SEGMENT=ch[5];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0xdf) // Button 6 is pressed.
{
SEGMENT=ch[6];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0xbf) // Button 7 is pressed.
{
SEGMENT=ch[7];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
while (SWITCH==0x7f) // Button 8 is pressed.
{
SEGMENT=ch[8];
buzz=1;
delay(1000);
buzz=0;
while(rst!=0);
}
SEGMENT=0xff;
rst=1;
}
}
งานหา micro 16
Bipolar LED Driver Circuit
#include<reg51.h>
sbit red = P0^0;
sbit green = P0^1;
sbit red_switch = P0^6;
sbit green_switch = P0^7;
unsigned char i=0;
void delay (int);
void main()
{
red=0;
green=0;
while(1)
{
if(red_switch==0)
{
green=0;
red=1;
while(red_switch==0);
}
else if(green_switch==0)
{
green=1;
red=0;
while(green_switch==0);
}
}
}
งานหา micro 15
Random Number Generator
#include<reg51.h>
#define lcd P0
sbit rs=P2^0;
sbit e=P2^1;
sbit sw=P3^0;
sbit rst=P3^1;
unsigned int i=0;
void delay (int);
void display (unsigned char);
void cmd (unsigned char);
void string (char *);
void init (void);
void int_lcd(unsigned int);
void delay (int d)
{
unsigned char i=0;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}
void cmd (unsigned char c)
{
lcd=c;
rs=0;
e=1;
delay(5);
e=0;
}
void display (unsigned char c)
{
lcd=c;
rs=1;
e=1;
delay(5);
e=0;
}
void string (char *p)
{
while(*p)
{
display(*p++);
}
}
void init (void)
{
cmd(0x38);
cmd(0x0c);
cmd(0x01);
cmd(0x80);
}
void int_lcd(unsigned int n)
{
char a[4]={0},i=0;
if(n==0)
{
display('0');
return;
}
else
{
while(n>0)
{
a[i++]=(n%10)+48;
n/=10;
}
for(--i;i>=0;i--)
{
display(a[i]);
}
}
}
void main()
{
sw=1;
rst=1;
init();
cmd(0x80);
string(" Random Number ");
cmd(0xc0);
string(" Generator ");
delay(2000);
cmd(0x01);
while(1)
{
cmd(0x80);
string("Press the button");
while(sw!=0)
{
i=++i;
if(i==100)
i=0;
}
cmd(0x80);
string("RAND NUM: ");
cmd(0x8a);
int_lcd(i);
while(rst!=0);
//cmd(0x01);
}
}
งานหา micro 14
Interfacing 16×2 LCD with 8051 Circuit Diagram
#include<reg51.h>
#define lcd P0
sbit rs=P2^0;
sbit e=P2^1;
void delay (int);
void cmd (char);
void display (char);
void custom (void);
void string (char *);
void init (void);
unsigned char custom_char[]= {0x00,0x04,0x0E,0x04,0x15,0x0E,0x04,0x00,
0x00,0x04,0x0E,0x0E,0x0E,0x1F,0x04,0x00,
0x00,0x0A,0x15,0x11,0x11,0x0A,0x04,0x00,
0x0E,0x11,0x11,0x1F,0x1B,0x1B,0x1B,0x1F,
0x0E,0x11,0x10,0x1F,0x1B,0x1B,0x1B,0x1F,
0x00,0x0E,0x15,0x1B,0x0E,0x0E,0x00,0x00,
};
void delay (int d)
{
unsigned char i;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}
void cmd (char c)
{
lcd=c;
rs=0;
e=1;
delay(5);
e=0;
}
void display (char c)
{
lcd=c;
rs=1;
e=1;
delay(5);
e=0;
}
void custom (void)
{
int k;
cmd(0x40);
for(k=0;k<48;k++)
display(custom_char[k]);
cmd(0x80);
}
void string (char *p)
{
while(*p)
{
display(*p++);
}
}
void init (void)
{
cmd(0x38);
cmd(0x0c);
cmd(0x01);
cmd(0x80);
}
void main()
{
init();
custom();
string("Electronics Hub ");
cmd(0xc0);
string(" Presents ");
delay(2000);
cmd(0x01);
cmd(0x80);
string(" Custom Chars ");
cmd(0xc0);
string(" on 16x2 LCD ");
delay(2000);
cmd(0x01);
cmd(0x80);
string("ABCDEFGHIJKLMNOP");
cmd(0xc0);
string("1234567890");
cmd(0xca);
display(0);
display(1);
display(2);
display(3);
display(4);
display(5);
while(1);
}
งานหา micro 13
Voltmeter using 8051 Microcontroller
#include<reg51.h>
#define lcd P3
#define dat P2
sbit rs=P1^6;
sbit e=P1^7;
void delay (int);
void display (unsigned char);
void cmd (unsigned char);
void init (void);
void string (char *);
void intro (void);
char i=0;
void delay (int d)
{
unsigned char i=0;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}
void cmd (unsigned char c)
{
lcd=c;
rs=0;
e=1;
delay(10);
e=0;
}
void display (unsigned char c)
{
lcd=c;
rs=1;
e=1;
delay(10);
e=0;
}
void string (char *c)
{
while(*c)
{
display(*c++);
}
}
void init (void)
{
cmd(0x38);
cmd(0x01);
cmd(0x0c);
cmd(0x80);
}
void intro (void)
{
string(" Electronics ");
cmd(0xc0);
string(" Hub ");
delay(2000);
cmd(0x01);
string(" Digital ");
cmd(0xc0);
string(" Voltmeter ");
delay(2000);
cmd(0x01);
cmd(0x80);
}
void main()
{
unsigned int temp=0;
unsigned int temp1=0;
float val=0.0;
init();
intro();
dat=0xff;
while(1)
{
if(i==0)
{
string(" Volts - ");
i++;
}
val=dat*0.02; // 0.02 is resolution of adc
val=val/0.2; // 0.2 is nothing but (R2/(R1+R2)) resistor values in the voltage sensor
cmd(0x89);
if((val>=1.0) && (val<10.0))
{
display(' ');
temp=val*1000;
temp1=((temp/1000)+48);
display(temp1);
display('.');
temp1=(((temp/100)%10)+48);
display(temp1);
}
else if((val>=10.0) && (val<100.0))
{
temp=val*100;
temp1=((temp/1000)+48);
display(temp1);
temp1=(((temp/100)%10)+48);
display(temp1);
display('.');
temp1=(((temp/10)%10)+48);
display(temp1);
}
else
{
display(' ');
string("0.0");
}
delay(1000);
}
while(1);
}
สมัครสมาชิก:
ความคิดเห็น (Atom)






