บางครั้งผู้คนพบว่ามันยากที่จะอ่านอุณหภูมิจากเทอร์โมมิเตอร์แบบอะนาล็อกเนื่องจากความผันผวน ดังนั้นที่นี่เราจะสร้างเครื่องวัดอุณหภูมิแบบดิจิตอลอย่างง่ายโดยใช้ไมโครคอนโทรลเลอร์ 8051  ซึ่งเซ็นเซอร์ LM35ใช้สำหรับวัดอุณหภูมิ
โครงการนี้ยังจะทำหน้าที่เป็นอินเตอร์เฟซที่เหมาะสมของ ADC0804 กับ 8051 และ16 * 2 แอลซีดีพร้อม 8051 ไมโครคอนโทรลเลอร์

ส่วนประกอบที่จำเป็น:                          

  • คณะกรรมการพัฒนา 8051
  • บอร์ด ADC0804
  • จอแสดงผล LCD 16 * 2
  • เซ็นเซอร์ LM35
  • โอมิเตอร์
  • สายจัมเปอร์

แผนภูมิวงจรรวม:

 วงจรวัดอุณหภูมิแบบดิจิตอลโดยใช้ LM35 และ 8051

 

การวัดอุณหภูมิด้วย 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 ซึ่งแสดงอุณหภูมิบนหน้าจอ กระบวนการนี้ซ้ำหลังจากช่วงเวลาที่ระบุ
เทอร์โมมิเตอร์ดิจิตอลทำงานโดยใช้ LM35 และ 8051

คำอธิบายรหัส:

โปรแกรม 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 ครั้ง
  }
}