




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
機(jī)電工程系
機(jī)電創(chuàng)意小組
智能豆?jié){機(jī)的設(shè)計(jì)
系部名稱:機(jī)電工程系
學(xué)生姓名:劉鵬浩、劉鵬慧、李喬
專業(yè):機(jī)械制造及其自動(dòng)化
班級(jí):1102
指導(dǎo)教師:王新海
設(shè)計(jì)思緒:
由于此前的豆?jié){機(jī),磨漿要過濾豆渣,豆?jié){熬煮也要自己動(dòng)手,還要尤
其注意豆?jié){溢鍋口勺問題,程序繁瑣麻煩,給人們帶來不便,針對(duì)這些狀況確
定開發(fā)家用豆?jié){機(jī)全自動(dòng)控制電路裝置。
家用豆?jié){機(jī)全自動(dòng)控制裝置是在單片機(jī)日勺程序控制下進(jìn)行工作時(shí)。打漿
時(shí),插上電源插頭,接通電源,直接按“啟動(dòng)”鍵,控制電路控制豆?jié){機(jī)工
作。先給黃豆加熱,并由傳感器檢測(cè)溫度,當(dāng)溫度到達(dá)80度左右時(shí),停止
加熱。啟動(dòng)磨漿電機(jī)開始磨漿,運(yùn)轉(zhuǎn)20秒后停止轉(zhuǎn)運(yùn),間歇10秒后再啟動(dòng)
打漿電機(jī),如此循環(huán)進(jìn)行打漿6次或者4次。磨漿完后,開始對(duì)豆?jié){加熱,
豆?jié){溫度到達(dá)一定值時(shí),豆?jié){上溢。豆?jié){加工自動(dòng)進(jìn)入防溢延煮程序,豆?jié){
加工完畢后發(fā)出聲光報(bào)警信號(hào)。
關(guān)鍵詞:豆?jié){機(jī),控制系統(tǒng),全自動(dòng),傳感器。
Abstract
一、全自動(dòng)豆?jié){機(jī)的工作原理
用STC12C5A60S2單板設(shè)計(jì)一款全自動(dòng)豆?jié){機(jī),豆?jié){機(jī)口勺工作原理如下:
先給電路上電,按下啟動(dòng)鍵開始加熱;加熱到80。(2開始打漿(打15秒,停15
秒,共4次),磨漿完后,開始時(shí)豆?jié){加熱,豆?jié){溫度到達(dá)一定值時(shí),豆?jié){上溢。
豆?jié){加工自動(dòng)進(jìn)入防溢延煮程序,豆?jié){加工完畢后發(fā)出聲光報(bào)警信號(hào)。
本設(shè)計(jì)原理如圖1所示
溫度檢測(cè)電路S
T聲光報(bào)警
C
1
2
顯示屏
cn
5
A
放十燒電路6I>>電機(jī)
0
S
2
加熱電路
按鍵
控制系統(tǒng)首先通過電源對(duì)系統(tǒng)供電,其中溫度傳感器、防溢電路、放干燒電
路、按鍵、均是輸入部分,聲光報(bào)警、顯示屏、電機(jī)、加熱電路均是輸出部
分。
二、方案設(shè)計(jì)
方案1:此方案由單片機(jī)、加熱電路、溫度檢測(cè)電路、打漿電路、報(bào)警電路、
顯示電路構(gòu)成。其工作原理是先加熱,加熱到一定溫度后,開始打漿,打漿
完后,打漿停止,又開始加熱即煮沸后,立即停機(jī),報(bào)警提醒。
打漿電路
加熱電路
溫度檢測(cè)電路
報(bào)警電路
顯示電路
表2.1方案一設(shè)計(jì)框圖
方案2:此方案由單片機(jī)、溫度檢測(cè)電路、加熱電路、沸騰檢測(cè)電路、打漿
電路、報(bào)警電路、顯示電路等構(gòu)成。其工作原理是豆?jié){機(jī)加電后直接按“啟
動(dòng)”鍵,控制電路控制豆?jié){機(jī)進(jìn)行加熱,當(dāng)溫度到達(dá)80度左右時(shí),停止加
熱,開始打漿;打漿電機(jī)按間歇方式打漿:運(yùn)轉(zhuǎn)15秒后停止轉(zhuǎn)運(yùn),間歇15
秒后再啟動(dòng)打漿電機(jī),如此循環(huán)進(jìn)行打漿4次。打漿結(jié)束后開始對(duì)豆?jié){加熱,
豆?jié){溫度到達(dá)一定值時(shí),豆?jié){上溢。當(dāng)豆?jié){沫要溢出時(shí),停止加熱,間歇20
秒后再開始加熱,如此循環(huán)4次,豆?jié){加工完畢后發(fā)出聲光信號(hào)。
單片機(jī)
防干燒、防溢電路
打漿電路
溫度檢測(cè)電路
報(bào)警電路
加熱電路
顯示電路
表2.2方案二設(shè)計(jì)框圖
3、方案論證
方案一如圖1.1所示,由單片機(jī)、溫度檢測(cè)電路、打漿電路、加熱電路、報(bào)
警電路等構(gòu)成。工作過程是,接上電源,按下“功能鍵”,開始加熱,加熱
到一定溫度后,開始打漿,打漿漿結(jié)束后,又加熱直到豆?jié){沸騰煮熟,停止
加熱,發(fā)出報(bào)警聲,提醒豆?jié){已做好。其缺陷是:粉碎后煮漿時(shí)間過長所易
導(dǎo)致的糊鍋現(xiàn)象。
方案二如圖1.2所示,由單片機(jī)、溫度檢測(cè)電路、防干燒電路電路、防溢電
路、打漿電路、加熱電路、報(bào)警電路等構(gòu)成。工作過程是,接上電源,蜂鳴
器長鳴一聲,提醒已接通電源,指示燈綠色LED亮,處在待命狀態(tài)。按下全
自動(dòng)啟動(dòng)鍵,開始加熱,溫度到達(dá)80度時(shí),停止加熱;攪拌馬達(dá)運(yùn)轉(zhuǎn),將
黃豆粉碎,豆?jié){過濾,然后馬達(dá)停轉(zhuǎn),又開始加熱,直到豆?jié){沸騰煮熟,停
止加熱,發(fā)出報(bào)警聲,提醒豆?jié){已做好。進(jìn)行論證后,我選擇第二方案。其
原因是:間歇打漿方式可以提高工作效率;縮短粉碎后加熱至豆?jié){沸騰時(shí)間,
防止粉碎后煮漿時(shí)間過長所易導(dǎo)致歐I糊鍋現(xiàn)象。
三、硬件電路設(shè)計(jì):
1、單片機(jī)的選用:
STC12c5A60s2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)H勺單時(shí)鐘/機(jī)器周期
(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼
完全兼容老式8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2
路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)所。
單片機(jī)簡介:
1,增強(qiáng)型8051CPU.1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容老式8051
2.工作電壓:STC12c5A60s2系歹U工作電壓:5.5V?3.3V(5V單片機(jī))
STC12LE5A60s2系列工作電壓:3.6V-2.2V(3V單片機(jī))
3.工作頻率范圍:0-35MHz,相稱于一般8051口勺0?420MHz
4.顧客應(yīng)用程序空間8K/16K/20K/32K/40K/48K/52K/60K/62K字
節(jié)……
5.片上集成1280字節(jié)RAM
6.通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(一般8051老
式I/O口)可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/
高阻,開漏每個(gè)I/O口驅(qū)動(dòng)能力均可到達(dá)20mA,但整個(gè)芯片最大不要超過
55mA
7.時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%
以內(nèi))1顧客在下載顧客程序時(shí),可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/
時(shí)鐘常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11MHz?15.5MHz3.3V
單片機(jī)為:8MHz?12MHz精度規(guī)定不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但由于有
制造誤差和溫漂,以實(shí)際測(cè)試為準(zhǔn)
8.2個(gè)時(shí)鐘輸出口,可由TO歐J溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在
P3.5/T1輸出時(shí)鐘
9.A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)
10.工作溫度范圍:-40?+85C(工業(yè)級(jí))/0-75℃(商業(yè)級(jí))21.封裝:
PDIP-40,LQFP-44,LQFP-48I/O口不夠時(shí),可用2到3根一般I/O口線外
接74HC164/165/595(均可級(jí)聯(lián))來擴(kuò)展I/O口,還可用A/D做按鍵掃描來
節(jié)省I/O口,或用雙CPU,三線通信,還多了串口。
引腳圖:
STC12C5A60S2
40
]PJ.Ovcc
39
2Pl.lPO.O
RXD23P1.2/RXD2P0.1____
TXD2437
P1.3/TXD2P0.2
36
5Pl.4P0.3
6Pl.5P0.435
34
7Pl.6P0.5
8Pl.7P0.633
gPST/P4.7P0.732___
RXDIQP3.0mXDRST2/P46JJ___
TXDII,30____
P3.1/TXDALE\P4,5
12P3.2/INTONA/P4.4J2___
28____
13P3.3/INT1P2.7
1427CLK
P3.4/T0PZ6
26SID
15P3.5/T1P2.5
25CS
16P3.6/WRP2.4
24
nP3.7/RDP23
18XTAL2P2222___
22SDA
19XTAL1EM
2021SCL
GNDP2.0
2、溫度檢測(cè)電路的設(shè)計(jì)
當(dāng)豆?jié){機(jī)正常工作時(shí),需要先加熱到80℃左右的溫度,然后停止加熱繼續(xù)下
一步的工作,這就需要一種溫度檢測(cè)電路,我設(shè)計(jì)的溫度檢測(cè)電路由一種電
位器來替代,通過單片機(jī)接口的AD轉(zhuǎn)換功能,通過調(diào)整電位器的阻值來模
擬豆?jié){機(jī)溫度的變化,當(dāng)電位器的阻值到達(dá)一定限值時(shí),豆?jié){機(jī)停止加熱,
進(jìn)行下一步工作。
3、加熱和打漿電路的設(shè)計(jì):
加熱電路的作用是通過加熱管把磨成粉末的黃豆煮熟;打漿電路的作用是通
過電機(jī)把黃豆攪拌成粉沫。單片機(jī)輸出電流經(jīng)三極管放大,來驅(qū)動(dòng)繼電器
必合,使加熱管發(fā)熱把豆?jié){煮熟。同理,繼電器閉合使電機(jī)運(yùn)轉(zhuǎn)把黃豆攪碎。
加熱及打漿電路H勺工作原理如圖1所示,加熱及磨漿電路由繼電器RL1、RL2,
三極管QI、Q2,電阻R14、R15以及二極管DI、D2,單片機(jī)AT89c51。當(dāng)單
片機(jī)工作時(shí),賦給PL1一種低電平,使三極管Q2飽和導(dǎo)通,電流流過繼電
港RL2,使觸點(diǎn)閉合,于是加熱管通電開始對(duì)水加熱,當(dāng)溫度到達(dá)80度時(shí),
溫度信號(hào)(電位器)傳給單片機(jī),單片機(jī)檢測(cè)到這個(gè)信號(hào)后,使PL1腳變
為高電平,三極管Q2截止,繼電器觸點(diǎn)斷開,電阻停止加熱。加熱結(jié)束后,
單片機(jī)PL0腳變?yōu)榈碗娖?,使三極管RL1飽和導(dǎo)通,從而讓繼電器觸點(diǎn)閉
合,于是電機(jī)通電開始打漿,在系統(tǒng)程序得控制下,電機(jī)進(jìn)行打漿。電機(jī)運(yùn)
轉(zhuǎn)20秒或者15秒后,單片機(jī)P1.0腳變?yōu)楦唠娖?,使三極管Q1截止,繼電
器觸點(diǎn)斷開,電機(jī)停止打漿,問歇15秒后,單片機(jī)PL0腳又恢復(fù)為低電平,
從向繼續(xù)驅(qū)動(dòng)電機(jī)工作,如此循環(huán)4次后打漿結(jié)束。
熱敏電阻一般有一種誤差范圍,用來規(guī)定樣品之間的一致性。根據(jù)使用
的材料不一樣,誤差值一般在1%至10%之間。有些熱敏電阻設(shè)計(jì)成應(yīng)用時(shí)可
以互換,用于不能進(jìn)行現(xiàn)場(chǎng)調(diào)整日勺場(chǎng)所,例如一臺(tái)儀器,顧客或現(xiàn)場(chǎng)工程師
只能更換熱敏電阻而無法進(jìn)行校準(zhǔn),這種熱敏電阻比一般的精度要高諸多,
價(jià)格也要貴得多。
電位器
4、屏幕顯示電路的設(shè)計(jì):
顯示屏n勺作用是顯示目前豆?jié){機(jī)口勺工作狀態(tài),將LCD顯示屏按照?qǐng)D2的接法和
單片機(jī)連接起來。
5、報(bào)警電路的設(shè)計(jì):
報(bào)警電路的作州是通過蜂嗚器發(fā)出聲音信號(hào),紅色LED點(diǎn)亮提醒豆?jié){己經(jīng)煮好
了。通過事先編寫的程序,在單片機(jī)H勺控制下,系統(tǒng)開始工作,當(dāng)加熱完畢后,
單片機(jī)P1.4、P1.5腳自動(dòng)輸出一種高下平,使蜂鳴器、發(fā)光二極管通電導(dǎo)通,
于是蜂鳴器發(fā)出報(bào)警,紅色LED點(diǎn)亮提醒豆?jié){加熱
6、電源電路的設(shè)計(jì):
7、防干燒及防溢出電路的設(shè)計(jì):
防干燒及防溢出電路日勺作用是以傳感器作為信息采集系統(tǒng)日勺前端單元來
控制自動(dòng)豆?jié){機(jī)缺水時(shí)干燒及沸騰溢出等問題。這單采用探針作為傳感器來
檢測(cè)水位及沸騰溢出,然后通過比較器輸出高下電平,這樣就可以通過單片
機(jī)檢測(cè)比較器輸出電平日勺高下來檢測(cè)水位及沸騰時(shí)的I溢出狀態(tài)。
水位檢測(cè)及沸騰溢出電路的原理如圖4.13所示,KI,K2分別是水位檢
測(cè)傳感器和沸騰溢出傳感器,為了減少成本,這單采用探針來替代這兩個(gè)傳
感器,使用中將接控制電路口勺公共點(diǎn)“地”,探針分別通過傳播。單片機(jī)的
P3.2,PL3端連接。王常工作時(shí),K1被水沉沒,它和地之問日勺電阻較小,
與R13共同對(duì)+5V分壓,U+得到比U-低的電平,比較器輸出低電平。缺水時(shí),
K1露出水面,它日勺電阻很大,R13共同對(duì)+5V分壓,U+得到比U-高的電壓,
比較器輸出高電平,通過非門后輸出低電平產(chǎn)生下降沿。用軟件檢測(cè)比較器
的電平變化,便知與否缺水
用同樣日勺措施檢測(cè)豆?jié){與否沸騰溢出。豆?jié){沸騰之前,電極K2遠(yuǎn)離水
而,它和地之間日勺電阻很大,與R9共同對(duì)+5V分壓,U+得到比U-高日勺電壓,
比較器輸出高電平。豆?jié){沸騰時(shí),泡沫沉沒K2,電阻小,與R14共同對(duì)+5V
分壓,U+得到比U-低的電壓,比較器輸出低電平。用軟件檢測(cè)比較器的輸出
電平,便知豆?jié){與否沸騰溢出。。
三、軟件設(shè)計(jì)
豆?jié){機(jī)控制系統(tǒng)日勺流程圖:
通電
N
報(bào)警提醒
程序:
#include<STC12c5a60s2.h>
sbitkey=P2A();〃全自動(dòng)開關(guān)
sbitLED1=P2A1;〃加熱豆?jié){
sbitLED=P2A2;//
sbitBEEP二P2人3;〃蜂鳴
sbitM=P2八4;〃攪拌豆?jié){
sbiljre=P2八5;〃力口熱豆?jié){
#include<intrins.h>〃51基本運(yùn)算(包括_nop_空函數(shù)?
typedefunsignedcharuint8;//無符號(hào)8位整型變量〃
/^2^斗...??*.斗.斗...“■,■
訃:*5*:K:*:*1*:K*3*x:*:
//引腳定義〃(使用者根據(jù)實(shí)際更改)
,),,、>,7.、!,、!■,、[,、/、>,、!,7.、、>7.
II*7?(7、,卜rjw??£2?,*?*,7卜■rj?r%j??*2*?7J?,?卜!rj??*24?7,卜,卜,?卜t?rj?rj?,卜rj???S£?*rjw,卜rjw7.,卜rj??£?ej*rjwrj?*2*r7|?rj?4rjw/rjwrjw*ry2?*7,卜r?ji?*r7?*5**1*,卜j?*7*?£?,卜,卜r???J?,卜
#defineLCM2402_DB0_DB7Pl//定義LCM2402的數(shù)據(jù)總
線
sbitLCM2402_RS=P3A2;〃定義LCM2402的RS控制線
sbitLCM2402_RW=P3A3;//定義LCM2402的RW控制線
sbitLCM2402_E=P3A4;〃定義LCM24021付E控制線
sbitLCM2402_Busy=PIA7;〃定義LCM2402的測(cè)忙線(與
LCM2402_DB0_DB7關(guān)聯(lián))
dataunsignedchar
TIME_DD,T1ME_MO,T1ME_YY,TIME_WW,TIME_HH,TIME_MM,TIME_SS://設(shè)
置日、月、年、周、時(shí)、分、秒和溫度寄存區(qū)
databitDAY_B1T=0;〃天數(shù)增長標(biāo)志位(用于日期進(jìn)位的后動(dòng))
dataunsignedcharDIS_BIT=0;〃多種信息的I切換顯示
dataunsignedcharcou=0;//軟計(jì)數(shù)器,對(duì)10ms時(shí)基信號(hào)累加到1s
/:K:長:長彳::長:長
r7j,*,卜,J*?*7£?*q,,、卜1,rj%rj?*2*7,,卜rjw*r£j*?4,*Jw,hrj??y?7rj??八rjwej?、r[j■、
//定義LCM2402指令集〃(詳細(xì)請(qǐng)見技術(shù)手冊(cè))
/ijC5^C5^Crjwr^C?jC?{Cr^w5jC?^C5^C?^Crjw5§?5^C;¥;rj?55Cr}?rjCr^w?jC?JCrj?rjwJ{C5^Crjwrj?Sjw5^Crjwrjw?5C5{CrjwrjwrjwrjwrjwrjC5{Crj?rjw5^Cr^wr^C?^Cr}?VfC
2^C^Jc5}?X?J*?'jC/
#defineCMD_clear0x01//清除屏幕
#defineCMD_back0x02//DDRAM回零位
#defineCMD_decl0x04//讀入后AC(指針)減1,
向左寫
#defineCMD_addl0x06//讀入后AC(指針)力口1,
向右寫
#defineCMD_dis_gblOxOf//開顯示_開光標(biāo)一開光
標(biāo)閃爍
#defineCMD_dis_gb2OxOe//開顯示_開光標(biāo)一關(guān)光
標(biāo)閃爍
#defineCMD_dis_gb3OxOc//開顯示_關(guān)光標(biāo).關(guān)光
標(biāo)閃爍
#defineCMD_OFF_dis0x08〃關(guān)顯不_關(guān)光標(biāo)_關(guān)光
標(biāo)閃爍
#dcfincCMD_sct820x38〃8位總線_2行顯示
#dcfincCMD_set810x30〃8位總線」行顯示(上邊
行)
#defineCMD_set420x28//4位總線_2行顯不
#defineCMD_set410x20〃4位總線」行顯示(上邊
行)
#definelin_l0x80〃4位總線」行顯示(上邊
行)
#definelin_2OxcO〃4位總線」行顯示(上邊
行)
/彳.?J??J?彳.?^?斗:?J??J**J?”:?J?*Jj彳.?J*?^??J>?J?
?1^X,4,^U?24?j,kl*q,■].^UV*4,“/
*1**J、*j?[、?I?q、*J**j?[、<?**J、<、q、*J、*J*?,**1*?*?*4??,??、*J?
函數(shù)名:亳秒級(jí)CPU延時(shí)函數(shù)
調(diào)ffl:DELAY_MS(?);
參數(shù):1-65535(參數(shù)不可為0)
返回值:無
結(jié)果:占用CPU方式延時(shí)與參數(shù)數(shù)值相似的毫秒時(shí)間
備注:應(yīng)用于1T單片機(jī)時(shí)iv600,應(yīng)用于12T單片機(jī)時(shí)i<125
/rj?5}?5^?jjc?}??jc?^Cijc55c5^?5jc?{C5^Cjjc5^C?jcrj?55c?{?5^C
3^25^Cyjj2>C彳.jXj*J?aj^彳.彳:/
voidDELAY_MS(unsignedinta)(
unsignedinti;
while(-a!=O){
for(i=();i<600;i++);
/*?■sjc2^C2^C5^??}?SgC2^?2^2jjl2^?2^C2^C2^C?J?SjC2^C5^?2^??J?SjC2^Cjjl2^22^C5^??J?ijc2{C5^??}?2^C2^C5j?2^C2^C5^?SjC2^CJ^C?}?5}?2^C2^C
S^Cijcjjc2^C5^1/
上■],?{??],?!?^!!?■£/",曲立■"?!*也“/?!?,,
ff?7??T?*T??*7**7*??&j??“*1,***!T***1*.、*1??1?*7*.、*T?rna^?“T/***T1**?4**7*.、*T?*??*7*?T??T**T?*71**7**7**T??*T?*7*[、*T?*?1??*7?*T**T*?j?*7*[、*r?rT*rn?T??T*?*71W*?*?1?**7*?*T£?**T?*7*?T?■?£r**T?*??*}*.、??1、?*7la*
*Crjwrjw5^?f*rj?rj??{C?^wrjwrj?rj^S^Cr^Crjwrjw?{C?^CXrj?rji
//讀LCM忙程序[底層協(xié)議]〃(所有底層協(xié)議都無需關(guān)注)
“LCM2402測(cè)忙,若LCM2402處在忙狀態(tài),本函數(shù)將等待至非忙狀態(tài)//
,:jj:,::長*2*彳:/
voidLCM2402_TestBusy(void){
LCM2402_DB0_DB7=Oxff;〃設(shè)備讀狀態(tài)
LCM2402_RS=0;
LCM2402_RW=1;
LCM2402_E=1;
while(LCM2402_Bjsy);〃等待LCM不忙
LCM2402_E=0;//
1
/yij:長斗,彳:*:二,彳:,,:長彳,,::/*:斗:':,:彳.,,彳::長
*******************x****
//寫指令程序〃
//向LCM2402寫命令本函數(shù)需要1個(gè)指令集/、J入口參數(shù)//
/?}?jjc5}?2^C5}?SjCJ^C?}?55?2^C2^C?}?5^C2^Cijc2^CS^C5jC5}CJ^C5jC2^CS^C?}?2jCS^CS^C5}??^C5^C?J?5jC2^C2^25jC5^CS^C
5^C5^55^5:長彳::長/
voidLCM2402_WriteCMD(uint8LCM2402_command){
LCM2402_TestBusy();
LCM2402_RS=0;
LCM2402.RW=0;
LCM2402_DR0_DB7=(IrM2402_conimand/l6)?4;//0x450x40
LCM2402_E=1;
LCM2402_E=0;
LCM2402_DB0_DB7=(LCM2402_command%16)?4;//0x450x50
LCM2402_E=1;
LCM2402_E=0;
1
/::::長彳;?J?:長?J?,::長彳::長
*V*1**4^Y?£x
rj、rg%,J?*1*,,、rj*(、,[、,n[、**?rg^*,**J、,、,h[、*J、
//寫數(shù)據(jù)程序〃
//向LCM2402寫數(shù)據(jù)〃
/r}??jc5^?jjc5^Cjjc5jCjjC?^C?^C5^2jjc?jc?^C?^C5jc5^C?}??j?5^C?^C5}?5^C?^C5^C5jc?{?5^?jjcrj?SjCJ^C?JCjjc5^C5^C?}??^Cjjc5^CS^C5^?
j2^》■,.,.,■>■JXJJJJ?./
voidLCM2402_WriteData(uint8LCM2402_data)(
LCM2402_TestBusy():
LCM2402_RS=1;
LCM2402.RW=0;
LCM2402_DB0_DB7=(LCM2402_dat<i/16)?4;
LCM2402_E=1;
LCM2402_E=0;
LCM2402_DB0_DB7=(LCM2402_data%16)?4;
LCM2402_E=I;
LCM2402_E=0;
)
/ej?a^???????**^a*^
*******************x****
//打印字符串程序〃(本函數(shù)調(diào)用指針函數(shù))
//向LCM發(fā)送一種字符串,長度48字符之內(nèi)
//第一行位置0X()0~0K17第二行位置0x40~()x57
//應(yīng)用舉例:print(0x80,u);〃在第一行第一位處從左向右打印
字符串
/*3**{??J??jc?^Crjcsjc5^Cjjcjjc?^C5^C5jc?{C5^CSjC5^€5^C5jc?jC?^C5^?jjc?^C5^Cjjcjjc5^C?^C5^?
voidprint(uint8a,uint8*str){
LCM2402_WriteCMD(a|0x80);
while(*str!=*\0')(
LCM2402_WriteData(*str++);
*str=0;
)
,,,
tlrj??7卜.,卜,卜?卜,[?rj?4,,卜rj*嚇,,卜,〉?y**J*,hrj?rj??卜,卜rj?q.*,!卜?7,卜,卜,J?q..卜,[?rj?*2*?7!*rj?,卜?}?,卜〃??y**7|*,卜?2?7.,1?,J?r?j£?q.?卜,[?rj?,7「,r、j1*X
Re5^C,C2^2力?sjc?^C?^C2^C?^CXRe
//打印單字符程序〃
//第一行位置0x00?0K17第二行位置0x40?0x57
//向LCM發(fā)送一種字符,以十六進(jìn)制(0x00)表達(dá)
//應(yīng)用舉例:prim(0xc0,0x30);〃在第二行第一位處打印字符“0”
/jXja^?a^a*^aa^?a^aa2>e*^????^aa*^
*******************x****/
voidprint2(uinl8a,uint8t){
LCM2402_WriteCMD(a|0x80);
LCM2402_WriteData(t);
)
Z^C?J?5*C2^C5^?53c2^C2^C2^CS^C5^?2JC2^?X?}?5jC2^CJ^C
//定義小中文〃
//可寫入8個(gè)自字義字符,寫入后可用其CGRAM代碼直接提取顯示。
//字符定義措施請(qǐng)參照技術(shù)手冊(cè)
/r}??jc5^?jjc5^Cjjc5jCjjC?^C?^C5^2jjc?jc?^C?^C5jc5^C?}??j?5^C?^C5}?5^C?^C5^C5jc?{?5^?jjcrj?SjCJ^C?JCjjc5^C5^C?}??^Cjjc5^CS^C5^?
j2^》■,.,.,■>■JXJJJJ?./
uint8codeXword[]=(
0xff,0x00,0x1f,0x11,0x1f,0xl1,Oxff,OxOO,//℃,代碼OxOO
0x00,0x00,0x00,0x00,Oxlf,0x00,0x00,0x00,〃一,代碼0x01
0x00,0x00,0x00,OxOe,0x0(),Oxff,0x0(),0x00,〃二,代碼0x02
0x0(),0x0(),Oxff;()xOO,()x()e,0x0(),Oxff,0x00,〃三,代碼0x03
0x00,0x00,0xff;()xl5,()xfb,Oxfl,Oxff,0x00,〃四,代碼0x04
0x00,Oxfe,0x08,0xfe,0x0a,0x0a,0xff,0x00,〃五,代碼0x05
0x0(),0x()4,0x0(),()xff;()x()(),()x()a,Ox11,0x00,〃六,代碼0x06
0x00,Ox1f,()x11,Ox1f,()x11,Ox11,()x1f,()x()(),//日,代碼0x07
1;
voidCgramWrite(void){//裝入CGRAM//
uint8i;
LCM2402_WriteCMD(0x06);//CGRAM地址自動(dòng)加1
LCM2402_WriteCMD(0x40);//CGRAM地址設(shè)為00處
for(i=0;i<64;i++){
LCM2402_WriteData(Xword[i]);//按數(shù)組寫入數(shù)據(jù)
}
)
/ySj彳:?***■?J>斗:
*1??1*?1??1??£**£??£**1?<_>?2?*1>
?1?,;、rzw?卜?卜?'?rj??<??[??卜rj?rlwrj??卜???:?rr?4,
“LCM2402初始化〃(使用者可自定義,加*號(hào)程序行必須保留但可修改)
/彳.,■,?彳S22^彳;?■<2^彳:*.*^a....>.>.a^斗.#.?.4.*.*.*.
,:,,”:j.彳.,:/
voidLCM2402_Init(void){
LCM2402_WriteCMD(CMD_set42);〃*顯示模式設(shè)置:顯示2行,每個(gè)字符
為5*7個(gè)像素
LCM2402_WritcCMD(CMD_set42);〃*顯示模式設(shè)置:顯示2行,每個(gè)字符
為5*7個(gè)像素
LCM2402_WriteCMD(CMD_clear);//顯示清屏
LCM2402_WriteCMD(CMD_back);〃*數(shù)據(jù)指針指向第1行第1個(gè)字符
位置
LCM2402_WriteCMD(CMD_add1);//顯示光標(biāo)移動(dòng)設(shè)置:文字不動(dòng),
光標(biāo)右移
LCM2402_WriteCMD(CMD_dis_gb3);//顯示開及光標(biāo)設(shè)置:顯示開,光
標(biāo)開,閃爍開
CgramWrile();//向CGRAM寫入自定義字符
1
/afj“,^!/??[,*1*?!!??],?i?、],“,?£*?{,“,X,q,?>V%!/?■],
/*,*q、*7*[、*1*,j、q、*J、?、*J、*1*q、*1**|、*,**J、q、[、*1**5**J、*1*?、*J、*(**1**7**7*?,*?、,j、
?^wrjw?JC5*^r^Crj?rJCrjwrj?r^Crjwrjw?{?Xrj??jC/
//以上是LCM2402驅(qū)動(dòng)程序//
/^3^^Jcjjcijc^Jc>}cjjc^|c^Jcjjc^}c^jcJjCi{€^}c^|cjjc^}c^Jcjjcjjcsjcijcjjcjjcjjc^jcijcsjc^|c^Csjc^}c^jc5j€^|cJJCsjc^Jc
*1??1*?1??1??£**£??£**1?<_>?2?*1>?t??2??1??1??L??t??(??1??1??£?*1??2??1??1?%1??£*?{??1??1*?t??£>?/??t??£?
,1,.卜?'、rj?rjw?>??工、?Tw.卜.:?彳*?J??[?rlw?>】??Z<..rj?ej??Jw.卜I/rjw?Jw.1?.:??1?rlwrl?rj??Yw?Jw.:?M?rl?.J?rj、?;、.卜.;?rj?*J<rj??卜?[?.;?rjw?Jw.卜.:?rj?,[??<?.;?.J*彳、
a^?e^J*^a
函數(shù)名:10位A/D轉(zhuǎn)換初始化函數(shù)
調(diào)用:Read_init(?);
參數(shù):輸入的端口(00000XXX其中XXX是設(shè)置輸入端口號(hào),可用十進(jìn)制
0?7表達(dá),0表達(dá)P1.0,7表達(dá)P1.7)
返回值:無
結(jié)果:啟動(dòng)ADC功能并設(shè)置ADC的輸入端口
備注:使用ADC功能時(shí)需要將對(duì)應(yīng)H勺IO接口設(shè)置為高阻輸入方式(例如:
P1M1=0x01;)
/********************************************************************
rj?ijc5^C?}??jcrj?jjc5{CX5}C5{Crj?SjC/
voidRead_init(unsignedcharCHA){
unsignedcharAD_FIN=0;〃存儲(chǔ)A/D轉(zhuǎn)換標(biāo)志
CHA&=0x07;//選擇ADC的8個(gè)接口中H勺一種(00000111清
0高5位)
ADC.CONTR=0x40;//ADC轉(zhuǎn)換H勺速度(0XX00000其中XX控制速
度,請(qǐng)根據(jù)數(shù)據(jù)手冊(cè)設(shè)置)
_nop_();
ADC_CONTR|=CHA;〃選擇A/D目前通道
_nop_();
ADC_CONTR|=0x80;//啟動(dòng)A/D電源
DELAY_MS(1);〃使輸入電壓到達(dá)穩(wěn)定(1ms即可)
/彳.彳S^2^彳;》■<2^彳:*.....>.>.a^斗.#.?.4...*.*.,.
,:,,?J<”:j.彳.,:]
fI<2*q*5.**7!,*?*1t??*rjt%???s7?7*1,*7rj?,〃*1?*、r}>?r*£^*7rj,*rj?、rj)w?£*3,r7j,?,、「>r?}V?k£**7X,**、1!*rJ**£?*?■7rj?,?r1j.?、*7”?彳q、.ryj?,r?j>?rjwr7j,**〃1?^、>?£?q,r7f,.r%jt*?、r}>?*£?7rj*.、r]j.?、rj>w?esj?q.7rj,.、rj>??rj>?7.*J??r>j??2??,7rjw.?rjt.?、r>j???*7,、],,、卜>rj?7rj,*、*J!?*
5^C?jcJ^C?}?ijc?{?5^??}?52c?{?5^Cjjc5^CX?}?<J?
函數(shù)名:10位A/D轉(zhuǎn)換函數(shù)
調(diào)用:?=ADC_Read();
參數(shù):無
返回值:10位ADC數(shù)據(jù)高(從0到1023(十進(jìn)制))
結(jié)果:讀出指定ADC接口日勺A/D轉(zhuǎn)換值,并返回?cái)?shù)值
備注:合用于STC12C5A60S2系列單片機(jī)(必須使用STC12C5A60S2.h頭文
獻(xiàn))
/)::;:斗::長:K:斗:斗:計(jì):*5^:K斗:H::/*2^#::,::l:)::長?j?4::*2^]:
、!■?>y,、!,、>??>y,、>
r7j,?,卜rj?*7*q,,,、,卜rj?r|?,卜rjwrjwrjwrj?r|?八,卜*}?ej.,卜rj?Ji
unsignedintADC_Read(void){
unsignedcharAD_FIN=0;//存儲(chǔ)A/D轉(zhuǎn)換標(biāo)志
ADC_CONTR|=0x08;〃啟動(dòng)A/D轉(zhuǎn)換(00001000令A(yù)DCS=1)
_nop_();
_nop_();
_nop_();
_nop_();
while(AD_FIN==()){〃等待A/D轉(zhuǎn)換結(jié)束
AD_FIN=(ADC_CONTR&0x10);//OOOl0000測(cè)試A/D轉(zhuǎn)換結(jié)束否
ADC_CONTR&=0xE7;//llll0111清ADC_FLAG位,關(guān)閉A/D轉(zhuǎn)
換,
return(ADC_RES*4+ADC_RESL);//igM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)技術(shù)服務(wù)電商創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 中國藥品體系分類與臨床應(yīng)用
- 電子產(chǎn)品直播測(cè)評(píng)創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 網(wǎng)絡(luò)直播數(shù)據(jù)分析平臺(tái)創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)學(xué)晉職稱答辯
- 自動(dòng)駕駛物流車創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)院冷鏈藥品保管與儲(chǔ)存
- 醫(yī)院宣傳科長述職報(bào)告
- 2025年事業(yè)單位筆試-上海-上海精神醫(yī)學(xué)(醫(yī)療招聘)歷年參考題庫含答案解析(5套)
- 2025年中級(jí)衛(wèi)生職稱-主治醫(yī)師-腎內(nèi)科學(xué)(中級(jí))代碼:307歷年參考題庫含答案解析(5套)
- 養(yǎng)生茶基礎(chǔ)知識(shí)培訓(xùn)課件
- 2025年暑假反電信網(wǎng)絡(luò)詐騙試題及答案
- 電工教學(xué)空氣開關(guān)課件
- 5Why原因分析方法培訓(xùn)
- 2025年中國真人CS行行業(yè)市場(chǎng)調(diào)研分析及投資前景預(yù)測(cè)報(bào)告
- 泌尿外科快速康復(fù)外科理念
- CJ/T 292-2008城市市政綜合監(jiān)管信息系統(tǒng)績效評(píng)價(jià)
- 神經(jīng)內(nèi)科介入圍手術(shù)期護(hù)理案例
- T/CECS 10252-2022綠色建材評(píng)價(jià)彈性地板
- 碎石開采合作協(xié)議書
- 第8課 大家來合作 課件-2024-2025學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
評(píng)論
0/150
提交評(píng)論