當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]突發(fā)奇想,于是便寫了一個(gè)小程序用于控制臺(tái)燈,這幾天功能也在不斷的完善中,目前基本已經(jīng)完成.下面進(jìn)行功能的簡(jiǎn)述的代碼的分析.整體設(shè)計(jì)包含下位機(jī)程序和上位機(jī)程序.下位機(jī)用的c語言,上位機(jī)用的c#整個(gè)系統(tǒng)功能包括:定時(shí)

突發(fā)奇想,于是便寫了一個(gè)小程序用于控制臺(tái)燈,這幾天功能也在不斷的完善中,目前基本已經(jīng)完成.下面進(jìn)行功能的簡(jiǎn)述的代碼的分析.

整體設(shè)計(jì)包含下位機(jī)程序和上位機(jī)程序.下位機(jī)用的c語言,上位機(jī)用的c#

整個(gè)系統(tǒng)功能包括:定時(shí)采集室溫在電腦右下角顯示,可聯(lián)網(wǎng)校準(zhǔn)電子時(shí)鐘,可以電腦端快捷鍵控制臺(tái)燈.視頻中展示的順序?yàn)?/p>


1,自動(dòng)獲取溫度,圖標(biāo)動(dòng)態(tài)顯示室溫 2,手動(dòng)獲取溫度 3,按鈕控制臺(tái)燈 4 ,快捷鍵控制臺(tái)燈 5,聯(lián)網(wǎng)校準(zhǔn)電子時(shí)鐘 6最后展示


在任何界面只要按下快捷鍵便可以打開臺(tái)燈(windows hook).


下面進(jìn)行整個(gè)系統(tǒng)代碼和原理的介紹.


下位機(jī),


硬件上 ,包括 51單片機(jī),ds1302,18b20,uln2003,pl2303 .硬件連接圖如下:

下位機(jī)程序分析:


1 /************************************************************************/

2 // 本程序作者 HennSun ,轉(zhuǎn)載請(qǐng)表明出處.

3 //

4 /************************************************************************/

5 #include

6 #include "uart.h"

7 #include "18b20.h"

8 #include "ds1302.h"

9 #define buff_size 5

10 sbit jdq=P1^0;

11 sbit key_led=P3^3;

12 unsigned int num;

13 unsigned char control=0,set_time=0;

14 unsigned char time[buff_size]; //用于設(shè)定時(shí)間

15 extern unsigned int temp;

16 extern unsigned char flag_get;

17

18 /*----------初始化定時(shí)器---------*/

19

20 void init_timer()

21 {

22 TMOD =0x01;//定時(shí)器設(shè)置 T0工作于方式1 16位

23 TH0=0xef;

24 TL0=0xf0;

25 ET0=1; //定時(shí)器 0 中斷允許 .

26 TR0=1; // run the timer0 這個(gè)中斷會(huì)讓單片機(jī)查詢中斷向量表.

27 EA = 1; //打開總中斷

28 }

29

30 //顯示 open 字符

31 void disp_open()

32 {

33 unsigned int i=400;

34 while(i--)

35 {

36 P2=2;

37 P0=0x3f; //'O'

38 delay1(1);

39 P0=0X00;

40

41 P2=3;

42 P0=0x73; //'P'

43 delay1(1);

44 P0=0X00;

45

46 P2=4;

47 P0=0x79; //'E'

48 delay1(1);

49 P0=0X00;

50

51 P2=5;

52 P0=0x37; //'N'

53 delay1(1);

54 P0=0X00;

55 }

56

57 }

58 // 顯示close 字符

59 void disp_close()

60 {

61 unsigned int i=400;

62 while(i--)

63 {

64 P2=2;

65 P0=0x39; //'C'

66 delay1(1);

67 P0=0X00;

68

69 P2=3;

70 P0=0x38; //'L'

71 delay1(1);

72 P0=0X00;

73

74 P2=4;

75 P0=0x3f; //'O'

76 delay1(1);

77 P0=0X00;

78

79 P2=5;

80 P0=0x6d; //'S'

81 delay1(1);

82 P0=0X00;

83

84 P2=6;

85 P0=0x79; //'E'

86 delay1(1);

87 P0=0X00;

88 }

89

90 }

91

92

93 /*----------------------------------------------------------------------------------------

94 這是主函數(shù)部分

95 --------------------------------------------------------------------------------------*/

96 void main()

97 {

98 unsigned int TempH,TempL;

99 unsigned char H, L ;

100 jdq=0;

101 init_timer();

102 init_ds1302();

103 UARTinit();

104

105 while(1)

106 {

107 if(flag_get) //定時(shí)讀取當(dāng)前溫度

108 {

109

110 temp=ReadTemperature(); //這個(gè)函數(shù)8ms

111

112 if(temp&0x8000)

113 {

114 temp=~temp; // 取反加1

115 temp +=1;

116 }

117 TempH=temp>>4;

118 TempL=temp&0x0F;

119 TempL=TempL*6/10;//小數(shù)近似處理

120

121 H=(unsigned char)TempH;

122 L=(unsigned char)TempL;

123 /**/

124 send_char_com('a');

125 send_char_com(H);

126 send_char_com(L);

127 send_char_com('e');

128 flag_get=0;

129

130 } //這個(gè)循環(huán)用11ms

131 if(control)

132 {

133 jdq=~jdq;

134 if(jdq)

135 {

136 send_char_com('o');

137 send_char_com('e');

138 disp_open();

139 }

140 else

141 {

142 send_char_com('c');

143 send_char_com('e');

144 disp_close();

145 }

146 control=0;

147 }

148 if(set_time)

149 {

150 if((time[1]<0x60)||(time[2]<0x60)&&(time[3]<0x24))

151 {

152 set_ds1302(time[1],time[2],time[3]); // s , m ,h

153 //不知為何時(shí)間定時(shí)器自動(dòng)停止. ,數(shù)組越界

154 set_time=0;

155 }

156 }

157 if(!key_led)

158 {

159 control=1;

160 }

161 //添加時(shí)鐘顯示代碼

162 get_ds1302(); //2.23ms

163 } //不進(jìn)第一個(gè)if 時(shí)間為 2ms 進(jìn)入 13ms 這里指周期

164 }

165

166 /******************************************************************/

167 /* 定時(shí)器中斷 */

168 /******************************************************************/

169 void tim(void) interrupt 1 using 1//中斷用于溫度檢測(cè)

170 {

171 TR0=0; //關(guān)閉定時(shí)器

172 TH0=0x0f;//定時(shí)器重裝值 定時(shí)器有沒有中斷標(biāo)志位??,未清零?

173 TL0=0x00;

174 flag_get=1;//標(biāo)志位有效

175 }

176

177

178

179

180 void UART_SER() interrupt 4

181 {

182 unsigned char Temp;

183 static unsigned char flag=0;

184 if(RI)

185 {

186 RI=0;

187 Temp=SBUF;

188 switch(Temp)

189

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