ljᴎẄ㋏㒳ᖂᴎࠊNJ䇒üü
ᅲ 偠 ᣛ ᇐ к
ᄭᤃ 䶽䌲ϰ Џ㓪
⏙ढᄺᴎẄᎹ㋏
Ѡ䳊䳊ܿᑈϝ᳜
II
Ⳃᔩ
ሱ䶒 .......................................................................................................................................................... I
Ⳃᔩ ......................................................................................................................................................... II
ϔゴ ADUC812ऩ⠛ᴎᬭᄺ㋏㒳 .................................................................................................... 1
1ǃ⹀ӊ⦃๗ҟ㒡 ................................................................................................................................ 1
2ǃᓔথ⦃๗Փ⫼ ................................................................................................................................ 3
��� Փ⫼ .HLO& ᓎゟϔϾ㞾Ꮕⱘᑣ ........................................................................................... 3
��� ᇚ㓪䆥ⱘᑣ᭛ӊݭܹऩ⠛ᴎЁ ......................................................................................... 6
3ǃᬭᄺᅲ偠 ........................................................................................................................................ 9
����᭄ᄫ䕧ܹ䕧ߎഫ˄,�2˅ .................................................................................................... 9
����Ёᮁ㋏㒳ǃᅮᯊ఼�䅵఼᭄ .................................................................................................. 13
����ᢳষ $�' '�$ ............................................................................................................. 18
����0&8 㓐ড়ᅲ偠 ......................................................................................................................... 23
1义
ϔゴ ADuC812ऩ⠛ᴎᬭᄺ㋏㒳
ᄺདऩ⠛ᴎˈ䳔㽕خདϸ䚼ߚᎹDŽϔᰃᥠᦵᠢᅲⱘऩ⠛ᴎ⸔⧚䆎ˈ䖭䚼ߚࣙᣀऩ⠛
ᴎⱘᎹॳ⧚ǃЁᮁⱘᎹॳ⧚ǃIO ഫҹঞ䅵ᯊ఼Ꮉॳ⧚ㄝDŽѠᰃ⧚䆎ⱘᣛᇐϟ䖯
㸠㓪ᅲ䏉ˈᅲ䏉Ёϡᮁᔎ࣪ᇍऩ⠛ᴎⱘ䅸䆚DŽऩ⠛ᴎᄺдⱘ᳔㒜ⳂⱘѢՓ⫼ˈℸᅲ
䏉ᰃҹϞϸ䚼ߚᄺдⱘ䞡⚍DŽ
1ǃ⹀ӊ⦃๗ҟ㒡
Ўњֱ䆕ᅲ偠ⱘ乎߽ᅠ៤ˈ䇋ᅲ偠ࠡᇍ✻ҹϟᅲ偠⹀ӊ⏙ऩẔᶹ⹀ӊᰃ৺ᅠᭈDŽ
㸼 1.1 ᅲ偠⹀ӊ⏙ऩ
ܗӊৡ⿄� ᭄䞣�
ᖂᴎ⬉⑤ 1ৄ
ऩ⠛ᴎᬭᄺᅲ偠㋏㒳
᳔ᇣ㋏㒳ᵓ 1ഫ
ࡳ㛑ᵓ 1ഫ
ล᭭Ⲧ 1Ͼ
⬉⑤㒓˄㑶/㉝˖ˇ5Vˈ咥˖ഄ˅ 1ḍ
Іষ㒓 1ḍ
����ᅲ偠㋏㒳ᅲ⠽�
ADuC812 ㅔᣛҸऩ⠛ᴎⱘᬭᄺᅲ偠㋏㒳⬅ऩ⠛ᴎ᳔ᇣ㋏㒳ǃࡳ㛑ᅲ偠ᵓǃࡴ⛁ϱ
ˇ�9⬉⑤�
Іষ
2义
Ӵᛳ఼ᅮᵓǃล᭭Ⲧ㒘៤DŽล᭭Ⲧݙ䚼Ў⏽ᑺࠊⱘぎ䯈ˈℸぎ䯈ⱘᑩᑻϞᅝ㺙ࡴ⛁
ϱӴᛳ఼ᅮᵓˈҹᅠ៤ᇍぎ䯈ⱘࡴ⛁ᇍぎ䯈⏽ᑺⱘӴᛳDŽล᭭Ⲧϸջˈϔջᅝ㺙亢
ˈϔջᠧᄨ䗣亢DŽࡳ㛑ᬭᄺᵓ᳔ᇣ㋏㒳ᵓᅝ㺙ล᭭ⲦϞDŽ
䖯㸠ऩ⠛ᴎᬭᄺᯊˈ㢹ϡخ⏽ᑺࠊᅲ偠ˈล᭭ⲦাЎᅲ偠ᵓⱘᬃᩥDŽ
خऩ⠛ᴎ㓪ᅲ偠ᯊˈ䳔㽕ᇚЁⱘˇ5V⬉⑤㒓ˇ5Vⱘ〇य़⬉⑤Ϟˈᑊ⊼ᛣϡ
㽕ᇚ⬉⑤ⱘℷ䋳ᵕডˈ݊Ё㉝㉝㡆/㑶㡆㒓ℷᵕˈⱑ㡆㒓ഄDŽІষ䗮䖛Іষ㒓Ϣ䅵ㅫᴎ
ⱘІষⳌ䖲ˈЎᑣϟ䕑ࠄऩ⠛ᴎⱘ䗮䘧DŽ
��� ᳔ᇣ㋏㒳ᅲ⠽�
ADuC812 ᳔ᇣ㋏㒳⬅ऩ⠛ᴎ㢃⠛ǃᤃǃᎹ⬉⑤⬉䏃ǃІষ⬉य़䕀ᤶ⬉䏃ǃ㢃⠛
ԡ⬉䏃ǃAD DAⱘ䎳䱣⬉䏃ǃথܝѠᵕㅵ⌟䆩⬉䏃ㄝ㒘៤ˈ݊ᅲ⠽བ 1.2᠔⼎DŽ㢹
䗮䖛⬉⑤ᦦ༈㒭᳔ᇣ㋏㒳ऩ⣀կ⬉˄ˇ5Vˈݙℷ䋳˅ˈ ᳔߭ᇣ㋏㒳ৃऩ⣀ᎹDŽ
⬉⑤ᦦ༈
ԡ䬂 㓪䬂
ᇍষᇍষ
⌟䆩⫼♃
ऩ⠛ᴎ
3义
2ǃᓔথ⦃๗Փ⫼
��� Փ⫼ .HLO& ᓎゟϔϾ㞾Ꮕⱘᑣ�
ऩ⠛ᴎⱘᓔথᑇৄ᳝ᕜˈ䖭䞠䗝⫼њ Keilᓔথᑇৄˈϟ䴶ህᇍ KeilᓔথᑇৄϔϾ
ҟ㒡DŽ
Keil C51ऩ⠛ᴎᓔথᑇৄᰃ㕢 Keil Software݀ৌߎકⱘ 51㋏߫ݐᆍऩ⠛ᴎ C䇁㿔䕃
ӊᓔথ㋏㒳DŽϢ∛㓪Ⳍ↨ˈC䇁㿔ࡳ㛑Ϟǃ㒧ᵘᗻǃৃ䇏ᗻǃৃ㓈ᡸᗻϞ᳝ᯢᰒⱘӬˈ
㗠ᯧᄺᯧ⫼DŽ
Keil ᦤկЄᆠⱘᑧߑ᭄ࡳ㛑ᔎⱘ䲚៤ᓔথ䇗䆩Ꮉˈܼ Windows ⬠䴶DŽ䞡㽕
ⱘϔ⚍ Kˈeil C51⫳៤ⱘⳂᷛҷⷕᬜ⥛䴲ᐌП催ˈ᭄䇁হ⫳៤ⱘ∛㓪ҷⷕᕜ㋻ޥˈᆍᯧ⧚
㾷DŽᓔথൟ䕃ӊᯊ㛑ԧ⦄催㑻䇁㿔ⱘӬDŽ
ℸऩ⠛ᴎ㋏㒳䞛⫼KeilC䖯㸠ᑣᓔথDŽᅲ偠ࠡৄ䅵ㅫᴎᏆ㒣ᅝ㺙њKeilC㓪䕥఼ˈ
KeilC㓪䕥఼ⱘᷛབ 2.1᠔⼎DŽKeilCՓ⫼ⱘᰃ C䇁㿔Ў㓪䇁㿔ˈབᵰᇍ C䇁㿔ϡ
❳ᙝˈᓎ䆂ܜᡒϔᴀ C䇁㿔ⱘк㈡ⳟⳟˈা䳔㽕њ㾷᳔ㅔऩⱘ C䇁㿔ⱘ䇁⊩㾘߭ेৃDŽ
ϟ䴶ҟ㒡ϔϟᓎゟϔϾᎹ乍Ⳃⱘℹ偸DŽ
ϔℹˈঠߏᷛ˄བ 2.1˅䖤㸠 KeilCᑣDŽབ 2.2DŽ
2.1 KeilC ᑣᷛ
2.2 KeilCਃࡼ⬠䴶
Ѡℹ ᮄˈᓎ乍ⳂDŽՓ⫼ Keil㓪ݭᑣ䳔㽕佪ܜᮄᓎϔϾ乍Ⳃ ऩˈߏǏProjectǐ=>ǏNew
Project…ǐˈ བ 2.3DŽ✊ৢ䗝ᢽᮄ乍Ⳃᄬᬒⱘഄᮍঞ᭛ӊৡ ✊ˈৢህӮᔍߎ 2.4ⱘᇍ䆱Ḛˈ
䗝ᢽǏAnalog Devicesǐ=> ǏADuC812ǐˈ ᅠ៤ϔϾᮄⱘ乍Ⳃⱘ߯ᓎDŽ
4义
2.3 ᮄᓎ乍Ⳃ
ϝℹˈׂᬍ乍ⳂሲᗻDŽ乍Ⳃᮄᓎᅠ៤ৢˈ䳔㽕ׂᬍ乍Ⳃⱘሲᗻˈ݊Ёࣙᣀ㢃⠛Փ⫼
ⱘᤃᇣ˄䖭ϔ乍Џ㽕⫼Ѣӓⳳ˅ˈ ᰃ৺㓪䆥⫳៤ HEX ᭛ӊㄝDŽᎺ䖍䌘⑤⌣㾜఼Ёⱘ
ǏTarget 1ǐϞऩߏে䬂ˈ䗝ᢽǏOperations for TargetþTarget 1ÿǐˈ 䗝ᢽ Output䗝乍义䴶ˈ
བ 2.5DŽᇚǏCreate HEX File ǐ˖ϔ乍ⱘࠡ䴶ᮍḚЁᠧϞ䩽ˈ䖭ḋ㓪䆥ৢⱘᑣᠡ㛑ҹ HEX
᭛ӊᔶᓣ䕧ߎˈℸᯊ乍ⳂᏆ㒣䜡㕂ᅠ៤њˈϟᴹህ䖯ܹࠄ㓪⦃㡖DŽ
2.4 䗝ᢽऩ⠛ᴎ
5义
2.5 䕧ߎ䗝乍䆒㕂义䴶
ಯℹˈ乍ⳂЁ⏏ࡴᑣ᭛ӊDŽ᳝њ乍ⳂПৢህ䳔㽕ᓔྟ㓪ݭᑣDŽ佪ܜᮄᓎϔϾ
᭛ӊˈ䗝ᢽǏFileǐ=>ǏNewǐˈ ✊ৢᇚ݊ᄬЎϔϾ C᭛ӊ˄े*.c˅ⱘ᭛ӊˈऩߏǏFileǐ
=>ǏSave As…ǐˈ 䕧ܹ㽕ֱᄬⱘᑣ᭛ӊৡˈ䕧ܹ*.cˈ݊Ё*ҷ㸼㽕পⱘ᭛ӊⱘৡᄫˈ✊ৢ
ᇚℸ᭛ӊࡴܹ乍ⳂЁ ˈǏSource Group 1ǐϞऩߏে䬂 䗝ˈᢽǏAdd File to GroupþSource Group
1ÿǐˈ 䗝ᢽ߮ᠡֱᄬⱘ᭛ӊৢऩߏǏAddǐˈ བᵰ᳝Ͼ᭛ӊ䳔㽕ࡴܹᎹЁˈ߭䞡ҹϞℹ
偸ˈ᳔ৢऩߏǏCloseǐ䗔ߎˈℸᯊᏆ㒣خདњ㓪ݭҷⷕࠡⱘܼ䚼ޚᎹDŽϟᴹህᯊᕔ
᭛ӊЁݭܹԧⱘᑣDŽ
2.6 ᇚ⑤᭛ӊࡴܹ乍ⳂЁ
6义
ԧⱘᑣ㓪ݭᴀゴৢ䴶䚼ߚݡ䆺㒚ҟ㒡DŽᔧᑣ㓪ݭᅠ៤ৢˈ䳔㽕ᇍℸ乍Ⳃ䖯㸠㓪
䆥ˈऩߏǏProjectǐ=>ǏBuild targetǐˈ 㗙ऩߏᎹᷣϞⱘ DŽབᵰ㓪䆥ߎ䫭ˈ߭Ӯ
ϟᮍⱘ㓪䆥䕧ߎḚЁᰒ⼎ߎᴹˈབ 2.7DŽ
2.7 㓪䆥ߎ䫭
ḍߎ䫭ᦤ⼎ˈׂᬍ⑤᭛ӊˈ✊ৢ䞡㓪䆥ℹ偸ˈⳈ㟇⫳៤ HEX ᭛ӊDŽ㓪䆥៤ࡳৢˈ
ᇚ⫳៤ⱘᑣ䗮䖛 ADuC812ϧ⫼ⱘϟ䕑఼ϟ䕑ࠄऩ⠛ᴎЁህᅠ៤њᭈϾ䕃ӊⱘ㓪䜡㕂Ꮉ
ˈ㓪ݭⱘᑣህᇚऩ⠛ᴎЁ䖤㸠ˈབᵰ㓪ݭⱘᑣ≵᳝䫭䇃ˈℸᯊ៥Ӏህ㛑ⳟࠄᅲ偠⦄
䈵њDŽ
���� �ᇚ㓪䆥ⱘᑣ᭛ӊݭܹऩ⠛ᴎЁ�
ᇚ᳔ᇣ㋏㒳ᅝ㺙ࡳ㛑ᵓϞˈᑊᇚࡳ㛑ᵓⱘ⬉⑤ 5V ⱘ〇य़⬉⑤Ϟˈ⊼ᛣ⬉⬉⑤
ⱘℷ䋳ˈ㉝㡆㑶㡆㒓ˇ5Vˈ咥㡆㒓ഄDŽᑊ⫼І㸠㒓ᇚ⬉㛥ࡳ㛑ᵓⳌ㘨DŽ
⹂䅸䖲ℷ⹂Пৢᠧᓔ⬉⑤ˈℸᯊ䖬ϡ㛑䗮䖛ϧ⫼ⱘᑣϟ䕑䕃ӊϟ䕑ᑣˈ㽕䖯㸠
ᑣϟ䕑ˈ佪ܜ㽕䖯㸠ϟ߫䞡㕂ℹ偸˖ܜܜᣝϟ PSEN 䬂ˈֱᣕ PSEN ᣝϟⱘৠᯊˈᣝϟ
RESET䬂ᑊᢀ䍋ˈ᳔ৢᢀ䍋 PSEN䬂ˈℸᯊऩ⠛ᴎ䖯ܹㄝᕙᑣ⚻ݭ⢊ᗕDŽ
ADuC812 ৃҹ䗮䖛Іষᇍ㢃⠛ⱘ⠛ݙⱘ⬉ৃ᪺䰸ᑣټᄬऎ䖯㸠⚻ݭˈ䖭Ͼ⚻ݭ䖛
᳝݊ԧⱘ䇏ݭᯊᑣ Փˈ⫼ AD݀ৌⱘ㢃⠛ৃⳕএњ䖭Ͼ㐕⧤ⱘℹ偸 ˈ݊݀ৌⱘЏ义ৃҹ
ᡒࠄϧ⫼ⱘᑣϟ䕑఼˄WSD.EXE˅,䖤㸠ৢⱘ⬠䴶བ 2.8DŽ
7义
2.8 ADuC812ϟ䕑఼
ԧᑣϟ䕑ℹ偸བϟ:
ϔℹˈϟ䕑খ᭄䜡㕂DŽऩߏ Configurationᣝ䬂ˈߎ⦄བ 2.9ⱘ䆒㕂㦰ऩˈ䜡㕂ϟ
䕑఼ⱘ䆒㕂DŽЏ㽕䆒㕂᳝ϝϾˈߚ߿ 2.9Ё⫼咥㡆ԣDŽᎺϞ㾦ⱘᰃІষⱘ㓪োˈ䖭
乍ⱘ䗝ᢽϢऩ⠛ᴎⱘІষ⬉㛥Іষⱘ䖲݇㋏᳝݇ ϔˈ㠀⬉㛥ⱘϞッІষЎ COM1 Ё˗
䯈ϔϾᰃᔧࠡऩ⠛ᴎ䞛⫼ⱘᎹᤃ乥⥛ᇣˈ䗝ᢽ Other crystal乍ৢˈৢ䴶ⱘ᭛ᴀḚЁ
฿ܹ 12˗ϟ䴶ϔϾ咥䗝乍ᰃ⹂ᅮᰃ৺ᑣϟ䕑ৢ㞾ࡼ䖤㸠ˈϔ㠀гᇚ䖭ϔ乍࣒䗝Ϟˈ
ℷ⹂䆒㕂ৢˈ⹂ᅮ䗔ߎ䜡㕂⬠䴶DŽ
2.9 ADuC812ϟ䕑఼
8义
Ѡℹˈᑣ⚻ݭDŽ⚍ߏ AD݀ৌϧ⫼⚻ݭᑣЁⱘ Download䬂ˈབᵰ㛑䅸ߎऩ⠛
ᴎⱘൟোᑊᰒ⼎⬠䴶েϞ㾦བ 2.10 Ё咥᠔⼎ˈ߭㸼ᯢऩ⠛ᴎ㛑䖯㸠ᑣϟ䕑DŽϨ
ℸᯊ㛑ᔍߎϔϾᠧᓔ᭛ӊⱘᇍ䆱Ḛˈᇍ䆱ḚЁ䗝ᢽ߮߮㓪䆥ৢⱘ HEX᭛ӊˈ✊ৢ⚍ߏ
⹂ᅮህৃҹᇚᑣϟ䕑ࠄऩ⠛ᴎЁDŽ
བᵰ᮴⊩ℷ⹂ϟ䕑ˈ߭䇋ᣝབϟℹ偸䖯㸠Ẕᶹ˖
˄1˅� 䞡䞡㕂ℹ偸 ˈࡴ PSENⱘᣝϟᯊ䯈 ᑊˈ PSEN䞞ᬒৢ ᓊˈ䭓 RESET
䬂ֱᣕᣝϟⱘᯊ䯈ৢ䞞ᬒDŽ
˄2˅� ẔᶹІষ㒓ϸッᰃ৺ℷᐌ䖲ࠄ⬉㛥䆩偠ᵓˈ⹂ᅮІষ㒓ᰃѸঝ㒓DŽ
˄3˅� ϟ䕑䕃ӊⱘ䆒㕂ᰃ৺ℷ⹂˄ᤃ乥⥛ˈ⬉㛥Іষো˅
ϔ㠀㒣䖛ҹϞℹ偸ህৃҹᥦ䰸ᬙ䱰ˈབᵰᬙ䱰ձᮻˈ䇋䗮䖛ࡽᬭᤶᅲ偠Ҿ఼DŽ
2.10 ϟ䕑఼Ꮖ㒣ᅠ៤Ϣऩ㆛ᴎⱘ䗮䆃
9义
3ǃᬭᄺᅲ偠
ҹϟⱘᅲ偠ݙᆍᇚ⍝ঞᕜ⡍⅞ࡳ㛑ᆘᄬ఼˄SFR special function register˅,䖭ѯᆘᄬ఼
䛑᳝Ⳍᑨⱘৡ⿄DŽҪӀऩ⠛ᴎЁাᰃϔϾ⡍⅞ⱘᄬټ఼ぎ䯈ഄഔ བˈᵰ㽕ⳈՓ⫼䖭ѯᆘ
ᄬ఼ˈ䳔㽕佪ܜᶹ䆶䖭ѯᆘᄬ఼ৡ⿄ݙᄬഄഔԧⱘᇍᑨ݇㋏˄㾕䌘᭭䰘ᔩ 1˅ˈ ✊ৢᇍ
䖭ѯഄഔ䖯㸠᪡DŽЎњᮍ֓ᑣⱘ㓪ݭ䯙䇏ˈ䖭ѯᆘᄬ఼༈᭛ӊ
Ё䛑
㒭ߎњᅮНDŽ᠔ҹҹϟⱘᅲ偠ᑣЁˈབᵰᑣЁࣙᣀњℸ༈᭛ӊˈህৃҹڣՓ⫼ব䞣
ϔḋˈ䗮䖛⡍⅞ᆘᄬ఼ⱘৡ⿄ᴹ᪡䖭ѯᆘᄬ఼DŽ՟བ˖ࠊ P0ッষⱘ⡍⅞ࡳ㛑ᆘᄬ఼ৡ
ህЎ P0ˈ䗮䖛ᶹ䆶䰘ӊ 1Ёⱘ㸼Ḑˈᕫࠄ݊ᄬټ఼ഄഔЎ 80Hˈ咬䅸ؐЎ FFHDŽℸ៥Ӏ
ৃҹᑣЁ 80H ⱘݙᄬぎ䯈ݭ᭄ˈ㗙ࣙњ༈᭛ӊৢˈЎ P0 䌟
ؐᴹ䖒ࠄ᪡ P0ッষⱘⳂⱘDŽ
����᭄ᄫ䕧ܹ䕧ߎഫ˄,�2˅�
3.1.1 I/Oㅔҟ
ADuC812᳝݅ 4Ͼ 8ԡ I/OষDŽP0ৃЎ䕧ܹ䕧ߎষˈгৃЎഄഔᘏ㒓ˈᔧЎ䕧
ܹ䕧ߎষᯊˈܿϾ I/Oষഛᰃᓔⓣⱘঠষˈℸᯊ P0ッষݭ 0 Pˈ0ᇚഄ˗ᔧ P0ッষ
ݭ 1ˈP0 ᇚ៤Ў催䰏ᗕDŽP1 ᰃܿԡⱘ䕧ܹッষˈгৃЎ AD䕧ܹ䕀ᤶ䗮䘧ˈϸࡳ㛑䛑ᰃ
䕧ܹˈℸッষϡ㛑䕧ߎDŽЎњ䅽 P1Ў᭄ᄫ䕧ܹッষˈ䳔㽕ᇍᑨッষݭ 0ˈབᵰ P1ッ
ষݭ 1ˈ߭ P1ⱘℸッষᇚЎ AD䕀ᤶ䗮䘧Փ⫼DŽP2ষᰃܿԡⱘᏺϞᢝ⬉䰏ⱘঠষˈг
Ўᠽሩᑨ⫼Ёⱘഄഔᘏ㒓Փ⫼DŽP3ᰃᰃܿԡⱘᏺϞᢝ⬉䰏ⱘঠষ ৠˈᯊ P3ⱘϾッষ
䛑ᅮНњ⡍⅞ⱘ⫼䗨DŽADuC812ⱘ᠔᳝ I/Oষࡳ㛑߫㸼བϟDŽ
㸼 3.1 ADuC812 I/Oষࡳ㛑߫㸼
I/Oষ ࡳ㛑 1 ࡳ㛑 2
P0˄P0.0-P0.7˅ ᓔⓣ㑻ঠষ ഄഔᘏ㒓˄䚼ߚ˅
P1˄P1.0-P1.7˅ ᭄ᄫ䕧ܹッষ AD䕀ᤶ䕧ܹ䗮䘧
P2˄P2.0-P2.7˅ ᏺϞᢝঠষ ഄഔᘏ㒓˄䚼ߚ˅
P3.0 ᏺϞᢝঠষ RxD˄Іষ䗮䆃ⱘ䇏ܹ˅
P3.1 ᏺϞᢝঠষ TxD9Іষ䗮䆃ⱘݭߎ˅
P3.2 ᏺϞᢝঠষ INT0˄Ёᮁ˅
P3.3 ᏺϞᢝঠষ INT1/MISO˄Ёᮁ/І㸠䗮䆃ষ˅
P3.4 ᏺϞᢝঠষ T0˄䅵ᯊ఼ 0ッষ˅
10义
P3.5 ᏺϞᢝঠষ T1/CONVST˄䅵ᯊ఼ 1ッষ˅
P3.6 ᏺϞᢝঠষ RW˄ᘏ㒓ッষ˅
P3.7 ᏺϞᢝঠষ RD˄ᘏ㒓ッষ˅
3.1.2 ᅲ偠ᵓϞᇍ I/Oッষⱘᠽሩ
Ўњ㛑Փ⫼ I/O ッষخᅲ偠ˈᬭᄺᅲ偠㋏㒳ᇍ ADuC812 ⱘϾッষ䛑خњᠽሩˈ݊
ЁথܝѠᵕㅵǃᣝ䬂ǃ᭄ⷕㅵ䛑ᰃ I/Oⱘᠽሩ⬉䏃DŽ
DVDD S1
SW-PB1
DVDD S2
SW-PB3
DVDD
DVDD S3
SW-PB2
S4
SW-PB4
D1
LED
D4
LED
D3
LED
D2
LED
R33
1K
R34
1K
R35
1K
R36
1K
DVDD
P0.1
P0.2
P0.3
P0.4
P1.7
P1.4P1.3
P1.6
R39
1K
R40
1K
R41
1K
R42
1K
C1
0.01uF
C13
0.1uF
C2
0.01uF
C17
0.1uF
C3
0.01uF
C22
0.1uF
C21
0.1uF
C4
0.01uF
R50
1K
R51
1K
R52
1K
R53
1K
3.1 থܝѠᵕㅵঞᣝ䬂⬉䏃ॳ⧚
BI/RBO 4
RBI 5
LT 3
A 7
B 1
C 2
D 6
a13
b12
c11
d10
e9
f15
g14
74LS48
1
2
3
4
5
6
7
a
b
c
d
e
f
g
8 dp
9
GND
a
bf
c
g
d
e
dp
DS1
AMBERCC
1
2
3
4
5
6
7
a
b
c
d
e
f
g
8 dp
9
GND
a
bf
c
g
d
e
dp
DS2
AMBERCC
1
2
3
4
5
6
7
a
b
c
d
e
f
g
8 dp
9
GND
a
bf
c
g
d
e
dp
DS3
AMBERCC
DVDD
DVDD
R59
510ohm
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
S10
SW SPDT
3.2᭄ⷕㅵ⬉䏃ॳ⧚
11义
3.3 ࡳ㛑ᬭᄺᅲ偠ᵓࡳ㛑ഫ
ҢϞ䴶ⱘḚ៥Ӏৃҹᕫߎབϟⱘ I/O䌘⑤ߚ䜡㸼ˈ䖭ᓴ㸼ᇚЎПৢⱘᑣ㓪ݭᦤկ䞡
㽕ձDŽ
㸼 3.2 I/O䌘⑤ߚ䜡㸼
ࡳ㛑ഫ IO䌘⑤
᭄ⷕㅵ᭄ᄫ P2.0ˉP2.3
᭄ⷕㅵࠊ 1ˉ3˄ҢᎺࠄে˅ P2.4ˉP2.6 Ԣ⬉ᑇ᳝ᬜ
থܝѠᵕㅵ 1ˉ4˄ҢᎺࠄে˅ P0.1ˉP0.4 催⬉ᑇ᳝ᬜ
ᣝ䬂 1ˉ4˄ҢᎺࠄে˅ P1.3ˈP1.6ˈP1.4ˈP1.7
ࡴ⛁ϱ P0.1
亢 P0.2
㳖号఼ P0.3
⬉䰏఼ ADC0
3.1.3 I/Oッষ՟
䎥偀♃ᅲ偠˖ᴀ⼎՟Џ㽕ᄺдᴀ ,�2 ষⱘ䕧ߎࡳ㛑DŽ⼎՟Փ⫼ 3� ষⱘ � Ͼッষࠊ
ᅲ偠ᵓϞⱘ �Ͼᣛ⼎♃ˈՓПᕾ⦃⚍҂˗�
ᑣߚᵤ˖㽕ᅲ⦄ಯϾᣛ⼎♃ᕾ⦃⚍҂ˈা䳔㽕ЏᑣЁϡᮁᕾ⦃ᇚ P0.1ˉP0.4ಯϾ
ッষ䕧ߎ催⬉ᑇ˄ेݭ 1˅ˈ ᑊϨ݊Ёᦦܹϔᅮⱘᓊᯊ˄ৃ䆒㕂ぎᕾ⦃䇁হ˅ҹՓ㙝ⴐ㛑
㾖ᆳࠄᕾ⦃⚍҂ⱘᬜᵰDŽϟ䴶ᰃ՟ᑣ˖
12义
#include //ℸ༈᭛ӊ⫼Ѣᇚ᠔᳝ⱘッষব䞣Ⳍᑨⱘᆘᄬ఼݇㘨
//ܼሔব䞣⬇䇋ˈЎᕾ⦃⚍҂ⱘࠊব䞣
unsigned char deng = 0;
//ᓊᯊᄤᑣ
void delay(int time)
{
int i = 0;
for(i = 0; i< time;i++)
;
}
void main(void) //Џᑣܹষ
{
P0 = 2; //♃ッষ߱ྟ࣪ˈ⚍҂ϔϾ♃
//ᑣ䖯ܹ᮴䰤ᕾ⦃
while(1)
{
if (deng == 2) //བᵰᰃϔϾ♃҂
deng = 4; //݇ϔϾ♃ˈᓔѠϾ♃
else if (deng == 4) //བᵰᰃѠϾ♃҂
deng = 8; //݇ѠϾ♃ˈᓔϝϾ♃
else if (deng == 8) //བᵰᰃϝϾ♃҂
deng = 16; //݇ϝϾ♃ˈᓔಯϾ♃
else if (deng == 16) //བᵰᰃಯϾ♃҂
deng = 2; //݇ಯϾ♃ˈᓔϔϾ♃
else
deng = 2; //བᵰϡᰃҹϞᚙމˈ᭄ߎ⦄䯂乬ˈᘶࠄϔϾ♃҂
P0 = deng;
delay(10000); //ᓊ䖳ϔ↉ᯊ䯈
}
}
3.1.4 ADuC812ऩ⠛ᴎᴀ I/Oᅲ偠˄ᅲ偠Ϯ˅
z ᅲ偠Ⳃⱘ˖�
1˅❳ᙝѢ Keil Cⱘऩ⠛ᴎᭈԧ㓪⦃๗ҹঞᑣᓔথ⌕˗
2˅њ㾷ᴀ I/O䕧ܹ䕧ߎ⹀ӊॳ⧚˗
3˅ᄺдᥠᦵऩ⠛ᴎⱘᴀ I/O㓪ᡔᴃDŽ
z ᅲ偠ݙᆍ˖�
1˅ᴀᅲ偠 1˖ᴀ⼎՟Џ㽕ᄺдᴀ I/Oষⱘ䕧ܹࡳ㛑DŽ䩜ᇍᅲ偠ᵓϞಯϾᣝ䬂ˈ
ᕾ⦃ᠿᦣಯϾᣝ䬂⢊ᗕˈᑊ᭄ⷕㅵϞᰒ⼎ાϾᣝ䬂㹿ᣝϟ˗
2˅ᴀᅲ偠 2˖ᕾ⦃Ẕ⌟ᣝ䬂 K1ⱘ⢊ᗕˈϸϾ᭄ⷕㅵᰒ⼎ᣝ䬂ᣝϟⱘ᭄DŽ߱ྟ
⢊ᗕ᭄ⷕㅵᰒ⼎Ā00āˈ K1↣ᣝϟϔᰒ⼎᭄ᄫࡴ 1ˈⳈࠄࡴࠄĀ20āⱘᯊ
13义
জᣝϟ K1ˈᰒ⼎᭄ᄫ⏙䳊˗
3˅ᦤ催ᅲ偠˖ᕾ⦃Ẕ⌟ᣝ䬂 K3 K4ⱘ⢊ᗕˈϸϾ᭄ⷕㅵᰒ⼎ᣝ䬂ᣝϟⱘ᭄DŽ
߱ྟ⢊ᗕ᭄ⷕㅵᰒ⼎Ā10āˈ K3 ↣ᣝϟϔᰒ⼎᭄ᄫࡴ 1ˈK4 ↣ᣝϟϔᰒ
⼎᭄ᄫޣᇥ 1DŽབᵰࡴࠄĀ20āⱘᯊজᣝϟ K3ˈ߭ᰒ⼎᭄ᄫ⏙䳊ˈབᵰޣ
ᇣࠄĀ00āⱘᯊজᣝϟ K4ˈ䖭ᰒ⼎᭄ᄫবЎĀ20āDŽ
����Ёᮁ㋏㒳ǃᅮᯊ఼�䅵఼᭄�
3.2.1 Ёᮁ㋏㒳ㅔҟ
ADuC812 ᳝݅ 9 ⾡Ёᮁ⑤ˈϸ⾡ЁᮁӬܜ㑻ˈᑊ᳝ 3 Ͼ⡍⅞ࡳ㛑ᆘᄬ఼ࠊˈ䖭ϝϾ
⡍⅞ࡳ㛑ᆘᄬ఼ߚ߿Ў IE IˈP IˈE2DŽ䖭ϝϾ⡍⅞ࡳ㛑ᆘᄬ఼ԡⱘᛣН㾕䌘᭭䰘ᔩ 2~4DŽ9
⾡Ёᮁ⑤ᇍᑨⱘЁᮁ䞣Ёᮁ䞣ഄഔ㾕㸼 3.3DŽ㸼 3.3 ЁЁᮁⱘᑣোህᰃ KeilC 㓪
ЁЁᮁᄤ interrupt݇䬂ᄫৢ䴶Փ⫼ⱘ᭄ᄫDŽ
⡍⅞ᆘᄬ఼ IE IE2⫼Ѣ䆒㕂ЁᮁՓ㛑ˈIP⫼Ѣ䆒㕂Ёᮁⱘ᳝䰤㑻DŽADuC812ⱘЁᮁ
া᳝ HIGH LOWϸ⾡ˈᢹ᳝ HIGH᳝ӬܜЁᮁৃҹ LOWӬܜ㑻ⱘЁᮁડᑨ䖛Ёᕫ
ࠄડᑨDŽབᵰϸ⾡Ёᮁৠᯊথ⫳ˈᢹ᳝ HIGHӬܜ㑻ⱘЁᮁህӮܜ㹿䖤㸠ˈབᵰৠᯊথ⫳ⱘ
ϸϾЁᮁᢹ᳝ⳌৠⱘӬܜ㑻ˈ䙷Мડᑨ乎ᑣህ㾕㸼 3.3᳔ৢϔ㸠᠔ᷛ⊼ⱘݙ䚼Ӭܜ㑻DŽ
㸼 3.3 Ёᮁ䞣Ёᮁ䞣ഄഔ㸼
ᑣো� Ёᮁ䞣� 䞣ഄഔ� ݙ䚼Ӭܜ㑻�
0 IE0 0003 HEX 2
1 TF0 000B HEX 4
2 IE1 0013 HEX 5
3 TF1 001B HEX 6
4 RI+TI 0023 HEX 8
5 TF2+EXF2 002B HEX 9
6 ADCI 0033 HEX 3
7 ISPI 003B HEX 7
8 PSMI 0043 HEX 1
⬅Ѣ IE IE1咬䅸ᰃ 0ˈे 咬䅸᠔᳝Ёᮁ݇䯁DŽᑣЁЎњᠧᓔϔϾЁᮁ 䳔ˈ㽕䆒㕂 IE
14义
IE1ЁᇍᑨⱘЁᮁࠊЎ 1ˈᑊ䆒㕂᠔᳝ЁᮁࠊЎ 1DŽIEⱘϾԡ䛑᳝ᇍᑨⱘৡ⿄ˈ
ᑣЁৃҹⳈՓ⫼DŽ՟བˈ᠔᳝ЁᮁࠊԡЎ EAˈ䅵ᯊ఼ 0ЁᮁࠊԡЎ ET0DŽ
ЎњЏᑣ㗙ЁᮁᑣЁⱘᶤѯ݇䬂ᑣ䚼ߚϡ㹿Ёᮁˈ䳔㽕䆒㕂Ёᮁ⽕ऎDŽЏ
ᑣЁՓ⫼Ёᮁ⽕ऎˈৃҹ䖯ܹ⽕ऎࠡ EAݭ 0ˈߎ⽕ऎৢ EAݭ 1DŽ
KeilCЁ㓪ݭЁᮁᑣˈা䳔㽕ᣝ✻ C䇁㿔ⱘ㾘㣗ݭϔϾᄤᑣˈԚϢ᱂䗮ᄤᑣ᳝
ϔ⚍Ꮒ߿ˈᄤᑣ⬇ᯢ᳔ৢ㽕ࡴϞ݇䬂ᄫ interrupt nˈ݊Ё nҷ㸼ЁᮁোˈԧⱘЁᮁো
㾕㸼 3.3ЁⱘᑣোDŽᑣ㓪ݭ㾘㣗㾕 3.2.3Ё՟DŽ
3.2.2 ᯊ䯈Ёᮁ㋏㒳
ADuC812᳝ 3Ͼ 16ԡᅮᯊ఼/䅵఼᭄ˈߚ߿⿄Ўᅮᯊ఼ 0ǃᅮᯊ఼ 1ᅮᯊ఼ 2DŽ↣ϔ
Ͼ䅵ᯊ఼ࣙᣀњϸϾ 8ԡⱘᆘᄬ఼ˈTHx TLxˈ݊Ё xৃЎ 0ˈ1ˈ2DŽҪӀ䛑ৃҹ㹿䜡㕂
Ўᅮᯊ఼㗙џӊ䅵఼᭄DŽ
ᔧЎᅮᯊ఼Փ⫼ᯊˈTLx ↣ϔϾᯊ䩳਼ᳳ䛑ࡴDŽ㗠↣ϔϾᯊ䩳਼ᳳ䛑ࣙњ 12
Ͼݙ䚼Ḍᖗᯊ䩳DŽℸ᳔䅵ᯊ乥⥛া㛑ᰃݙḌᯊ䩳乥⥛ⱘ 1/24DŽᔧЎ䅵఼᭄Փ⫼ᯊˈ
TLx ↣ϔϾ䚼џӊ䕧ܹㅵ㛮˄T0ǃT1ǃT2˅Ϟⱘ 1 ࠄ 0 䏇বᇚࡴ 1DŽЎњ㛑ֱ䆕
䚼џӊֵো㛑㹿ℷ⹂䞛ḋࠄ џˈӊֵোᖙ乏㽕ԢѢݙḌᯊ䩳乥⥛ⱘ 1/24ⱘ乥⥛ϟᎹDŽ
ADuC812 ᳝ϝϾ⡍⅞ᆘᄬ఼ᴹࠊ䖭ϝϾᅮᯊ఼DŽҪӀߚ߿Ў TMODǃTCON
T2CONDŽTMOD ⫼Ѣࠊᅮᯊ఼ 0 ᅮᯊ఼ 1 ⱘᎹᓣˈTCON ⫼Ѣࠊᅮᯊ఼ 2DŽ䆺
㒚њ㾷䖭ϝϾ⡍⅞ᆘᄬ఼ԡⱘᛣН㾕䌘᭭䰘ᔩ 5~7DŽ
ᅮᯊ఼ 1 ᅮᯊ఼ 2 ᳝ಯ⾡ᎹᓣDŽߚ߿Ўᓣ 0ˉᓣ 3DŽϟ䴶ߚ߿ҟ㒡䖭ಯ⾡Ꮉ
ᓣDŽ
Ꮉᓣ ��
3.4㱑✊া⬏њ T0ⱘᎹᓣ 0ⱘ⼎ᛣˈԚᇍ T1гৠḋˈা䳔ᡞᇍᑨⱘᆘᄬ఼ᤶ
៤ T1ⱘᆘᄬ఼ेৃDŽϟ䴶ᇚҙҢ T0ⱘᎹᚙމߎথҟ㒡 3.4DŽҢ 3.4ৃҹⳟߎ C/Tᰃ
䗝ᢽᅮᯊ఼Ꮉᅮᯊ఼ᓣ䖬ᰃᎹ䅵ᯊ఼ᓣDŽC/T TMODᆘᄬ఼ЁЎ CNTԡDŽ
CONTROLЎᅮᯊ఼ⱘᓔ݇ˈ㗠 CONTROLজᰃ⬅ TR0 GˈATE P3.2ⱘ䘏䕥㒘ড়ᕫࠄⱘDŽ
䗮䖛ҹϞḚ ៥ˈӀৃⶹ CONTROLㄝѢ GATEⱘডϢ P3.2ⱘݡϢϞ TR0DŽℸ ᔧˈ TR0
Ў 1ˈϨ GATEЎ 0㗙 P3.2Ў 1ˈℸᯊᅮᯊ఼ᓔ䗮DŽᅮᯊ఼Ꮉᯊˈᅮᯊ఼ⱘ䅵᭄㣗ೈ
Ў 13ԡˈे 2ⱘ 13ᮍˈ8192䅵᭄ぎ䯈DŽᔧ䅵᭄⒵ৢˈऩ⠛ᴎᇚ TF0㕂 1ˈབᵰᯊ䯈Ё
ᮁ㹿ᠧᓔˈ߭ℸᯊᇚѻ⫳ϔϾᯊ䯈ЁᮁDŽ
15义
3.4 ᅮᯊ఼Ꮉᓣ 0
Ꮉᓣ ��
Ꮉᓣ 1ϢᎹᓣ 0ⱘᏂ߿Ѣ䅵᭄ぎ䯈ⱘϡৠ ˈᓣ 0䅵᭄ぎ䯈ԡ 13ԡ ˈᓣ 1
ⱘ䅵᭄ぎ䯈ԡ 16ԡˈᯊ䅵᭄ぎ䯈ⱘ 8סDŽᇍѢ䳔㽕䭓ᯊ䯈ᅮᯊⱘᑨ⫼ৃҹ㗗㰥䖭⾡ᓣDŽ�
�
3.5 ᅮᯊ఼Ꮉᓣ 1
Ꮉᓣ ��
ᓣ 2Ϣࠡϸ⾡ᓣгᰃ䅵᭄ぎ䯈Ϟⱘϡৠˈ䖭⾡䅵᭄ᓣぎ䯈䕗ᇣˈᇣѢ 8ԡˈϨ
Փ⫼♉⌏DŽڣࠡϸ⾡ᓣˈ䅵᭄ᇣᅮԡ 13ԡ 15ԡˈ䖭⾡䅵᭄ᓣৃҹ䅵᭄ᇣѢ 8
16义
ҹݙⱘぎ䯈ݙ䇗ᭈ䅵᭄ᇣˈԧᅲ⦄བϟDŽᓣ 2ⱘ TL0خЎ䅵᭄ぎ䯈݅ 8ԡˈTH0
Ў䅵᭄䍋ྟᄬټ఼ˈгህᰃ䇈ˈTL0 ⹂ᅮњ䅵᭄ⱘ᳔ؐˈTH0 އᅮњᓔྟ䅵᭄ⱘ᭄ؐˈ
ϸ᭄ⳌޣेЎᅮᯊ఼ⱘ䅵᭄ぎ䯈ᇣˈℸℸ⾡䅵᭄ᓣ᳝ᕜⱘ♉⌏ᗻDŽ
�
3.6 ᅮᯊ఼Ꮉᓣ 2
Ꮉᓣ ��
ᓣ 3 Ϣࠡ䴶ⱘϝ⾡Ꮉᓣ᳝ᕜⱘϡৠDŽT1 ᓣ 3 ϟᇚذℶ䅵᭄ˈT0 ᓣ 3
ϟᇚᣝ✻ 3.7ⱘᎹᓣᎹDŽখ㗗ࠡ䴶ϝ⾡ᓣⱘҟ㒡ˈ 3.7ⱘᎹᚙމ㉏Ԑˈ䖭䞠
ህϡݡخҟ㒡њDŽ㽕ᔎ䇗ⱘϔ⚍ᰃˈᔧ T0ᓣ 3ϟᎹᯊ Tˈ1ৃҹ໘Ѣӏԩϔ⾡Ꮉ
ᓣˈᑊϨℷᐌᎹˈাᰃℸᯊ T1᮴⊩ѻ⫳Ёᮁ TF1DŽгህᰃ䇈ˈᔧ T0Ꮉᓣ 3ϟᯊˈ
T1ৃҹ䜡㕂㒭ІষЎখ㗗乥⥛䅵఼᭄Փ⫼DŽ
�
3.7 ᅮᯊ఼Ꮉᓣ 3
17义
3.2.3 ᯊ䯈Ёᮁ՟
ᯊ䯈Ёᮁᅲ偠˖ᴀ⼎՟Џ㽕ᄺдᯊ䯈Ёᮁᑣⱘ㓪ݭᮍ⊩DŽ⼎՟䞛⫼ᯊ䯈Ёᮁⱘᮍ⊩ˈ
ᅲ⦄䎥偀♃ᑣDŽ�
ᑣߚᵤ˖㽕ᅲ⦄ಯϾᣛ⼎♃ᕾ⦃⚍҂ˈা䳔㽕ЏᑣЁϡᮁᕾ⦃ᇚᶤϔϾব䞣ݭܹ
ࠄ P0ˈ㗠䖭Ͼব䞣ᇚᯊ䯈ЁᮁᑣЁ䖯㸠ᬍবˈ䅽ಯϾ♃ϡᮁᕾ⦃҂♁DŽϟ䴶ᰃ՟ᑣ˖
#include //ℸ༈᭛ӊ⫼Ѣᇚ᠔᳝ⱘッষব䞣Ⳍᑨⱘᆘᄬ఼݇㘨
//ܼሔব䞣⬇䇋ˈЎᕾ⦃⚍҂ⱘࠊব䞣
unsigned char deng = 2;
void main(void) //Џᑣܹষ
{
//䜡㕂ᑊᠧᓔᯊ䯈 0Ёᮁ
TMOD = 0x01; //䅽ᯊ䯈Ёᮁ 0Ꮉ 1ᓣϟˈ݇Ѣ TMODˈTCONˈTH0ⱘᛣН䇋㾕䰘ӊ
TCON = 0x10; //ᠧᓔᯊ䯈Ёᮁ 0
ET0 = 1; //ܕ䆌ડᑨᯊ䯈Ёᮁ
EA = 1; //ܕ䆌ડᑨ᠔᳝Ёᮁ
P0 = 2; //♃ッষ߱ྟ࣪ˈ⚍҂ϔϾ♃
//ᑣ䖯ܹ᮴䰤ᕾ⦃
while(1)
{
P0 = deng; //ϡᮁ P0ッষݭ♃ⱘࠊব䞣ˈℸব䞣ᇚᯊ䯈ЁᮁЁׂᬍ
}
}
void timer1(void) interrupt 1
{
if (deng == 2) //བᵰᰃϔϾ♃҂
deng = 4; //݇ϔϾ♃ˈᓔѠϾ♃
else if (deng == 4) //བᵰᰃѠϾ♃҂
deng = 8; //݇ѠϾ♃ˈᓔϝϾ♃
else if (deng == 8) //བᵰᰃϝϾ♃҂
deng = 16; //݇ϝϾ♃ˈᓔಯϾ♃
else if (deng == 16) //བᵰᰃಯϾ♃҂
deng = 2; //݇ಯϾ♃ˈᓔϔϾ♃
else
deng = 2; //བᵰϡᰃҹϞᚙމˈ᭄ߎ⦄䯂乬ˈᘶࠄϔϾ♃҂
}
3.2.4 Ёᮁ㋏㒳ǃᅮᯊ఼/䅵఼᭄ᅲ偠
z ᅲ偠Ⳃⱘ˖�
1˅❳ᙝ Keil Cᭈԧ㓪⦃๗ҹঞMCUᑣᓔথ⌕˗
2˅њ㾷ⱘЁᮁ㋏㒳ǃᅮᯊ఼/䅵఼᭄Ꮉॳ⧚˗
18义
3˅ᄺдЁᮁ㋏㒳ǃᅮᯊ఼/䅵఼᭄ࡳ㛑ⱘ㓪ᡔᴃDŽ
z ᅲ偠ݙᆍ˖�
1˅ᴀᅲ偠 1 Փ˖⫼䗮⫼ᅮᯊ఼ᴹѻ⫳㑺 1⾦䩳ⱘᅮᯊ఼Ёᮁ ˈЁᮁЁᴹ㾺থ
㳖号఼থໄ˗
2˅ᴀᅲ偠 2˖ᅲ偠Փ⫼ᣝ䬂 K1ᴹ䚼Ёᮁ䕧ܹ㛝ކˈ↣Ёᮁৢ䅵఼᭄䅵᭄क
ˈ⬅᭄ⷕㅵᰒ⼎Ⳍᑨⱘ䅵᭄ؐˈ䅵᭄ؐࠄ 100ৢ䅵఼᭄⏙䳊ˈᓔྟ䅵᭄˗
3˅ᦤ催ᅲ偠˖ᑨ⫼ᅮᯊ఼ѻ⫳ 1 ⾦䩳ⱘᯊ䯈䯈䱨ˈᴹᕾ⦃⚍҂᳔ᇣ㋏㒳ᵓϞⱘ 4
Ͼᣛ⼎♃DŽ߱ྟ⢊ᗕϟ 4Ͼ♃ϡ҂ˈᣝϟ K1ৢਃࡼᅮᯊ఼ˈ㑺 1⾦䩳ৢϔ
Ͼ♃⚍҂ˈ㑺 2 ⾦䩳ৢѠϾ♃⚍҂ˈ㑺 3 ⾦䩳ৢϝϾ♃⚍҂……DŽ
ਃࡼᅮᯊ఼ⱘ⢊ᗕϟᣝϟ K2ˈ䙷Мᅮᯊ఼ذℶDŽݡᣝϟ K1 ᯊˈজӮਃࡼᅮ
ᯊ఼ˈᣛ⼎♃ⴔᕾ⦃⚍҂DŽ
����ᢳষ $�' '�$�
3.3.1 D/Aㅔҟ
ADuC812䲚៤њϸϾ 12ԡⱘ⬉य़䕧ߎ DAC˄᭄ᄫ䞣ࠄᢳ䞣䕀ᤶ䕧ߎ˅ˈ ↣ϔϾ䛑㛑
⒵䞣䕧ߎˈे㢹ऩ⠛ᴎկ⬉Ў 5Vˈ᳔݊ৃ䕧ߎ⬉य़гৃҹࠄ䖒 5VDŽϸ䏃 DAC䛑᳝ϸ
⾡ৃ䗝ⱘ䕧ߎ⬉य़㣗ೈ 0ˈ̚Vref㗙 0̚AVddDŽ݊ Ё VrefЎݙ䚼খ㗗⬉य़ Ўˈ 2.5V AˈVdd
Ўऩ⠛ᴎⱘկ⬉⬉य़ˈЎ 5VDŽ↣ϔ䏃 DACৃᎹ 12ԡ㗙 8ԡⱘ䕧ߎ㊒ᑺϞDŽϸ䏃݅
ѿϔϾࠊᆘᄬ఼ DACCON ಯˈϾ᭄ᆘᄬ఼ DAC0H/L DˈAC1H/LDŽDAC 12ԡᓖℹ
ᓣϟᎹˈ⬅Ѣ݊ݙ䚼Ꮉᴎ⧚ˈܜ䇏ܹⱘᰃ催ԡˈे DACxHˈৢ䇏ܹⱘЎ DACxLDŽℸ
ᯊ DACxHⱘԢಯԡᰃ䕀ᤶ᭄ⱘ催ಯԡˈDACxLټᄬњ䕀ᤶ᭄ⱘԢ 8ԡDŽDACᎹ
8ԡᓣϟˈ䖭 DACxH≵᳝ਃ⫼ˈᕙ䕀ᤶ᭄ᄬټ DACxLЁDŽ
3.8ᰃ DA䕀ᤶॳ⧚ˈԧᅲ⦄⬉䏃≵᳝㒭ߎDŽ
19义
3.8 DA䕀ᤶॳ⧚
ADuC812 ⱘ DAC ᰃ rail-to-tail ⱘᎹᓣˈԚᰃ⬉य़ᕜᇣ⬉य़ᕜⱘϔϾ䴲ᐌᇣ
ⱘऎඳˈ䕀ᤶ⬉य़᳝䚼ߚ༅ⳳDŽ 3.8ᰒ⼎њ䖭Ͼ䚼ߚDŽᔧ䕧ߎ偅ࡼᇍഄ 10Kྚ⬉䰏ᯊˈ
䕀ᤶ᭄ᄫ䞣Ў 0ˉ48 0̚AVddᎹᓣϟⱘ 3995ˉ4095↉᳝䚼ߚ༅ⳳDŽ⬅Ѣ ADuC812
ⱘ DAC䕧ߎࡳ⥛᳝䰤ˈϔ㠀 DAC䕧ߎ䛑ᇚ䆒䅵ϔϾ䎳䱣఼ˈҹֱ䆕 DACⱘℷᐌᎹDŽ
ᅲ偠ᵓϞ≵᳝ DACⱘ䕧ܹᠽሩᦦষ᳔ᇣ㋏㒳ᵓϞᠽሩњϔḍ DAC0䗮䘧㒓ˈབᵰ䳔
㽕ᇚ DAC0ⱘֵোᇐߎˈা䳔㽕ᇚ䖭ḍ᭄㒓ߎेৃDŽ
3.8 DA䕀ᤶॳ⧚
20义
3.3.2 A/Dㅔҟ
ADuC812ᦤկњϔ㒘ᖿ䗳 8䗮䘧 1ˈ2ԡⱘ AD䕀ᤶഫDŽ䖭 8Ͼ AD䕀ᤶ䗮䘧Ϣ IOষ
P1⫼DŽAD䕀ᤶഫ䗮䖛 3Ͼ⡍⅞ࡳ㛑ᆘᄬ఼ㅵ⧚DŽҪӀߚ߿ᰃ ADCCON1 AˈDCCON2ˈ
ADCCON3DŽ݊ Ё ADCCON1Ϣ ADCCON2ᰃ AD䕀ᤶࠊ఼ AˈDCCON3ᰃ AD䕀ᤶ⢊ᗕ
ᆘᄬ఼DŽ
AD 䕀ᤶⱘ䕧ܹ⬉य़㣗ೈЎ 0V̚Vrefˈ݊Ё Vref Ўݙ䚼খ㗗⬉य़ 2.5VDŽгৃҹ䞛⫼
䚼⬉䏃䇗ᭈࠄ㣗ೈЎ 0V̚AVddVDŽЎњࡴᖿ AD䕀ᤶ䗳ᑺ AˈDCഫৃҹᎹ䖲㓁ᓣϟˈ
䖭⾡ᓣϟˈAD䕀ᤶᅠ៤ৢˈ᭄䗮䖛 DMAᡔᴃ˄ݙᄬⳈ䇏ˈेϡ䗮䖛໘⧚఼ህৃҹ
䆓䯂ݙᄬⱘᡔᴃ˅ᇚ䕀ᤶ᭄ᄬټࠄݙᄬЁDŽ
ADCⱘ䕀ᤶ㊒ᑺЎ 12ԡ ˈℸᔧ䕀ᤶ㣗ೈЎ 0V̚AVddV 䕀ˈᤶ㊒ᑺৃ䖒ࠄ AVdd/4096ˈ
ᔧ AVddЎ 5Vᯊˈ䕀ᤶ㊒ᑺЎ 1.22mVDŽ䕀ᤶߑ᭄བ 4.9᠔⼎DŽ
ADCⱘ䕀ᤶ㒧ᵰᇚֱᄬ ADCDATAL ADCDATAHЁˈ݊Ё ADCDATALֱᄬњ䕀
ᤶ᭄ⱘԢ 8ԡˈADCDATAHⱘԢಯԡֱᄬњ䕀ᤶ㒧ᵰⱘ催 4ԡⱘ㒧ᵰDŽADCDATAHⱘ
催ಯԡֱᄬњᔧࠡ䕀ᤶⱘ䗮䘧োDŽ
ᅲ偠ᵓϞⱘ⬉ԡ఼ৃҹ䇗㡖ϔϾ 0Vˉ5Vⱘ⬉य़䗕ܹ DAC0ッষDŽDAC1ッষৃҹ䗮䖛
㪱㡆ᠽሩᦦᑻܹ乱ⱘᕙ⌟⬉य़ֵোDŽ
Ўњ㡖ⳕ䕀ᤶᑣⱘᓔᬃˈAD䕀ᤶ᳝Ёᮁ᳡ࡵᑣˈ䆺㾕Ёᮁゴ 3.2.1DŽ
3.9 AD䕀ᤶߑ᭄
3.3.3 A/DϢ D/A՟
AD/DAᅲ偠˖ᴀ⼎՟Џ㽕ᄺд ADϢ DAᑣⱘ㓪ݭᮍ⊩ˈৠᯊ᳝ AD䕀ᤶЁᮁ㓪ݭ
ᮍ⊩DŽ⼎՟䞛⫼ᑣ㓪ݭϔϾϝ㾦⊶Ң DAC0 ষ䕧ߎˈ䗮䖛䚼⹀ӊ䖲ˈᇚ DAC0 ষ䕧
21义
ߎ䗕ܹࠄ AD1ষˈᑣᇚ AD1ষ䕀ᤶᕫࠄⱘ᭄ᅲᯊᰒ⼎᭄ⷕㅵϞDŽ
ᑣߚᵤ˖Џᑣ DAষݭܜ䗦ৢ䗦ޣᑊᕾ⦃ᕔⱘϝ㾦⊶⬉य़DŽ߽⫼ AD䕀ᤶЁ
ᮁᇚ⬉य़䕀ᤶᑊټᄬDŽ߽⫼䅵ᯊ఼Ёᮁˈᠿᦣᰒ⼎᳔㒜㒧ᵰDŽϟ䴶ᰃ՟ᑣ˖
#include //ℸ༈᭛ӊ⫼Ѣᇚ᠔᳝ⱘッষব䞣Ⳍᑨⱘᆘᄬ఼݇㘨
//ܼሔব䞣⬇䇋ˈЎᕾ⦃⚍҂ⱘࠊব䞣
unsigned char dataH,dataL; //ټᄬ䕀ᤶ㒧ᵰˈߚ߿䇏প ADCDATAHˈADCDATAL
unsigned char triangleH,triangleL; //DA䕧ߎ䞣
unsigned int res; //ᄬټ 12ԡⱘ䕀ᤶ㒧ᵰ
unsigned char who; //ᰒ⼎ব䞣ˈᣛ⼎ᔧࠡᰒ⼎ⱘ᭄ⷕㅵ
bit flag; //ࡴޣব䞣
unsigned char temp;
void delay(int time)//ᓊᯊᄤᑣ
{
int i=0;
for(i=0;i