- PWM (துடிப்பு அகல பண்பேற்றம்)
- ARM7-LPC2148 இல் PWM பின்ஸ்
- ARM7-LPC2148 இல் PWM பதிவுகள்
- கூறுகள் தேவை
- சுற்று வரைபடம் மற்றும் இணைப்புகள்
- PWM க்கான ARM7-LPC2148 ஐ நிரலாக்குகிறது
- PWM & ADC க்கான LPC2148 நிரலாக்கத்தில் ஈடுபட்டுள்ள படிகள்
மைக்ரோகண்ட்ரோலர்கள் அனலாக் சென்சார்களிடமிருந்து அனலாக் உள்ளீட்டை எடுத்து, அந்த சமிக்ஞைகளை செயலாக்க ADC (அனலாக் டு டிஜிட்டல் மாற்றி) ஐப் பயன்படுத்துவதை நாம் அறிவோம். சர்வோ மோட்டார், டிசி மோட்டார் போன்ற அனலாக் இயக்கப்படும் சாதனங்களைக் கட்டுப்படுத்த மைக்ரோகண்ட்ரோலர் ஒரு அனலாக் சிக்னலை உருவாக்க விரும்பினால் என்ன செய்வது? மைக்ரோகண்ட்ரோலர்கள் 1 வி, 5 வி போன்ற வெளியீட்டு மின்னழுத்தத்தை உருவாக்கவில்லை, அதற்கு பதிலாக அவர்கள் அனலாக் சாதனங்களை இயக்க PWM எனப்படும் நுட்பத்தைப் பயன்படுத்துகின்றனர். PWM இன் எடுத்துக்காட்டு எங்கள் மடிக்கணினியின் குளிரூட்டும் விசிறி (டிசி மோட்டார்) ஆகும், இது வெப்பநிலைக்கு ஏற்ப வேகத்தைக் கட்டுப்படுத்த வேண்டும், மேலும் இது மதர்போர்டுகளில் பல்ஸ் அகல மாடுலேஷன் (பிடபிள்யூஎம்) நுட்பத்தைப் பயன்படுத்துவதன் மூலம் செயல்படுத்தப்படுகிறது.
இந்த டுடோரியலில் ARM7-LPC2148 மைக்ரோகண்ட்ரோலரில் PWM ஐப் பயன்படுத்தி எல்.ஈ.டி பிரகாசத்தை கட்டுப்படுத்துவோம்.
PWM (துடிப்பு அகல பண்பேற்றம்)
மோட்டரின் வேகத்தைக் கட்டுப்படுத்துதல், ஒரு தலைமையின் பிரகாசம் போன்ற டிஜிட்டல் மதிப்பைப் பயன்படுத்தி அனலாக் சாதனங்களைக் கட்டுப்படுத்த PWM ஒரு சிறந்த வழியாகும். PWM தூய அனலாக் வெளியீட்டை வழங்கவில்லை என்றாலும், ஆனால் இது அனலாக் சாதனங்களைக் கட்டுப்படுத்த ஒழுக்கமான அனலாக் பருப்புகளை உருவாக்குகிறது. இதன் விளைவாக வரும் அலையின் சராசரி மதிப்பில் மாறுபாட்டைப் பெறுவதற்காக PWM உண்மையில் ஒரு செவ்வக துடிப்பு அலையின் அகலத்தை மாற்றியமைக்கிறது.
PWM இன் கடமை சுழற்சி
PWM சமிக்ஞை HIGH (சரியான நேரத்தில்) இருக்கும் நேரத்தின் சதவீதம் கடமை சுழற்சி என அழைக்கப்படுகிறது. சமிக்ஞை எப்போதும் இயக்கத்தில் இருந்தால் அது 100% கடமை சுழற்சியில் இருக்கும், அது எப்போதும் முடக்கப்பட்டிருந்தால் அது 0% கடமை சுழற்சி ஆகும்.
கடமை சுழற்சி = நேரத்தை இயக்கவும் / (நேரத்தை இயக்கவும் + நேரத்தை அணைக்கவும்)

