Berbagi teknologi

[TB Berfungsi] 51 MCU Proteus desain simulasi kalender abadi LCD12864 dan sistem pemantauan suhu berdasarkan MCU

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Masukkan deskripsi gambar di sini

Laporan percobaan: Perancangan sistem kalender abadi dan pemantauan suhu LCD12864 berbasis mikrokontroler

Pengenalan latar belakang

Percobaan ini bertujuan untuk merancang dan mengimplementasikan sistem kalender abadi berbasis tampilan LCD12864 mikrokontroler STC89C52, dan mengintegrasikan sensor suhu untuk mewujudkan fungsi pemantauan suhu. Sistem ini memiliki fungsi lonceng dan alarm setiap jam, dan meminta melalui bel. Desain ini tidak hanya dapat mewujudkan tampilan jam dan suhu dasar, tetapi juga memiliki fungsi alarm tertentu, sehingga cocok untuk skenario rumah atau kantor.

Pengenalan perangkat keras

  1. Mikrokontroler STC89C52: Sebagai pengontrol inti sistem, bertanggung jawab menangani implementasi berbagai fungsi.
  2. Layar LCD12864: Digunakan untuk menampilkan informasi seperti waktu, tanggal dan suhu.
  3. Sensor suhu DS18B20: Digunakan untuk memantau suhu sekitar secara real time.
  4. bel: Digunakan untuk waktu setiap jam dan pengingat alarm.
  5. Modul tombol: Digunakan bagi pengguna untuk mengatur fungsi waktu dan alarm.
  6. Komponen elektronik lainnya: Seperti resistor, kapasitor, dll., digunakan untuk konstruksi sirkuit dan pengoperasian yang stabil.

desain sirkuit

Sirkuit ini terutama terdiri dari mikrokontroler, layar LCD, sensor suhu dan bel. Tampilan layar LCD12864 dihubungkan ke mikrokontroler melalui antarmuka paralel, sensor suhu DS18B20 dihubungkan ke mikrokontroler melalui antarmuka kabel tunggal, dan bel dikontrol melalui port I/O mikrokontroler.

Petunjuk koneksi utama

  1. Layar LCD12864
    • Port data D0-D7 terhubung ke port P0 mikrokontroler.
    • Sinyal kontrol RS, RW, dan E masing-masing dihubungkan ke P2.0, P2.1, dan P2.2 mikrokontroler.
  2. Sensor suhu DS18B20
    • Port data DQ terhubung ke port P3.7 mikrokontroler.
  3. bel
    • Hubungkan ke port P2.0 mikrokontroler.
  4. Modul tombol
    • Setiap tombol terhubung ke port P1 mikrokontroler, yang digunakan untuk memindai dan mendeteksi status tombol.

desain perangkat lunak

inisialisasi sistem

Setelah sistem dinyalakan, sistem diinisialisasi terlebih dahulu, termasuk inisialisasi tampilan LCD, inisialisasi jam, inisialisasi interupsi, dll. Kode inisialisasinya adalah sebagai berikut:

void main( void )
{
	uchar	clock_time[6]	= { 0X00, 0X59, 0X23, 0X09, 0X04, 0X11 };       /* 定义时间变量 秒  分 时 日 月 年 */
	uchar	alarm_time[2]	= { 10, 06 };                                   /* 闹钟设置  alarm_time[0]: 分钟  alarm_time[1] :小时 */
	uchar	temperature[2];                                                 /* 定义温度变量   temperature[0]  低8位   temperature[1]  高8位 */
	Lcd_Initial();                                                          /* LCD初始化 */
	Clock_Fresh( clock_time );                                              /* 刷新时间 */
	Clock_Initial( clock_time );                                            /* 时钟初始化 */

	/* 中断初始化 */
	EA	= 1;    /* 开总中断 */
	ET0	= 1;    /* Timer0 开中断 */
	ET2	= 1;    /* Timer2 开中断 */
	TMOD	= 0x01; /* Timer0 工作方式 1 */
	RCAP2H	= 0x3c;
	RCAP2L	= 0xb0; /* Timer2 延时 50 ms */
}

Tampilan waktu dan pembaruan

Sistem terus-menerus menyegarkan waktu di loop utama dan menampilkannya melalui layar LCD. Pada saat yang sama, nilai suhu dibaca melalui sensor DS18B20 dan ditampilkan pada LCD.

while ( 1 )
{
	Clock_Fresh( clock_time );      /* 时间刷新 */
	Lcd_Clock( clock_time );        /* 时间显示 */

	Sensor_Fresh( temperature );    /* 温度更新 */
	Lcd_Temperture( temperature );  /* 温度显示 */

	/* 整点报时 */
	if ( (*clock_time == 0x59)