เครื่องวัดอุณหภูมิดิจิตอลโดยใช้ LM35 และไมโครคอนโทรลเลอร์
ที่ฝัง
บางครั้งผู้คนพบว่ามันยากที่จะอ่านอุณหภูมิจากเทอร์โมมิเตอร์แบบอะนาล็อกเนื่องจากความผันผวน ดังนั้นที่นี่เราจะสร้างเครื่องวัดอุณหภูมิแบบดิจิตอลอย่างง่ายโดยใช้ไมโครคอนโทรลเลอร์ 8051 ซึ่งเซ็นเซอร์ LM35ใช้สำหรับวัดอุณหภูมิ
โครงการนี้ยังจะทำหน้าที่เป็นอินเตอร์เฟซที่เหมาะสมของ ADC0804 กับ 8051 และ16 * 2 แอลซีดีพร้อม 8051 ไมโครคอนโทรลเลอร์
ส่วนประกอบที่จำเป็น:
- คณะกรรมการพัฒนา 8051
- บอร์ด ADC0804
- จอแสดงผล LCD 16 * 2
- เซ็นเซอร์ LM35
- โอมิเตอร์
- สายจัมเปอร์
แผนภูมิวงจรรวม:
การวัดอุณหภูมิด้วย LM35 โดยใช้ 8051:
8051 ไมโครคอนโทรลเลอร์ เป็นไมโครคอนโทรลเลอร์ 8 บิตซึ่งมี 128 ไบต์ของบนชิปแรม, 4K ไบต์ของชิปรอม, สองตัวจับเวลา, หนึ่งพอร์ตอนุกรมและพอร์ต 8 บิตสี่ 8052 ไมโครคอนโทรลเลอร์เป็นส่วนเสริมของไมโครคอนโทรลเลอร์ ตารางด้านล่างแสดงการเปรียบเทียบสมาชิกครอบครัว 8051 คน
ลักษณะ
|
8051
|
8052
|
ROM (เป็นไบต์)
|
4K
|
8K
|
RAM (ไบต์)
|
128
|
256
|
จับเวลา
|
2
|
3
|
I / O พิน
|
32
|
32
|
พอร์ตอนุกรม
|
1
|
1
|
แหล่งขัดจังหวะ
|
6
|
8
|
จอแอลซีดี 16x2:
16 * 2 LCDเป็นจอแสดงผลที่ใช้กันอย่างแพร่หลายสำหรับการใช้งานแบบฝัง นี่คือคำอธิบายสั้น ๆ เกี่ยวกับหมุดและการทำงานของจอ LCD 16 * 2 มีการลงทะเบียนสำคัญสองอย่างใน LCD พวกเขาคือการลงทะเบียนข้อมูลและการลงทะเบียนคำสั่ง Command register ใช้ในการส่งคำสั่งเช่นการแสดงผลที่ชัดเจนเคอร์เซอร์ที่บ้าน ฯลฯ การลงทะเบียนข้อมูลจะใช้ในการส่งข้อมูลซึ่งจะแสดงบนจอ LCD ขนาด 16 * 2 ตารางด้านล่างแสดงคำอธิบายพินของแอลซีดี 16 * 2
หมุด
|
สัญลักษณ์
|
I / O
|
ลักษณะ
|
1
|
Vss
|
-
|
พื้น
|
2
|
Vdd
|
-
|
+ แหล่งจ่ายไฟ 5V
|
3
|
วี
|
-
|
แหล่งจ่ายไฟเพื่อควบคุมความคมชัด
|
4
|
อาร์เอส
|
ผม
|
RS = 0 สำหรับการลงทะเบียนคำสั่ง
RS = 1 สำหรับการลงทะเบียนข้อมูล
|
5
|
RW
|
ผม
|
R / W = 0 สำหรับการเขียน R / W = 1 สำหรับการอ่าน
|
6
|
E
|
I / O
|
ทำให้สามารถ
|
7
|
D0
|
I / O
|
บัสข้อมูล 8 บิต (LSB)
|
8
|
D1
|
I / O
|
บัสข้อมูล 8 บิต
|
9
|
D2
|
I / O
|
บัสข้อมูล 8 บิต
|
10
|
D3
|
I / O
|
บัสข้อมูล 8 บิต
|
11
|
D4
|
I / O
|
บัสข้อมูล 8 บิต
|
12
|
D5
|
I / O
|
บัสข้อมูล 8 บิต
|
13
|
D6
|
I / O
|
บัสข้อมูล 8 บิต
|
14
|
D7
|
I / O
|
บัสข้อมูล 8 บิต (MSB)
|
15
|
A
|
-
|
+ 5V สำหรับแบ็คไลท์
|
16
|
K
|
-
|
พื้น
|
ตารางด้านล่างแสดงรหัสคำสั่ง LCD ที่ใช้บ่อย
รหัส (ฐานสิบหก)
|
ลักษณะ
|
01
|
หน้าจอแสดงผลที่ชัดเจน
|
06
|
เคอร์เซอร์เพิ่มขึ้น (กะขวา)
|
0A
|
แสดงปิดเคอร์เซอร์บน
|
0C
|
แสดงผล, ปิดเคอร์เซอร์
|
0F
|
แสดงผล, เคอร์เซอร์กะพริบ
|
80
|
บังคับเคอร์เซอร์ไปยังจุดเริ่มต้นของ 1 เซนต์บรรทัด
|
C0
|
บังคับเคอร์เซอร์ไปยังจุดเริ่มต้นของ 2 ครั้งบรรทัด
|
38
|
2 บรรทัดและเมทริกซ์ 5 * 7
|
ADC0804 IC:
ADC0804 ICเป็น 8 บิต ADC ขนานในครอบครัวของชุด ADC0800 จากเซมิคอนดักเตอร์แห่งชาติ ใช้งานได้กับ +5 โวลต์และมีความละเอียด 8 บิต ขนาดขั้นตอนและช่วง Vin แตกต่างกันไปสำหรับค่า Vref / 2 ที่แตกต่างกัน ตารางด้านล่างแสดงความสัมพันธ์ระหว่างช่วง Vref / 2 และ Vin
Vref / 2 (V)
|
Vin (V)
|
ขนาดขั้นตอน (mV)
|
เปิด
|
0 ถึง 5
|
19.53
|
2.0
|
0 ถึง 4
|
15.62
|
1.5
|
0 ถึง 3
|
11.71
|
1.28
|
0 ถึง 2.56
|
10
|
ในกรณีของเรา Vref / 2 เชื่อมต่อกับ 1.28 โวลต์ดังนั้นขนาดขั้นตอนคือ 10mV สำหรับขนาดขั้นตอน ADC0804 จะคำนวณเป็น (2 * Vref / 2) / 256
สูตรต่อไปนี้ใช้ในการคำนวณแรงดันขาออก:
Dout = Vin / ขนาดขั้นตอน
โดยที่ Dout คือข้อมูลดิจิตอลในรูปทศนิยม Vin = แรงดันไฟฟ้าอินพุตแบบอะนาล็อกและขนาดขั้นตอน (ความละเอียด) เป็นการเปลี่ยนแปลงที่เล็กที่สุด เรียนรู้เพิ่มเติมเกี่ยวADC0804 ที่นี่ยังตรวจสอบการเชื่อมต่อของ ADC0808 กับ 8051
เซ็นเซอร์อุณหภูมิ LM35:
LM35เป็นเซ็นเซอร์อุณหภูมิที่มีแรงดันออกเป็นสัดส่วนเป็นเส้นตรงไปที่อุณหภูมิเซลเซียส LM35 มาพร้อมการสอบเทียบแล้วจึงไม่จำเป็นต้องทำการสอบเทียบภายนอก มันส่งออก 10mV สำหรับแต่ละองศาของอุณหภูมิเซลเซียส
เซ็นเซอร์ LM35 สร้างแรงดันไฟฟ้าให้สอดคล้องกับอุณหภูมิ แรงดันไฟฟ้านี้ถูกแปลงเป็นดิจิตอล (0 ถึง 256) โดย ADC0804 และป้อนให้กับไมโครคอนโทรลเลอร์ 8051 ไมโครคอนโทรลเลอร์ 8051 แปลงค่าดิจิตอลนี้เป็นอุณหภูมิในหน่วยองศาเซลเซียส จากนั้นอุณหภูมินี้จะถูกแปลงเป็นรูปแบบ ASCII ซึ่งเหมาะสำหรับการแสดงผล ค่า ascii นี้จะถูกป้อนไปที่ 16 * 2 LCD ซึ่งแสดงอุณหภูมิบนหน้าจอ กระบวนการนี้ซ้ำหลังจากช่วงเวลาที่ระบุ
คำอธิบายรหัส:
โปรแกรม C ที่สมบูรณ์สำหรับโครงการเครื่องวัดอุณหภูมิ 8051นี้มอบให้ในตอนท้ายของโครงการนี้ รหัสจะแบ่งออกเป็นชิ้นเล็ก ๆ ที่มีความหมายและอธิบายไว้ด้านล่าง
สำหรับการเชื่อมต่อ LCD 16 * 2 กับไมโครคอนโทรลเลอร์ 8051เราต้องกำหนดพินที่เชื่อมต่อแอลซีดี 16 * 2 กับไมโครคอนโทรลเลอร์ 8051 RS pin ของ 16 * 2 lcd เชื่อมต่อกับ P2.7, RW pin ของ 16 * 2 lcd เชื่อมต่อกับ P2.6 และ E pin ของ 16 * 2 lcd เชื่อมต่อกับ P2.5 หมุดข้อมูลเชื่อมต่อกับพอร์ต 0 ของ 8051 ไมโครคอนโทรลเลอร์
sbit rs = P2 ^ 7; // ลงทะเบียน Select (RS) pin ขนาด 16 * 2 lcd sbit rw = P2 ^ 6; // อ่าน / เขียน (RW) พินจอแอลซีดีขนาด 16 * 2 sbit en = P2 ^ 5; // เปิดใช้งาน (E) พินของจอแอลซีดีขนาด 16 * 2
ในทำนองเดียวกันสำหรับADC0804 การเชื่อมต่อกับไมโครคอนโทรลเลอร์8051เราต้องกำหนดพินที่ ADC0804 เชื่อมต่อกับไมโครคอนโทรลเลอร์ 8051 RD pin ของ ADC0804 เชื่อมต่อกับ P3.0, WR pin ของ ADC0804 เชื่อมต่อกับ P3.1 และ INTR pin ของ ADC0804 เชื่อมต่อกับ P3.2 หมุดข้อมูลเชื่อมต่อกับพอร์ต 1 ของไมโครคอนโทรลเลอร์ 8051
sbit rd_adc = P3 ^ 0; // อ่าน (RD) พินของ ADC0804 sbit wr_adc = P3 ^ 1; // เขียนพิน (WR) ของ ADC0804 sbit intr_adc = P3 ^ 2; // ขาขัดจังหวะ (INTR) ของ ADC0804
ต่อไปเราจะต้องกำหนดฟังก์ชั่นบางอย่างที่ใช้ในโปรแกรม ความล่าช้าของฟังก์ชั่นที่ใช้ในการสร้างความล่าช้าเวลาที่กำหนดคmdwrtฟังก์ชั่นที่ใช้ในการส่งคำสั่งไป 16 * 2 จอ LCD, datawrtฟังก์ชั่นที่ใช้ในการส่งข้อมูลไปยัง 16 * 2 จอแสดงผลแอลซีดีและconvert_displayฟังก์ชั่นที่ใช้ในการแปลงข้อมูล ADC ลงอุณหภูมิ และเพื่อแสดงบนจอแสดงผลแอลซีดี 16 * 2
โมฆะล่าช้า (int ไม่ได้ลงนาม); // ฟังก์ชันสำหรับการสร้างความล่าช้า เป็นโมฆะ cmdwrt (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับส่งคำสั่งไปยังจอแสดงผล 16 * 2 โมฆะ datawrt (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับส่งข้อมูลไปยังจอแสดงผล LCD 16 * 2 โมฆะ convert_display (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับการแปลงค่า ADC เป็นอุณหภูมิและแสดงผลบนหน้าจอ LCD ขนาด 16 * 2
ในส่วนด้านล่างของรหัสที่เราจะส่งคำสั่งไปยัง 16 * 2 จอแอลซีดี คำสั่งดังกล่าวเป็นจอแสดงผลที่ชัดเจนเคอร์เซอร์เพิ่มขึ้นบังคับเคอร์เซอร์ไปยังจุดเริ่มต้นของ 1 เซนต์สายจะถูกส่งไปแสดงผล 16 * 2 จอแอลซีดีหนึ่งโดยหนึ่งหลังจากที่ล่าช้าบางเวลาที่ระบุไว้
สำหรับ (i = 0; i <5; i ++) // ส่งคำสั่งไปที่ 16 * 2 lcd แสดงทีละคำสั่ง { cmdwrt (cmd [ผม]); // function call เพื่อส่งคำสั่งไปยังจอแสดงผล 16 * 2 lcd ล่าช้า (1); }
ในส่วนของรหัสนี้เราจะส่งข้อมูลไปยัง 16 * 2 จอแอลซีดี ข้อมูลที่จะแสดงบนจอแสดงผลแอลซีดี 16 * 2 จะถูกส่งไปแสดงทีละภาพหลังจากเวลาหน่วงที่ระบุ
สำหรับ (i = 0; i <12; i ++) // ส่งข้อมูลไปยังจอ LCD ขนาด 16 * 2 แสดงอักขระทีละตัว { datawrt (data1 [ผม]); // ฟังก์ชั่นการโทรเพื่อส่งข้อมูลไปยังจอแสดงผล 16 * 2 ล่าช้า (1); }
ในส่วนของรหัสนี้เรากำลังแปลงแรงดันไฟฟ้าอะนาล็อกที่ผลิตโดยเซ็นเซอร์ LM35 เป็นข้อมูลดิจิตอลจากนั้นจะถูกแปลงเป็นอุณหภูมิและแสดงบนจอแสดงผลแอลซีดี 16 * 2 เพื่อให้ ADC0804 เริ่มต้นการแปลงเราต้องส่งพัลส์ต่ำถึงสูงบนขาพินของ ADC0804 จากนั้นเราต้องรอจนกว่าจะสิ้นสุดการแปลง INTR จะต่ำเมื่อสิ้นสุดการแปลง เมื่อ INTR เหลือน้อย RD จะทำการคัดลอกข้อมูลดิจิตอลไปยังพอร์ต 0 ของ 8051 ไมโครคอนโทรลเลอร์ หลังจากหน่วงเวลาที่กำหนดรอบถัดไปจะเริ่มต้นขึ้น กระบวนการนี้จะทำซ้ำตลอดไป
ในขณะที่ (1) // ทำซ้ำอย่างถาวร { wr_adc = 0; // ส่ง LOW ไปที่พัลส์สูงบนขา WR ล่าช้า (1); wr_adc = 1; ในขณะที่ (intr_adc == 1); // รอการสิ้นสุดของการแปลง rd_adc = 0; // ทำให้ RD = 0 อ่านข้อมูลจาก ADC0804 value = P1; // คัดลอกข้อมูล ADC convert_display (คุ้มค่า); // function call เพื่อแปลงข้อมูล ADC เป็นอุณหภูมิและแสดงผลบนหน้าจอ lcd ขนาด 16 * 2 ล่าช้า (1000) // ช่วงเวลาระหว่างทุกรอบ rd_adc = 1; // ทำให้ RD = 1 สำหรับรอบถัดไป }
ในส่วนด้านล่างของรหัสเราจะส่งคำสั่งไปยังจอแสดงผลแอลซีดี 16 * 2 คำสั่งถูกคัดลอกไปยังพอร์ต 0 ของ 8051 ไมโครคอนโทรลเลอร์ RS ต่ำสำหรับการเขียนคำสั่ง RW ต่ำสำหรับการเขียน มีการใช้พัลส์สูงถึงต่ำบนพินเปิดใช้งาน (E) เพื่อเริ่มการเขียนคำสั่ง
เป็นโมฆะ cmdwrt (ไม่ได้ลงนามถ่าน x) { P0 = x; // ส่งคำสั่งไปที่พอร์ต 0 ซึ่งเชื่อมต่อ lcd 16 * 2 อาร์เอส = 0; // make RS = 0 สำหรับคำสั่ง RW = 0; // ทำให้ RW = 0 สำหรับการเขียน en = 1; // ส่งพัลส์ HIGH ถึง LOW บนพิน Enable (E) เพื่อเริ่มการทำงานของ commandwrite ล่าช้า (1); en = 0; }
ในส่วนนี้ของรหัสเรากำลังส่งข้อมูลไปยังจอแสดงผลแอลซีดี 16 * 2 ข้อมูลจะถูกคัดลอกไปยังพอร์ต 0 ของ 8051 ไมโครคอนโทรลเลอร์ RS สร้างสูงสำหรับการเขียนคำสั่ง RW ต่ำสำหรับการเขียน มีการใช้พัลส์สูงถึงต่ำบนพินเปิดใช้งาน (E) เพื่อเริ่มการเขียนข้อมูล
โมฆะ datawrt (ไม่ได้ลงนามถ่าน y) { P0 y =; // ส่งข้อมูลไปยังพอร์ต 0 ซึ่งเชื่อมต่อ lcd 16 * 2 อาร์เอส = 1; // make RS = 1 สำหรับคำสั่ง RW = 0; // ทำให้ RW = 0 สำหรับการเขียน en = 1; // ส่งพัลส์ HIGH ถึง LOW บนพิน Enable (E) เพื่อเริ่มการทำงานของ datawrite ล่าช้า (1); en = 0; }
ในส่วนของรหัสนี้เรากำลังแปลงข้อมูลดิจิตอลเป็นอุณหภูมิและแสดงบนจอแสดงผลแอลซีดี 16 * 2
เป็นโมฆะ convert_display (ค่าถ่านที่ไม่ได้ลงชื่อ) { ถ่าน x1 ที่ไม่ได้ลงนาม, x2, x3; cmdwrt (0xc6); // คำสั่งเพื่อตั้งค่าเคอร์เซอร์ไปที่ตำแหน่งที่ 6 ของบรรทัดที่ 2 บนจอ LCD ขนาด 16 * 2 x1 = (ราคา / 10); // หารค่าด้วย 10 และเก็บผลหารในตัวแปร x1 x1 = x1 + (0x30); // แปลงตัวแปร x1 เป็น ascii โดยเพิ่ม 0x30 x2 = ค่า% 10; // หารค่าด้วย 10 และเก็บส่วนที่เหลือในตัวแปร x2 x2 = x2 + (0x30); // แปลงตัวแปร x2 เป็น ascii โดยเพิ่ม 0x30 x3 = 0xDF; // ค่าสัญลักษณ์ ASCII ขององศา (°) datawrt (x1); // แสดงอุณหภูมิบนจอแสดงผล 16 * 2 lcd datawrt (x2); datawrt (x3); datawrt ( 'C'); }
ตรวจสอบเทอร์โมมิเตอร์อื่น ๆ ที่ใช้ LM35 ด้วยไมโครคอนโทรลเลอร์ที่แตกต่างกัน:
รหัส
/ * โปรแกรมนี้ใช้สำหรับแสดงอุณหภูมิบนจอ LCD ขนาด 16 * 2 ที่ใช้ไมโครคอนโทรลเลอร์ 8051, เซ็นเซอร์ LM35 และ ADC0804 * /
#include <reg51.h>
sbit rs = P2 ^ 7; // ลงทะเบียน Select (RS) pin ขนาด 16 * 2 lcd
sbit rw = P2 ^ 6; // อ่าน / เขียน (RW) พินจอแอลซีดีขนาด 16 * 2
sbit en = P2 ^ 5; // เปิดใช้งาน (E) พินของจอแอลซีดีขนาด 16 * 2
sbit rd_adc = P3 ^ 0; // อ่าน (RD) พินของ ADC0804
sbit wr_adc = P3 ^ 1; // เขียนพิน (WR) ของ ADC0804
sbit intr_adc = P3 ^ 2; // ขาขัดจังหวะ (INTR) ของ ADC0804
โมฆะล่าช้า (int ไม่ได้ลงนาม); // ฟังก์ชันสำหรับการสร้างความล่าช้า
เป็นโมฆะ cmdwrt (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับส่งคำสั่งไปยังจอแสดงผล 16 * 2
โมฆะ datawrt (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับส่งข้อมูลไปยังจอแสดงผล LCD 16 * 2
โมฆะ convert_display (ถ่านที่ไม่ได้ลงชื่อ); // ฟังก์ชั่นสำหรับการแปลงค่า ADC เป็นอุณหภูมิและแสดงผลบนหน้าจอ LCD ขนาด 16 * 2
void main (void) // ฟังก์ชั่นหลัก
{
ถ่านฉันไม่ได้ลงนาม;
char cmd ไม่ได้ลงนาม [] = {0x38,0x01,0x06,0x0c, 0x82}; // 16 * 2 คำสั่งการเริ่มต้นใช้งาน lcd
char data1 [] = "อุณหภูมิ:";
ค่าถ่านที่ไม่ได้ลงนาม;
P1 = 0xFF; // ทำให้พอร์ต 1 เป็นพอร์ตอินพุต
P0 = 0x00; // ทำให้พอร์ต 0 เป็นพอร์ตออก
สำหรับ (i = 0; i <5; i ++) // ส่งคำสั่งไปที่ 16 * 2 lcd แสดงทีละคำสั่ง
{
cmdwrt (cmd [ผม]); // function call เพื่อส่งคำสั่งไปยังจอแสดงผล 16 * 2 lcd
ล่าช้า (1);
}
สำหรับ (i = 0; i <12; i ++) // ส่งข้อมูลไปยังจอ LCD ขนาด 16 * 2 แสดงอักขระทีละตัว
{
datawrt (data1 [ผม]); // ฟังก์ชั่นการโทรเพื่อส่งข้อมูลไปยังจอแสดงผล 16 * 2
ล่าช้า (1);
}
intr_adc = 1; // ทำ pin INTR เป็นอินพุต
rd_adc = 1; // ตั้งค่า RD pin HIGH
wr_adc = 1; // ตั้งค่า WR pin ต่ำ
ในขณะที่ (1) // ทำซ้ำอย่างถาวร
{
wr_adc = 0; // ส่ง LOW ไปที่พัลส์สูงบนขา WR
ล่าช้า (1);
wr_adc = 1;
ในขณะที่ (intr_adc == 1); // รอการสิ้นสุดของการแปลง
rd_adc = 0; // ทำให้ RD = 0 อ่านข้อมูลจาก ADC0804
value = P1; // คัดลอกข้อมูล ADC
convert_display (คุ้มค่า); // function call เพื่อแปลงข้อมูล ADC เป็นอุณหภูมิและแสดงผลบนหน้าจอ lcd ขนาด 16 * 2
ล่าช้า (1000) // ช่วงเวลาระหว่างทุกรอบ
rd_adc = 1; // ทำให้ RD = 1 สำหรับรอบถัดไป
}
}
เป็นโมฆะ cmdwrt (ไม่ได้ลงนามถ่าน x)
{
P0 = x; // ส่งคำสั่งไปที่พอร์ต 0 ซึ่งเชื่อมต่อ lcd 16 * 2
อาร์เอส = 0; // make RS = 0 สำหรับคำสั่ง
RW = 0; // ทำให้ RW = 0 สำหรับการเขียน
en = 1; // ส่งพัลส์ HIGH ถึง LOW บนพิน Enable (E) เพื่อเริ่มการทำงานของ commandwrite
ล่าช้า (1);
en = 0;
}
โมฆะ datawrt (ไม่ได้ลงนามถ่าน y)
{
P0 y =; // ส่งข้อมูลไปยังพอร์ต 0 ซึ่งเชื่อมต่อ lcd 16 * 2
อาร์เอส = 1; // make RS = 1 สำหรับคำสั่ง
RW = 0; // ทำให้ RW = 0 สำหรับการเขียน
en = 1; // ส่งพัลส์ HIGH ถึง LOW บนพิน Enable (E) เพื่อเริ่มการทำงานของ datawrite
ล่าช้า (1);
en = 0;
}
เป็นโมฆะ convert_display (ค่าถ่านที่ไม่ได้ลงชื่อ)
{
ถ่าน x1 ที่ไม่ได้ลงนาม, x2, x3;
cmdwrt (0xc6); // คำสั่งเพื่อตั้งค่าเคอร์เซอร์ไปที่ตำแหน่งที่ 6 ของบรรทัดที่ 2 บนจอ LCD ขนาด 16 * 2
x1 = (ราคา / 10); // หารค่าด้วย 10 และเก็บผลหารในตัวแปร x1
x1 = x1 + (0x30); // แปลงตัวแปร x1 เป็น ascii โดยเพิ่ม 0x30
x2 = ค่า% 10; // หารค่าด้วย 10 และเก็บส่วนที่เหลือในตัวแปร x2
x2 = x2 + (0x30); // แปลงตัวแปร x2 เป็น ascii โดยเพิ่ม 0x30
x3 = 0xDF; // ค่าสัญลักษณ์ ASCII ขององศา (°)
datawrt (x1); // แสดงอุณหภูมิบนจอแสดงผล 16 * 2 lcd
datawrt (x2);
datawrt (x3);
datawrt ( 'C');
}
เป็นโมฆะล่าช้า (int z ไม่ได้ลงนาม)
{
ไม่ได้ลงนาม int p, q;
สำหรับ (p = 0; p <z; p ++) // ทำซ้ำสำหรับ 'z' ครั้ง
{
สำหรับ (q = 0; Q <1375; Q ++); // ทำซ้ำ 1375 ครั้ง
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น