ARM7-LPC2148 இல் PWM பின்ஸ்
கீழேயுள்ள படம் ARM7-LPC2148 இன் PWM வெளியீட்டு ஊசிகளைக் குறிக்கிறது. PWM க்கு மொத்தம் ஆறு ஊசிகளும் உள்ளன.

|
PWM சேனல் |
LPC2148 போர்ட் பின்ஸ் |
|
பி.டபிள்யூ.எம் 1 |
பி 0.0 |
|
பி.டபிள்யூ.எம் 2 |
பி.0.7 |
|
பி.டபிள்யூ.எம் 3 |
பி.0.1 |
|
PWM4 |
பி.0.8 |
|
PWM5 |
பி.0.21 |
|
பி.டபிள்யூ.எம் 6 |
பி.0.9 |
ARM7-LPC2148 இல் PWM பதிவுகள்
எங்கள் திட்டத்தில் சேருவதற்கு முன்பு LPC2148 இல் உள்ள PWM பதிவேடுகளைப் பற்றி நாம் தெரிந்து கொள்ள வேண்டும்.
PWM க்காக LPC2148 இல் பயன்படுத்தப்படும் பதிவேடுகளின் பட்டியல் இங்கே
1. PWMPR: PWM Prescale Register
பயன்படுத்தவும்: இது 32 பிட் பதிவு. இது எத்தனை முறை (மைனஸ் 1) பி.டபிள்யூ.எம் டைமர் கவுண்டரை அதிகரிப்பதற்கு முன் பி.சி.எல்.கே சுழற்சி செய்ய வேண்டும் (இது உண்மையில் ப்ரீஸ்கேல் கவுண்டரின் அதிகபட்ச மதிப்பைக் கொண்டுள்ளது).
2. PWMPC: PWM Prescaler Counter
பயன்படுத்தவும்: இது 32 பிட் பதிவு . இது அதிகரிக்கும் எதிர் மதிப்பைக் கொண்டுள்ளது. இந்த மதிப்பு PR மதிப்பு பிளஸ் 1 க்கு சமமாக இருக்கும்போது, PWM டைமர் கவுண்டர் (TC) அதிகரிக்கப்படுகிறது.
3. PWMTCR: PWM டைமர் கட்டுப்பாட்டு பதிவு
பயன்படுத்தவும்: இதில் கவுண்டர் இயக்கு, எதிர் மீட்டமைப்பு மற்றும் PWM கட்டுப்பாட்டு பிட்களை இயக்கு. இது 8-பிட் பதிவு.
|
7: 4 |
3 |
2 |
1 |
0 |
|
மீட்டெடுக்கப்பட்டது |
PWM இயக்கப்பட்டது |
மீட்டெடுக்கப்பட்டது |
COUNTER RESET |
கவுண்டர் இயக்கப்பட்டது |
- PWM இயக்கு: (பிட் -3)
0- PWM முடக்கப்பட்டது
1- PWM இயக்கப்பட்டது
- எதிர் இயக்கு: (பிட் -0)
0- கவுண்டர்களை முடக்கு
1- கவுண்டரை இயக்கு
- எதிர் மீட்டமைப்பு: (பிட் -1)
0- எதுவும் செய்ய வேண்டாம்.
1- பி.சி.எல்.கே.யின் நேர்மறையான விளிம்பில் PWMTC & PWMPC ஐ மீட்டமைக்கிறது.
4. PWMTC: PWM டைமர் கவுண்டர்
பயன்படுத்தவும்: இது 32 பிட் பதிவு. இது அதிகரிக்கும் PWM டைமரின் தற்போதைய மதிப்பைக் கொண்டுள்ளது. Prescaler Counter (PC) Prescaler Register (PR) மதிப்பு பிளஸ் 1 ஐ அடையும் போது, இந்த கவுண்டர் அதிகரிக்கப்படுகிறது.
5. PWMIR: PWM குறுக்கீடு பதிவு
பயன்பாடு: இது 16-பிட் பதிவு. இது PWM போட்டி சேனல்களுக்கான குறுக்கீடு கொடிகள் 0-6 ஐக் கொண்டுள்ளது. அந்த சேனலுக்கு (எம்ஆர்எக்ஸ் குறுக்கீடு) குறுக்கீடு ஏற்படும் போது குறுக்கீடு கொடி அமைக்கப்படுகிறது, அங்கு எக்ஸ் என்பது சேனல் எண் (0 முதல் 6 வரை).
6. PWMMR0-PWMMR6: PWM போட்டி பதிவு
பயன்படுத்தவும்: இது 32 பிட் பதிவு . உண்மையில் மேட்ச் சேனல் குழு 6 ஒற்றை விளிம்பில் கட்டுப்படுத்தப்பட்ட அல்லது 3 இரட்டை விளிம்பு கட்டுப்படுத்தப்பட்ட PWM வெளியீடுகளை அமைக்க அனுமதிக்கிறது. PWMPCR இல் உங்கள் தேவைகளுக்கு ஏற்ப இந்த PWM வெளியீடுகளை உள்ளமைக்க ஏழு போட்டி சேனல்களை நீங்கள் மாற்றலாம்.
7. PWMMCR: PWM போட்டி கட்டுப்பாட்டு பதிவு
பயன்படுத்தவும்: இது 32 பிட் பதிவு. தேர்ந்தெடுக்கப்பட்ட போட்டி சேனலைக் கட்டுப்படுத்தும் குறுக்கீடு, மீட்டமை மற்றும் நிறுத்து பிட்கள் இதில் உள்ளன. PWM போட்டி பதிவேடுகளுக்கும் PWM டைமர் கவுண்டர்களுக்கும் இடையில் ஒரு போட்டி நிகழ்கிறது.
|
31:21 |
20 |
19 |
18 |
.. |
5 |
4 |
3 |
2 |
1 |
0 |
|
மீட்டெடுக்கப்பட்டது |
PWMMR6S |
PWMMR6R |
PWMMR6I |
.. |
PWMMR1S |
PWMMR1R |
PWMMR11 |
PWMMR0S |
PWMMR0R |
PWMMR01 |
இங்கே x 0 முதல் 6 வரை இருக்கும்
- PWMMRxI (பிட் -0)
இயக்கக்கூடிய அல்லது முடக்கக்கூடிய PWM குறுக்கீடுகள்
0- PWM போட்டி குறுக்கீடுகளை முடக்கு.
1- PWM போட்டி குறுக்கீட்டை இயக்கு.
- PWMMRxR: (பிட் -1)
PWMTC ஐ மீட்டமைக்கவும் - PWMRx உடன் பொருந்தும்போதெல்லாம் டைமர் எதிர் மதிப்பு
0- எதுவும் செய்ய வேண்டாம்.
1- PWMTC ஐ மீட்டமைக்கிறது.
- PWMMRxS: (பிட் 2)
PWMTC போட்டி பதிவு மதிப்பை அடையும் போது PWMTC & PWMPC ஐ நிறுத்துங்கள்
0- PWM நிறுத்த அம்சத்தை முடக்கு.
1- PWM நிறுத்து அம்சத்தை இயக்கவும்.
8. PWMPCR: PWM கட்டுப்பாட்டு பதிவு
பயன்பாடு: இது 16-பிட் பதிவு. இது PWM வெளியீடுகளை 0-6 ஐ இயக்கும் பிட்களைக் கொண்டுள்ளது மற்றும் ஒவ்வொரு வெளியீட்டிற்கும் ஒற்றை விளிம்பு அல்லது இரட்டை விளிம்புக் கட்டுப்பாட்டைத் தேர்ந்தெடுக்கவும்.
|
31:15 |
14: 9 |
8: 7 |
6: 2 |
1: 0 |
|
பயன்படுத்தப்படாதது |
PWMENA6-PWMENA1 |
பயன்படுத்தப்படாதது |
PWMSEL6-PWMSEL2 |
பயன்படுத்தப்படாதது |
- PWMSELx (x: 2 முதல் 6 வரை)
- PWMx க்கான ஒற்றை எட்ஜ் பயன்முறை
- 1- PWMx க்கான இரட்டை எட்ஜ் பயன்முறை.
- PWMENAx (x: 1 முதல் 6 வரை)
- PWMx முடக்கு.
- 1- PWMx இயக்கப்பட்டது.
9. PWMLER: PWM Latch பதிவை இயக்கு
பயன்பாடு: இது 8-பிட் பதிவு. இது ஒவ்வொரு போட்டி சேனலுக்கும் மேட்ச் x லாட்ச் பிட்களைக் கொண்டுள்ளது.
|
31: 7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
பயன்படுத்தப்படாதது |
LEN6 |
LEN5 |
LEN4 |
LEN3 |
LEN2 |
LEN1 |
LEN0 |
LENx (x: 0 முதல் 6 வரை):
0- புதிய போட்டி மதிப்புகளை ஏற்றுவதை முடக்கு
1- டைமர் மீட்டமைக்கப்படும் போது புதிய போட்டி மதிப்புகளை (PWMMRx) PWMMatch பதிவேட்டில் இருந்து ஏற்றவும்.
இப்போது ARM மைக்ரோகண்ட்ரோலரில் துடிப்பு அகல பண்பேற்றத்தை நிரூபிக்க வன்பொருள் அமைப்பை உருவாக்க ஆரம்பிக்கலாம்.
கூறுகள் தேவை
வன்பொருள்
- ARM7-LPC2148 மைக்ரோகண்ட்ரோலர்
- 3.3 வி மின்னழுத்த சீராக்கி ஐ.சி.
- 10 கே பொட்டென்டோமீட்டர்
- எல்.ஈ.டி (எந்த நிறமும்)
- எல்சிடி (16 எக்ஸ் 2) காட்சி தொகுதி
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
மென்பொருள்
- கெயில் uVision5
- ஃபிளாஷ் மேஜிக் கருவி
சுற்று வரைபடம் மற்றும் இணைப்புகள்


