Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

1.14 do re mi

#include <iostream.h>

#include<conio.h>

#include<dos.h>

#define DCCS_8255 0x60

#define DCCS_8253 0x40

void set_sound(int Hz, int milisecond);

void main()

{

clrscr();

cout<<"

\t\tChuong trinh dieu khien 8255 va 8253 phat am ra loa.";

cout<<"

Bam cac phim 'a','s','d','f','h','j' de phat am, 'Esc' de ket thuc.

";

char k;

// Xuat tu dieu khien cho 8253, bo dem C2 hoat dong o che do 3, phat song vuong

outportb(DCCS_8253+3,0xB6);

do

{

k = getch();

switch (k)

{

case 'a':

set_sound(261,200);

cout<<"\rAm: Do'";

break;

case 's':

set_sound(293,200);

cout<<"\rAm: Re ";

break;

case 'd':

set_sound(329,200);

cout<<"\rAm: Mi ";

break;

case 'f':

set_sound(392,200);

cout<<"\rAm: Son";

break;

case 'g':

set_sound(440,200);

cout<<"\rAm: La ";

break;

case 'h':

set_sound(500,200);

cout<<"\rAm: Si ";

break;

case 'j':

set_sound(523,200);

cout<<"\rAm: Do'";

break;

}

}while(k!=27);

}

void set_sound(int Hz, int milisecond)

{

int temp;

int value;

temp = 1193180/Hz;

// Set frequency

outportb(DCCS_8253+2,temp); // Send low_byte

outportb(DCCS_8253+2,temp>>8); // Send high_byte

// Set bit PB0 , PB1 to start sound

value = inportb(DCCS_8255+1);

outportb(DCCS_8255+1,value|0x03);

// delay milisecond

delay(milisecond);

// Stop sound

outportb(DCCS_8255+1,value&0xFC);

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #may#tinh