Sample Code for RDC EET214 Lab3

Dependencies:   mbed

Committer:
YuliangHao
Date:
Tue Sep 26 15:52:50 2017 +0000
Revision:
1:f780b7362982
Parent:
0:0f219dfaaa4a
Child:
2:e36baf6001b1
Minor Correction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YuliangHao 1:f780b7362982 1 //Sample Code for EET214 Lab3 Thermostat
YuliangHao 1:f780b7362982 2
YuliangHao 0:0f219dfaaa4a 3 #include "mbed.h"
YuliangHao 0:0f219dfaaa4a 4
YuliangHao 1:f780b7362982 5 DigitalOut furnace(LED4); //use LED4 to simualte furnace
YuliangHao 0:0f219dfaaa4a 6 AnalogIn room_T(p20); //Use pin 20 to read room temperature
YuliangHao 0:0f219dfaaa4a 7 int iRoom_T = 0; //Room Temperature in integer
YuliangHao 1:f780b7362982 8 int iRoom_T_One = 0; //Temperature number at one digit
YuliangHao 1:f780b7362982 9 int iRoom_T_Ten = 0; //Temperature number at ten digit
YuliangHao 0:0f219dfaaa4a 10
YuliangHao 0:0f219dfaaa4a 11 int display10( int iRoom_T_Ten); //Function to display ten digits
YuliangHao 0:0f219dfaaa4a 12 int display1( int iRoom_T_One); //Function to display one digits
YuliangHao 0:0f219dfaaa4a 13
YuliangHao 1:f780b7362982 14 BusOut displayA(p5, p6, p7, p8, p9, p10, p11, p12); //Use P5 - P12 for Display 1
YuliangHao 1:f780b7362982 15 BusOut displayB(p21,p22,p23,p24,p25,p26,p27,p28); //Use P21- P28 for display 2
YuliangHao 0:0f219dfaaa4a 16
YuliangHao 0:0f219dfaaa4a 17 int main() {
YuliangHao 0:0f219dfaaa4a 18 while(1) {
YuliangHao 0:0f219dfaaa4a 19
YuliangHao 0:0f219dfaaa4a 20 //Read sensor and convert the value into integer
YuliangHao 0:0f219dfaaa4a 21 iRoom_T = (int)(( room_T * 3.3 ) /0.01 );
YuliangHao 0:0f219dfaaa4a 22
YuliangHao 0:0f219dfaaa4a 23 //Display Room Temperature
YuliangHao 0:0f219dfaaa4a 24 iRoom_T_Ten = iRoom_T / 10; //Get number at ten digits
YuliangHao 0:0f219dfaaa4a 25 iRoom_T_One = iRoom_T % 10; //Get number at one digits
YuliangHao 0:0f219dfaaa4a 26
YuliangHao 0:0f219dfaaa4a 27 display10(iRoom_T_Ten); //Display ten digits
YuliangHao 0:0f219dfaaa4a 28 display1(iRoom_T_One); //Display one digits
YuliangHao 0:0f219dfaaa4a 29
YuliangHao 1:f780b7362982 30 //Turn on / off furnace according to temperature
YuliangHao 0:0f219dfaaa4a 31 if(iRoom_T > 27)
YuliangHao 1:f780b7362982 32 furnace = 0;
YuliangHao 1:f780b7362982 33 if(iRoom_T < 25)
YuliangHao 0:0f219dfaaa4a 34 furnace = 1;
YuliangHao 0:0f219dfaaa4a 35
YuliangHao 0:0f219dfaaa4a 36 wait(1); //Wait for 1 second
YuliangHao 1:f780b7362982 37 } // End of while(1)
YuliangHao 0:0f219dfaaa4a 38 }
YuliangHao 0:0f219dfaaa4a 39
YuliangHao 0:0f219dfaaa4a 40 //Display number at ten digits
YuliangHao 0:0f219dfaaa4a 41 int display10( int iRoom_T_Ten)
YuliangHao 0:0f219dfaaa4a 42 {
YuliangHao 0:0f219dfaaa4a 43 switch(iRoom_T_Ten)
YuliangHao 0:0f219dfaaa4a 44 {
YuliangHao 0:0f219dfaaa4a 45 case 0:
YuliangHao 1:f780b7362982 46 //displayA = 0x3f; //Common Cathode
YuliangHao 1:f780b7362982 47 displayA = 0xC0; //Common Anode
YuliangHao 0:0f219dfaaa4a 48 break;
YuliangHao 0:0f219dfaaa4a 49
YuliangHao 0:0f219dfaaa4a 50 case 1:
YuliangHao 0:0f219dfaaa4a 51 // displayA = 0x3f;
YuliangHao 0:0f219dfaaa4a 52 break;
YuliangHao 0:0f219dfaaa4a 53
YuliangHao 0:0f219dfaaa4a 54
YuliangHao 0:0f219dfaaa4a 55
YuliangHao 0:0f219dfaaa4a 56 default:
YuliangHao 0:0f219dfaaa4a 57 // displayA = 0x00;
YuliangHao 0:0f219dfaaa4a 58 break;
YuliangHao 0:0f219dfaaa4a 59 }
YuliangHao 0:0f219dfaaa4a 60
YuliangHao 0:0f219dfaaa4a 61 return 1;
YuliangHao 0:0f219dfaaa4a 62 }
YuliangHao 0:0f219dfaaa4a 63
YuliangHao 0:0f219dfaaa4a 64 //Display number at one digits
YuliangHao 0:0f219dfaaa4a 65 int display1( int iRoom_T_One)
YuliangHao 0:0f219dfaaa4a 66 {
YuliangHao 0:0f219dfaaa4a 67 switch(iRoom_T_One)
YuliangHao 0:0f219dfaaa4a 68 {
YuliangHao 0:0f219dfaaa4a 69 case 0:
YuliangHao 1:f780b7362982 70 //displayB = 0x3f; //Common Cathode
YuliangHao 1:f780b7362982 71 displayB = 0xC0; //Common Anode
YuliangHao 0:0f219dfaaa4a 72 break;
YuliangHao 0:0f219dfaaa4a 73
YuliangHao 0:0f219dfaaa4a 74 case 1:
YuliangHao 0:0f219dfaaa4a 75 // displayB = 0x3f;
YuliangHao 0:0f219dfaaa4a 76 break;
YuliangHao 0:0f219dfaaa4a 77
YuliangHao 0:0f219dfaaa4a 78
YuliangHao 0:0f219dfaaa4a 79
YuliangHao 0:0f219dfaaa4a 80 default:
YuliangHao 0:0f219dfaaa4a 81 // displayB = 0x00;
YuliangHao 0:0f219dfaaa4a 82 break;
YuliangHao 0:0f219dfaaa4a 83 }
YuliangHao 0:0f219dfaaa4a 84
YuliangHao 0:0f219dfaaa4a 85 return 1;
YuliangHao 0:0f219dfaaa4a 86 }