LCD & ARM7-LPC2148 க்கு இடையிலான இணைப்புகள்
|
ARM7-LPC2148 |
எல்சிடி (16 எக்ஸ் 2) |
|
பி.0.4 |
ஆர்எஸ் (பதிவு தேர்வு) |
|
பி.0.6 |
மின் (இயக்கு) |
|
பி.0.12 |
டி 4 (தரவு முள் 4) |
|
பி.0.13 |
டி 5 (தரவு முள் 5) |
|
பி.0.14 |
டி 6 (தரவு முள் 6) |
|
பி.0.15 |
டி 7 (தரவு முள் 7) |
|
ஜி.என்.டி. |
வி.எஸ்.எஸ்., ஆர் / டபிள்யூ, கே |
|
+ 5 வி |
வி.டி.டி, ஏ |
LED & ARM7-LPC2148 க்கு இடையேயான இணைப்பு
எல்.ஈ.டி யின் ANODE LPC2148 இன் PWM வெளியீட்டில் (P0.0) இணைக்கப்பட்டுள்ளது, அதே நேரத்தில் LED இன் CATHODE முள் LPC2148 இன் GND முள் உடன் இணைக்கப்பட்டுள்ளது.
ARM7-LPC2148 மற்றும் 3.3V மின்னழுத்த சீராக்கி கொண்ட பொட்டென்டோமீட்டருக்கு இடையேயான இணைப்பு
|
3.3 வி மின்னழுத்த சீராக்கி ஐ.சி. |
முள் செயல்பாடு |
ARM-7 LPC2148 பின் |
|
1. இடது முள் |
- ஜி.என்.டி. |
GND முள் |
|
2.செண்டர் முள் |
ஒழுங்குபடுத்தப்பட்ட + 3.3 வி வெளியீடு |
பொட்டென்டோமீட்டருக்கு உள்ளீடு மற்றும் பொட்டென்டோமீட்டரின் வெளியீட்டை LPC2148 இன் P0.28 க்கு |
|
3. வலது முள் |
5V இலிருந்து + Ve உள்ளீடு |
+ 5 வி |
கவனிக்க வேண்டிய புள்ளிகள்
1. LPC2148 இன் ADC முள் (P0.28) க்கு அனலாக் உள்ளீட்டு மதிப்பை வழங்க 3.3V இன் மின்னழுத்த சீராக்கி இங்கு பயன்படுத்தப்படுகிறது, மேலும் நாங்கள் 5V சக்தியைப் பயன்படுத்துவதால் 3.3V இன் மின்னழுத்த சீராக்கி மூலம் மின்னழுத்தத்தை கட்டுப்படுத்த வேண்டும்.
2. LPC2148 முள் P0.28 க்கு அனலாக் உள்ளீட்டை (ADC) வழங்க (0V முதல் 3.3V) வரை மின்னழுத்தத்தை வேறுபடுத்த ஒரு பொட்டென்டோமீட்டர் பயன்படுத்தப்படுகிறது.
PWM க்கான ARM7-LPC2148 ஐ நிரலாக்குகிறது
ARM7-LPC2148 நிரலுக்கு, எங்களுக்கு கெயில் uVision & Flash Magic கருவி தேவை. மைக்ரோ யூ.எஸ்.பி போர்ட் வழியாக ARM7 ஸ்டிக்கை நிரல் செய்ய யூ.எஸ்.பி கேபிளைப் பயன்படுத்துகிறோம். நாங்கள் கெயிலைப் பயன்படுத்தி குறியீட்டை எழுதி ஒரு ஹெக்ஸ் கோப்பை உருவாக்குகிறோம், பின்னர் ஹெச்எக்ஸ் கோப்பு ஃபிளாஷ் மேஜிக்கைப் பயன்படுத்தி ARM7 ஸ்டிக்கிற்கு ஒளிரும். கெயில் யுவிஷன் மற்றும் ஃப்ளாஷ் மேஜிக் நிறுவுதல் மற்றும் அவற்றை எவ்வாறு பயன்படுத்துவது என்பது பற்றி மேலும் அறிய ARM7 LPC2148 மைக்ரோகண்ட்ரோலருடன் தொடங்குதல் மற்றும் கெயில் யுவிஷனைப் பயன்படுத்தி அதை நிரல் செய்தல்.
இந்த டுடோரியலில் எல்.ஈ.டி பிரகாசத்தை கட்டுப்படுத்த ஏ.டி.சி மற்றும் பி.டபிள்யூ.எம் நுட்பத்தைப் பயன்படுத்துவோம். இங்கே LPC2148 க்கு ADC உள்ளீட்டு முள் P0.28 வழியாக அனலாக் உள்ளீடு (0 முதல் 3.3V வரை) வழங்கப்படுகிறது, பின்னர் இந்த அனலாக் உள்ளீடு டிஜிட்டல் மதிப்பாக (0 முதல் 1023 வரை) மாற்றப்படுகிறது. LPC2148 இன் PWM வெளியீடு 8-பிட் தெளிவுத்திறனை (2 8) மட்டுமே கொண்டிருப்பதால் இந்த மதிப்பு மீண்டும் டிஜிட்டல் மதிப்பாக (0 - 255) மாற்றப்படுகிறது. எல்.ஈ.டி பி.டபிள்யூ.எம் முள் பி 0.0 உடன் இணைக்கப்பட்டுள்ளது மற்றும் எல்.ஈ.டி இன் பிரகாசத்தை பொட்டென்டோமீட்டரைப் பயன்படுத்தி கட்டுப்படுத்தலாம். ARM7-LPC2148 இல் ADC பற்றி மேலும் அறிய இணைப்பைப் பின்தொடரவும்.
PWM & ADC க்கான LPC2148 நிரலாக்கத்தில் ஈடுபட்டுள்ள படிகள்
படி 1: - முதல் விஷயம் என்னவென்றால் , பி.எல்.எல் ஐ கடிகார தலைமுறைக்கு கட்டமைக்க வேண்டும், ஏனெனில் இது கணினி கடிகாரம் மற்றும் எல்.பி.சி 2148 இன் புற கடிகாரத்தை புரோகிராமர்கள் தேவைக்கேற்ப அமைக்கிறது. LPC2148 க்கான அதிகபட்ச கடிகார அதிர்வெண் 60Mhz ஆகும். பி.எல்.எல் கடிகார தலைமுறையை உள்ளமைக்க பின்வரும் கோடுகள் பயன்படுத்தப்படுகின்றன.
void initilizePLL (வெற்றிடத்தை) // கடிகார தலைமுறைக்கு PLL ஐப் பயன்படுத்துவதற்கான செயல்பாடு { PLL0CON = 0x01; PLL0CFG = 0x24; PLL0FEED = 0xAA; PLL0FEED = 0x55; போது (! (PLL0STAT & 0x00000400)); PLL0CON = 0x03; PLL0FEED = 0xAA; PLL0FEED = 0x55; VPBDIV = 0x01; }
படி 2: - அடுத்த விஷயம், பின்செல் பதிவைப் பயன்படுத்தி LPC2148 இன் PWM ஊசிகளையும் PWM செயல்பாட்டையும் தேர்ந்தெடுப்பது. LPC2148 இன் PWM வெளியீட்டிற்கு P0.0 ஐப் பயன்படுத்துவதால் PINSEL0 ஐப் பயன்படுத்துகிறோம்.
PINSEL0 = 0x00000002; // PWM வெளியீட்டிற்கு முள் P0.0 ஐ அமைத்தல்
படி 3: - அடுத்து நாம் PWMTCR (டைமர் கண்ட்ரோல் ரெஜிஸ்டர்) ஐப் பயன்படுத்தி டைமர்களை மீட்டமைக்க வேண்டும்.
PWMTCR = (1 << 1); // PWM டைமர் கட்டுப்பாட்டு பதிவேட்டை எதிர் மீட்டமைப்பாக அமைத்தல்
பின்னர், PWM இன் தீர்மானத்தை தீர்மானிக்கும் prescale மதிப்பை அமைக்கவும். நான் அதை பூஜ்ஜியமாக அமைத்து வருகிறேன்
PWMPR = 0X00; // PWM prescale மதிப்பை அமைத்தல்
படி 4: - அடுத்து PWMMCR ஐ (PWM மேட்ச் கண்ட்ரோல் ரெஜிஸ்டர்) அமைக்க வேண்டும், ஏனெனில் இது மீட்டமைத்தல், PWMMR0 க்கான குறுக்கீடுகள் போன்ற செயல்பாடுகளை அமைக்கிறது.
PWMMCR = (1 << 0) - (1 << 1); // PWM போட்டி கட்டுப்பாட்டு பதிவேட்டை அமைத்தல்
படி 5: - PWM சேனலின் அதிகபட்ச காலம் PWMMR ஐப் பயன்படுத்தி அமைக்கப்படுகிறது.
PWMMR0 = PWMvalue; // PWM மதிப்பைக் கொடுப்பது அதிகபட்ச மதிப்பு
எங்கள் விஷயத்தில் அதிகபட்ச மதிப்பு 255 (அதிகபட்ச பிரகாசத்திற்கு)
படி 6: - அடுத்து PWMLER ஐப் பயன்படுத்தி தொடர்புடைய மேட்ச் ரெஜிஸ்டர்களுக்கு லாட்ச் இயக்கு என்பதை அமைக்க வேண்டும்
PWMLER = (1 << 0); // எனல்பே பிடபிள்யூஎம் தாழ்ப்பாளை
(நாங்கள் PWMMR0 ஐப் பயன்படுத்துகிறோம்) எனவே PWMLER இல் 1 ஐ அமைப்பதன் மூலம் தொடர்புடைய பிட்டை இயக்கவும்
படி 7: - PWM வெளியீட்டை முள் இயக்க, PWM டைமர் கவுண்டர்கள் மற்றும் PWM முறைகளை இயக்க PWMTCR ஐப் பயன்படுத்த வேண்டும்.
PWMTCR = (1 << 0) - (1 << 3); // PWM மற்றும் PWM கவுண்டரை இயக்குகிறது
படி 8: - இப்போது ADC முள் P0.28 இலிருந்து PWM இன் கடமை சுழற்சியை அமைப்பதற்கான பொட்டென்டோமீட்டர் மதிப்புகளைப் பெற வேண்டும். ஆகவே, பொட்டென்டோமீட்டர்கள் அனலாக் உள்ளீட்டை (0 முதல் 3.3 வி) ADC மதிப்புகளுக்கு (0 முதல் 1023 வரை) மாற்ற LPC2148 இல் ADC தொகுதியைப் பயன்படுத்துகிறோம்.
இங்கே நாம் உள்ளன மதிப்புகள் LPC2148 இன் பிடபிள்யுஎம் 4 அதை வகுப்பதன் மூலம் 0-255 செய்ய 0-1023 இருந்து மாற்றும் 8-பிட் தீர்மானம் (2 உள்ளது 8).
படி 9: - பொறுத்தவரை LPC2148 உள்ள ஏடிசி முள் P0.28 தேர்வு, நாம் பயன்படுத்த
பின்செல் 1 = 0x01000000; // P0.28 ஐ ADC INPUT AD0CR = (((14) << 8) - (1 << 21%) என அமைத்தல் ; // A / D மாற்றத்திற்கான கடிகாரம் மற்றும் PDN ஐ அமைத்தல்
பின்வரும் வரிகள் அனலாக் உள்ளீட்டை (0 முதல் 3.3 வி) கைப்பற்றி டிஜிட்டல் மதிப்பாக (0 முதல் 1023 வரை) மாற்றுகின்றன. பின்னர் இந்த டிஜிட்டல் மதிப்புகள் 4 ஆல் வகுக்கப்பட்டு அவற்றை (0 முதல் 255 வரை) மாற்றி, இறுதியாக எல்.ஈ.டி இணைக்கப்பட்டுள்ள எல்பிசி 2148 இன் பி 0.0 முள் பி.டபிள்யூ.எம் வெளியீடாக வழங்கப்படுகிறது.
AD0CR - = (1 << 1); // ADC பதிவு தாமத நேரத்தில் AD0.1 சேனலைத் தேர்ந்தெடுக்கவும் (10); AD0CR - = (1 << 24); // ( / AD0DR1 & (1 << 31)) == 0) A / D மாற்றத்தைத் தொடங்கவும் ; // ADC தரவு பதிவேட்டில் DONE பிட்டை சரிபார்க்கவும் adcvalue = (AD0DR1 >> 6) & 0x3ff; // ADC தரவு பதிவேட்டில் இருந்து RESULT ஐப் பெறுங்கள் கடமை சுழற்சி = adcvalue / 4; (0 முதல் 255 வரை) கடமை சுழற்சி மதிப்புகளைப் பெற // சூத்திரம் PWMMR1 = கடமை சுழற்சி; // கடமை சுழற்சி மதிப்பை PWM போட்டி பதிவேட்டில் அமைக்கவும் PWMLER - = (1 << 1); // கடமை சுழற்சி மதிப்புடன் PWM வெளியீட்டை இயக்கவும்
படி 10: - அடுத்து அந்த மதிப்புகளை எல்சிடி (16 எக்ஸ் 2) காட்சி தொகுதியில் காண்பிப்போம். எனவே எல்சிடி டிஸ்ப்ளே தொகுதியைத் தொடங்க பின்வரும் வரிகளைச் சேர்க்கிறோம்
LCD_INITILIZE (வெற்றிடத்தை) வெற்றிடிக்கவும் // LCD ஐ தயார் செய்வதற்கான செயல்பாடு { IO0DIR = 0x0000FFF0; // PUT P0.12, P0.13, P0.14, P0.15, P0.4, P0.6 ஐ OUTPUT தாமத நேரமாக (20) அமைக்கிறது; LCD_SEND (0x02); // எல்சிடியை 4-பிட் செயல்பாட்டு முறையில் தொடங்கவும் LCD_SEND (0x28); // 2 கோடுகள் (16X2) LCD_SEND (0x0C); // கர்சரில் LCD_SEND (0x06) ஐக் காண்பி; // ஆட்டோ அதிகரிப்பு கர்சர் LCD_SEND (0x01); // தெளிவான LCD_SEND (0x80) ஐக் காண்பி ; // முதல் வரி முதல் நிலை }
நாங்கள் தொடர்புடையதாக அமைந்து LPC2148 4-பிட் முறையில் எல்சிடி நாங்கள் சிறுக சிறுக கொரித்து தின் (அப்பர் மெல்லவும் & லோவர் மெல்லவும்) மூலம் சிறுக சிறுக கொரித்து தின் காண்பிக்கப்பட வேண்டுமா மதிப்புகள் அனுப்ப வேண்டும். எனவே பின்வரும் வரிகள் பயன்படுத்தப்படுகின்றன.
void LCD_DISPLAY (char * msg) // அனுப்பிய எழுத்துக்களை ஒவ்வொன்றாக அச்சிடுவதற்கான செயல்பாடு { uint8_t i = 0; (msg! = 0) { IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((msg & 0xF0) << 8%); // மேல் நிப்பிள் IO0SET = 0x00000050 ஐ அனுப்புகிறது ; // தரவை அச்சிட RS HIGH & ENABLE HIGH IO0CLR = 0x00000020; // RW LOW எழுதும் முறை தாமத நேரம் (2); IO0CLR = 0x00000040; // EN = 0, RS மற்றும் RW மாறாமல் (அதாவது RS = 1, RW = 0) தாமத நேரம் (5); IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((msg & 0x0F) << 12%); // லோவர் நிப்பிள் IO0SET = 0x00000050 ஐ அனுப்புகிறது ; // RS & EN HIGH IO0CLR = 0x00000020; தாமத நேரம் (2); IO0CLR = 0x00000040; தாமத நேரம் (5); i ++; } }
அந்த ADC & PWM மதிப்புகளைக் காண்பிக்க நாம் int main () செயல்பாட்டில் பின்வரும் வரிகளைப் பயன்படுத்துகிறோம்.
LCD_SEND (0x80); sprintf (displayadc, "adcvalue =% f", adcvalue); LCD_DISPLAY (displayadc); // ADC மதிப்பைக் காண்பி (0 முதல் 1023 வரை) LCD_SEND (0xC0); sprintf (ledoutput, "PWM OP =%. 2f", பிரகாசம்); LCD_DISPLAY (ledoutput); // (0 முதல் 255 வரை) கடமை சுழற்சி மதிப்புகளைக் காண்பி

டுடோரியலின் முழுமையான குறியீடு மற்றும் வீடியோ விளக்கம் கீழே கொடுக்கப்பட்டுள்ளன.
