Лаб №10 Си програм ашиглан сериал
порт програмчлах - 2
1. Ажлын зорилго
1.
Компьютерийн цуваа портын бүтэц, холболтыг судлах
2.
Цуваа портыг програмчлах
2. Бэлтгэл ажил
1. TTL логик түвшнээс RS232, RS232
түвшнээс TTL логик түвшин хөрвүүлэгч IC чипний /MAX232/ бүтцийг судлах, datasheet-ийг уншиж
сурах
2. 2 компьютерийг сериал портоор холбох кросс болон шууд холболтын кабелийн
ялгааг мэдэх, бэлдэх
3.
Сериал портод хэрэглэгдэх командуудыг сурах
3. Лабораторид хэрэглэгдэх
төхөөрөмж
1. Лабын компьютерууд, оюутнуудын хувийн
зөөврийн РС
2. Зөөврийн РС-д зориулж USB-to-RS232 хөрвүүлэгч
кабель оюутнууд өөрсдөө авах
3. Кросс холболттой сериал кабель /Багшаас
авах/
4. Лабораторын ажлын даалгавар
1. Нэг РС-нээс өөрийн насыг илгээнэ, нөгөө РС дээр хүлээн
авч 21-с дээш настай бол танд тамхи худалдан авах эрх олголоо, үгүй бол та
тамхи худалдан авах эрхгүй гэсэн өгүүлбэрийг илгээгч РС-рүү буцаан явуулах код
бич.
2. Давталт ашиглан гараас оруулсан 3 бүхэл тоог нөгөө РС дээр хүлээн авч нийлбэрийг нь олох програм бич.
3. Нэг РС-нээс тэгш өнцөгт
гурвалжингийн хоёр катетын уртыг гараас оруулан илгээнэ, нөгөө РС дээр уг хоёр
тоог хүлээн авч гурвалжингийн гипотуз, дотоод өнцгүүд, талбай болон периметрийг олох програм бич.
4. Гараас
оруулсан 4 оронтой бүхэл тоог нөгөө РС-рүү илгээнэ, хүлээн авсан РС дээр
цифрүүдийн нийлбэрийг олох програм бич.
5. Гараас өөрийн нэр, оюутны кодыг оруулан нөгөө РС-рүү
илгээн name.txt файлд хадгалах код бич.
6. 10 ширхэг санамсаргүй бутархай
тоо үүсгэн нөгөө РС-рүү илгээж дэлгэцэнд хэвлэх код бич.
7. 20 ширхэг санамсаргүй 200-ын
дотор бүхэл тоо үүсгэн нөгөө РС-рүү илгээнэ, хүлээн авсан РС 20ш тоон дотор
50-150 хоорондох тоо хэд байгааг ол, мөн энэ тоонуудын нийлбэрийг олох код бич.
8. Unsigned short k=7854 гэсэн тоог (2 байт) нөгөө РС-рүү илгээнэ, хүлээн авагч РС дээр бит
шилжүүлэх үйлдэл болон бусад логик үйлдлүүдийг ашиглан нэг, нэг байт болгон
салгаж 10-т болон 2-тоор дэлгэцэнд хэвлэх програм бич.
9. Хайч, чулуу, даавуу тоглоомыг хоёр РС-ийг хооронд
сериал портоор холбож тоглох програм бич.
10. y=sin(x) функцийн графикийг (*) одоор дүрслэн нөгөө РС-рүү дамжуулах код бич.
11. in.txt файлыг уншин нөгөө РС-руу дамжуулна, нөгөө РС-дээр дараах зүйлүүдийг бодож олох програм бич. Жич: in.txt файл даалгаврын доор өгөгдсөн.
а. Файл дотор байгаа үгийн тоо
б. Өгүүлбэрийн тоо
в. Нийт үсгийн тоо
г. А ба а үсгийн тоо
д. е үсгийн у үсгээр солих програм бич.
12. Сериал порт ашиглан хоорондоо чатлах програм бич
5. Лабораторийн тайлан
1. Цуваа холболтын бүтэц, RS232 онцлог
шинжийг тайлбарлах
2. Кросс /cross/, шууд /direct/ холболтын
кабелын хэрэглээ ялгааг тайлбарлах
3. С дээр бичсэн кодоо бичиж тайлбарлах
4. Лабораторын ажлаар олж авсан мэдлэгээ
дүгнэж бич
6. Лабораторийн тайлан өгөх, хамгаалах
1. 1 баг 1 тайлан бичнэ.
2. Лаб-ын тайланг бусдаас хуулахгүй, өөрийн
үгээр илэрхийлсэн байна.
3. Лаб-ын ажлын тайланг дараагийн лаб орохын
өмнө багшид цаасан дээр хэвлэж өгч хамгаална.
7. Ашиглах материал
1) C-program example for
RS-232-C communication
#include <stdio.h>
FILE *out;
out=fopen("COM1:","w+");
/*w,w+,w+b,wt,w+t,wr,a+,r+*/
fscanf(out, “%s”, &ch) // файлаас өгөгдөл унших
fprintf(out1,"%c",character); //
файл руу өгөгдөл бичих
in.txt файлын утга:
This is text file for lab10 of EE312. Thank you for choosing EE312 Embedded C Programming. We learn in this lesson about basic C programming. Also study about embedded C.
Анхаарах зүйл: Нэг РС-нээс цуваа портоор өгөгдөл хүлээн аваад шалгаад хариу илгээх бол уншихаар нээсэн портыг заавал хаасны дараа өгөгдөл дамжуулна. Жишээг харна уу.
1. Дамжуулагч: Оюутан өөрийн насыг гараас оруулан цуваа портоор илгээнэ.
int main()
{
int k;
FILE *ser;
printf("Nasaa oruul=");
scanf("%d", &k);
ser=fopen("COM1:", "w"); // Цуваа порт руу өгөгдөл бичихээр зарлах
fprintf(ser, "%d \n", k); // Цуваа портоор илгээх
printf("Ilgeesen nas=%d \n", k);
fclose(ser); // Цуваа портыг хаах
return 0;
}
2. Хүлээн авагч: Оюутны насыг шалган 20-с их бол YES, үгүй бол No гэсэн үгийг цуваа портоор буцаан илгээнэ.
int main()
{
int k;
FILE *sw, *sr;
sr=fopen("COM1:", "r"); // Цуваа портоос өгөгдөл уншихаар зарлах
fscanf(sr, "%d", &k); // Цуваа портоос өгөгдөл унших
fclose(sr); // Өгөгдөл уншиж дуусаад портыг хаана
sw=fopen("COM1:", "w"); // Цуваа порт руу өгөгдөл бичихээр зарлах
if(k>20)
{
fprintf(sw, "%s \n", "YES"); // Цуваа портоор илгээх
printf("Ilgeesen ug=YES \n"); }
else
{
fprintf(sw, "%s \n", "NO"); // Цуваа портоор илгээх
printf("Ilgeesen ug=NO \n"); }
fclose(sw); // Цуваа портыг хаах
return 0;
}
in.txt файлын утга:
This is text file for lab10 of EE312. Thank you for choosing EE312 Embedded C Programming. We learn in this lesson about basic C programming. Also study about embedded C.
Анхаарах зүйл: Нэг РС-нээс цуваа портоор өгөгдөл хүлээн аваад шалгаад хариу илгээх бол уншихаар нээсэн портыг заавал хаасны дараа өгөгдөл дамжуулна. Жишээг харна уу.
1. Дамжуулагч: Оюутан өөрийн насыг гараас оруулан цуваа портоор илгээнэ.
int main()
{
int k;
FILE *ser;
printf("Nasaa oruul=");
scanf("%d", &k);
ser=fopen("COM1:", "w"); // Цуваа порт руу өгөгдөл бичихээр зарлах
fprintf(ser, "%d \n", k); // Цуваа портоор илгээх
printf("Ilgeesen nas=%d \n", k);
fclose(ser); // Цуваа портыг хаах
return 0;
}
2. Хүлээн авагч: Оюутны насыг шалган 20-с их бол YES, үгүй бол No гэсэн үгийг цуваа портоор буцаан илгээнэ.
int main()
{
int k;
FILE *sw, *sr;
sr=fopen("COM1:", "r"); // Цуваа портоос өгөгдөл уншихаар зарлах
fscanf(sr, "%d", &k); // Цуваа портоос өгөгдөл унших
fclose(sr); // Өгөгдөл уншиж дуусаад портыг хаана
sw=fopen("COM1:", "w"); // Цуваа порт руу өгөгдөл бичихээр зарлах
if(k>20)
{
fprintf(sw, "%s \n", "YES"); // Цуваа портоор илгээх
printf("Ilgeesen ug=YES \n"); }
else
{
fprintf(sw, "%s \n", "NO"); // Цуваа портоор илгээх
printf("Ilgeesen ug=NO \n"); }
fclose(sw); // Цуваа портыг хаах
return 0;
}
No comments:
Post a Comment