அலுவலகங்கள், வணிக வளாகங்கள் மற்றும் பல இடங்களில் அங்கீகார அட்டை உள்ளவர் மட்டுமே அறைக்குள் நுழைய அனுமதிக்கப்படுவது எங்களுக்குத் தெரியும். இந்த அமைப்புகள் RFID தொடர்பு முறையைப் பயன்படுத்துகின்றன. தயாரிப்புகள் RFID சில்லுடன் குறிக்கப்பட்டுள்ளதால் திருட்டு நிறுத்த ஷாப்பிங் மால்களில் RFID பயன்படுத்தப்படுகிறது மற்றும் ஒரு நபர் RFID சில்லுடன் கட்டிடத்தை விட்டு வெளியேறும்போது ஒரு அலாரம் தானாக எழுப்பப்படுகிறது. RFID குறிச்சொல் மணலின் ஒரு பகுதியாக சிறியதாக வடிவமைக்கப்பட்டுள்ளது. RFID அங்கீகார அமைப்புகள் வடிவமைக்க எளிதானது மற்றும் செலவில் மலிவானவை. சில பள்ளிகள் மற்றும் கல்லூரிகள் இப்போதெல்லாம் RFID அடிப்படையிலான வருகை முறைகளைப் பயன்படுத்துகின்றன.
இந்த திட்டத்தில் அங்கீகரிக்கப்பட்ட வாக்குகளை மட்டுமே கணக்கிடும் வாக்களிக்கும் இயந்திரத்தை வடிவமைக்க உள்ளோம். RFID (ரேடியோ அதிர்வெண் அடையாளம் காணல்) குறிச்சொற்களைப் பயன்படுத்தி இது செய்யப்படுகிறது. அங்கீகரிக்கப்பட்ட RFID டேக் வைத்திருப்பவர்களுக்கு மட்டுமே வாக்களிக்க அனுமதிப்பதற்காக ATMEGA க்காக ஒரு நிரலை இங்கே எழுத உள்ளோம். (இந்த எளிய வாக்களிப்பு இயந்திர திட்டத்தையும் சரிபார்க்கவும்)
கூறுகள் தேவை
வன்பொருள்: ATMEGA32, மின்சாரம் (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), 100uF மின்தேக்கி (மின்சாரம் முழுவதும் இணைக்கப்பட்டுள்ளது), பொத்தான் (ஐந்து துண்டுகள்), 10KΩ மின்தடை (ஐந்து துண்டுகள்), 100nF மின்தேக்கி (ஐந்து துண்டுகள்), LED (இரண்டு துண்டுகள்), EM-18 (RFID ரீடர் தொகுதி).
மென்பொருள்: அட்மல் ஸ்டுடியோ 6.1, புரோகிஸ் அல்லது ஃபிளாஷ் மேஜிக்.
சுற்று வரைபடம் மற்றும் விளக்கம்

சுற்றுகளில் ATMEGA32 இன் PORTA எல்சிடியின் தரவு துறைமுகத்துடன் இணைக்கப்பட்டுள்ளது. PORTC ஐ ஒரு சாதாரண தகவல்தொடர்பு துறைமுகமாக பயன்படுத்த விரும்பினால், உருகி பைட்டுகளை மாற்றுவதன் மூலம் PORTC இல் உள்ள JTAG தகவல்தொடர்புகளை ATMEGA க்கு முடக்க நினைவில் கொள்ள வேண்டும். 16x2 எல்சிடியில் கருப்பு விளக்கு இருந்தால் ஒட்டுமொத்தமாக 16 ஊசிகளும் உள்ளன, பின் ஒளி இல்லாவிட்டால் 14 ஊசிகளும் இருக்கும். ஒருவர் பின் ஒளி ஊசிகளை ஆற்றலாம் அல்லது விட்டுவிடலாம். இப்போது 14 ஊசிகளில் 8 தரவு ஊசிகளும் (7-14 அல்லது டி 0-டி 7), 2 மின்சாரம் வழங்கல் ஊசிகளும் (1 & 2 அல்லது விஎஸ்எஸ் & விடிடி அல்லது ஜிஎன்டி & + 5 வி), மாறுபட்ட கட்டுப்பாட்டுக்கு 3 வது முள் (எழுத்துக்கள் எவ்வளவு அடர்த்தியாக இருக்க வேண்டும் என்பதை விஇஇ கட்டுப்படுத்துகிறது காட்டப்பட்டுள்ளது), 3 கட்டுப்பாட்டு ஊசிகளும் (RS & RW & E)
சுற்றில், நான் இரண்டு கட்டுப்பாட்டு ஊசிகளை மட்டுமே எடுத்துள்ளேன் என்பதை நீங்கள் அவதானிக்கலாம், இது சிறந்த புரிதலின் நெகிழ்வுத்தன்மையைக் கொடுக்கும், கான்ட்ராஸ்ட் பிட் மற்றும் READ / WRITE ஆகியவை பெரும்பாலும் பயன்படுத்தப்படுவதில்லை, எனவே அவை தரையில் சுருக்கப்படலாம். இது எல்சிடியை மிக உயர்ந்த மாறுபாடு மற்றும் வாசிப்பு பயன்முறையில் வைக்கிறது. எழுத்துக்கள் மற்றும் தரவை அதற்கேற்ப அனுப்ப நாம் இயக்க மற்றும் RS ஊசிகளைக் கட்டுப்படுத்த வேண்டும்.
எல்சிடிக்கு செய்யப்படும் இணைப்புகள் கீழே கொடுக்கப்பட்டுள்ளன:
தரையில் PIN1 அல்லது VSS
PIN2 அல்லது VDD அல்லது VCC to + 5v power
PIN3 அல்லது VEE தரையில் (ஒரு தொடக்கநிலைக்கு அதிகபட்ச மாறுபாட்டை வழங்குகிறது)
UC இன் PD6 க்கு PIN4 அல்லது RS (பதிவு தேர்வு)
PIN5 அல்லது RW (படிக்க / எழுது) தரையில் (எல்சிடியை வாசிப்பு பயன்முறையில் வைக்கிறது பயனருக்கான தகவல்தொடர்புகளை எளிதாக்குகிறது)
UC இன் PD5 க்கு PIN6 அல்லது E (இயக்கு)
UC இன் PIN7 அல்லது D0 முதல் PA0 வரை
UC இன் PIN8 அல்லது D1 முதல் PA1 வரை
UC இன் PIN9 அல்லது D2 முதல் PA2 வரை
UC இன் PIN10 அல்லது D3 முதல் PA3 வரை
UC இன் PIN11 அல்லது D4 முதல் PA4 வரை
UC இன் PIN12 அல்லது D5 முதல் PA5 வரை
UC இன் PIN13 அல்லது D6 முதல் PA6 வரை
UC இன் PIN14 அல்லது D7 முதல் PA7 வரை
சுற்றில், நாங்கள் 8 பிட் தகவல்தொடர்புகளை (D0-D7) பயன்படுத்தியிருப்பதைக் காணலாம். இருப்பினும் இது ஒரு கட்டாயமல்ல, நாங்கள் 4 பிட் தகவல்தொடர்பு (டி 4-டி 7) ஐப் பயன்படுத்தலாம், ஆனால் 4 பிட் தகவல்தொடர்பு நிரல் சற்று சிக்கலானதாக மாறும், எனவே நான் 8 பிட் தகவல்தொடர்புக்கு முன்னுரிமை அளித்தேன்.
எனவே மேலே உள்ள அட்டவணையை கவனிப்பதில் இருந்து எல்.சி.டி யின் 10 ஊசிகளை கட்டுப்படுத்தியுடன் இணைக்கிறோம், இதில் 8 ஊசிகளும் தரவு ஊசிகளும் கட்டுப்பாட்டுக்கு 2 ஊசிகளும் ஆகும்.
முன்னேறுவதற்கு முன், தொடர் தொடர்பு பற்றி நாம் புரிந்து கொள்ள வேண்டும். இங்கே RFID தொகுதி சீரியலில் உள்ள கட்டுப்பாட்டுக்கு தரவை அனுப்புகிறது. இது மற்ற தகவல்தொடர்பு முறைகளைக் கொண்டுள்ளது, ஆனால் எளிதான தகவல்தொடர்புக்கு நாங்கள் RS232 ஐத் தேர்வு செய்கிறோம். RS232 முள் தொகுதி ATMEGA இன் RXD முள் உடன் இணைக்கப்பட்டுள்ளது.
RFID தொகுதி அனுப்பிய தரவு பின்வருமாறு:

இப்போது RFID தொகுதி இடைமுகத்திற்கு, பின்வரும் அம்சங்கள் தேவை:
1. கட்டுப்படுத்தியின் RXD முள் (தரவு பெறும் அம்சம்) இயக்கப்பட வேண்டும்.
2. தகவல்தொடர்பு சீரியல் என்பதால், தரவு பை பெறும்போதெல்லாம் நாம் தெரிந்து கொள்ள வேண்டும், இதன் மூலம் முழுமையான பைட் பெறும் வரை நிரலை நிறுத்தலாம். தரவு முழுமையான குறுக்கீட்டைப் பெறுவதன் மூலம் இது செய்யப்படுகிறது.
3. RFID ஆனது 8bit பயன்முறையில் கட்டுப்படுத்திக்கு தரவை அனுப்புகிறது. எனவே ஒரு நேரத்தில் இரண்டு எழுத்துக்கள் கட்டுப்படுத்திக்கு அனுப்பப்படும். இது எண்ணிக்கை 3 இன் தொகுதியில் காட்டப்பட்டுள்ளது
4. எண்ணிக்கை 3 இலிருந்து, சமநிலை பிட்கள் எதுவும் இல்லை, தொகுதி அனுப்பிய தரவுகளில் ஒரு நிறுத்த பிட்.
மேலே உள்ள அம்சங்கள் கட்டுப்பாட்டு பதிவேட்டில் அமைக்கப்பட்டுள்ளன; நாங்கள் அவற்றைச் சுருக்கமாக விவாதிக்கப் போகிறோம்,


RED (RXEN): இந்த பிட் பெறும் தரவு அம்சத்தைக் குறிக்கிறது, இந்த பிட் தொகுதியிலிருந்து தரவை கட்டுப்படுத்தியால் பெற வேண்டும், இது கட்டுப்படுத்தியின் RXD முள் செயல்படுத்துகிறது.
BROWN (RXCIE): வெற்றிகரமான தரவு வரவேற்புக்குப் பிறகு குறுக்கீடு பெற இந்த பிட் அமைக்கப்பட வேண்டும். இந்த பிட்டை இயக்குவதன் மூலம், 8 பிட் தரவு கிடைத்த உடனேயே தெரிந்து கொள்கிறோம்.
PINK (URSEL): UCSRC இல் மற்ற பிட்களை இயக்குவதற்கு முன், இந்த பிட் அமைக்கப்பட வேண்டும், UCSRC இல் தேவையான பிற பிட்களை அமைத்த பிறகு; URSEL முடக்கப்பட வேண்டும் அல்லது பூஜ்ஜியத்திற்கு வைக்கப்பட வேண்டும்.
YELLOW (UCSZ0, UCSZ1, UCSZ2): இந்த மூன்று பிட்கள் ஒரே நேரத்தில் நாம் பெறும் அல்லது அனுப்பும் தரவு பிட்களின் எண்ணிக்கையைத் தேர்ந்தெடுக்கப் பயன்படுகின்றன.

RFID தொகுதி அனுப்பிய தரவு 8bit தரவு வகை (FIGURE3) என்பதால், நாம் UCSZ0, UCSZ1 ஐ ஒன்றாகவும், UCSZ2 ஐ பூஜ்ஜியமாகவும் அமைக்க வேண்டும்.
ஆரஞ்சு (UMSEL): கணினி ஒத்திசைவில் தொடர்பு கொள்கிறதா (இரண்டும் வெவ்வேறு கடிகாரத்தைப் பயன்படுத்துகின்றன) அல்லது ஒத்திசைவாக (இரண்டும் ஒரே கடிகாரத்தைப் பயன்படுத்துகின்றன),

தொகுதி மற்றும் கட்டுப்படுத்தி வெவ்வேறு கடிகாரத்தைப் பயன்படுத்துவதால், இந்த பிட் பூஜ்ஜியமாக அமைக்கப்பட வேண்டும் அல்லது இயல்பாக பூஜ்ஜியமாக அமைக்கப்பட்டிருப்பதால் தனியாக இருக்க வேண்டும்.
பசுமை (UPM1, UPM0): இந்த இரண்டு பிட்களும் நாங்கள் தகவல்தொடர்புகளில் பயன்படுத்தும் பிட் சமத்துவத்தின் அடிப்படையில் சரிசெய்யப்படுகின்றன.

RFID தொகுதி எந்த சமநிலையுமின்றி (FIGURE3) தரவை அனுப்புவதால், நாங்கள் UPM1, UPM0 இரண்டையும் பூஜ்ஜியமாக அமைத்துள்ளோம் அல்லது எந்தவொரு பதிவுகளிலும் உள்ள அனைத்து பிட்களும் இயல்பாக பூஜ்ஜியமாக அமைக்கப்பட்டிருப்பதால் அவை தனியாக விடப்படலாம்.
நீலம் (யு.எஸ்.பி.எஸ்): தகவல்தொடர்பு போது நாம் பயன்படுத்தும் ஸ்டாப் பிட்களின் எண்ணிக்கையைத் தேர்ந்தெடுக்க இந்த பிட் பயன்படுத்தப்படுகிறது.

RFID தொகுதி ஒரு ஸ்டாப் பிட் (படம் 3) உடன் தரவை அனுப்புவதால், நாங்கள் யு.எஸ்.பி.எஸ் பிட்டை தனியாக விட்டுவிட வேண்டும்.
இப்போது கடைசியாக நாம் பாட் வீதத்தை அமைக்க வேண்டும், படம் 3 இலிருந்து RFID தொகுதி 9600 பிபிஎஸ் (வினாடிக்கு பிட்கள்) என்ற பாட் வீதத்துடன் கட்டுப்பாட்டுக்கு தரவை அனுப்புகிறது என்பது தெளிவாகிறது.
பொருத்தமான UBRRH ஐத் தேர்ந்தெடுப்பதன் மூலம் பாட் வீதம் கட்டுப்படுத்தியில் அமைக்கப்படுகிறது,

UBRRH மதிப்பு குறுக்கு குறிக்கும் பாட் வீதம் மற்றும் CPU படிக அதிர்வெண் மூலம் தேர்ந்தெடுக்கப்படுகிறது,
எனவே குறுக்கு குறிப்பு மூலம் யுபிஆர்ஆர் மதிப்பு '6' ஆகக் காணப்படுகிறது, எனவே பாட் வீதம் அமைக்கப்படுகிறது.

இங்கு ஐந்து பொத்தான்கள் உள்ளன, நான்கு வேட்பாளர்களின் வாக்குகளை அதிகரிப்பதற்கும், ஐந்தாவது வேட்பாளர்களின் வாக்குகளை பூஜ்ஜியமாக மீட்டமைப்பதற்கும் ஆகும். இங்கே இருக்கும் மின்தேக்கிகள் பொத்தான்களின் எதிர்க்கும் விளைவை அழிக்க வேண்டும். அவை அகற்றப்பட்டால், ஒவ்வொரு முறையும் பொத்தானை அழுத்தும்போது கட்டுப்படுத்தி ஒன்றுக்கு மேற்பட்டவற்றைக் கணக்கிடக்கூடும்.
ஊசிகளுடன் இணைக்கப்பட்ட மின்தடையங்கள் மின்னோட்டத்தைக் கட்டுப்படுத்துவதற்காக, முள் தரையில் இழுக்க பொத்தானை அழுத்தும்போது. ஒரு பொத்தானை அழுத்தும் போதெல்லாம், அதனுடன் தொடர்புடைய கட்டுப்படுத்தியின் முள் தரையில் இழுக்கப்படுகிறது, இதனால் கட்டுப்படுத்தி சில பொத்தானை அழுத்தி, அதனுடன் தொடர்புடைய நடவடிக்கை எடுக்கப்பட வேண்டும் என்பதை அங்கீகரிக்கிறது, இது வேட்பாளர் வாக்குகளை அதிகரிக்கும் அல்லது பொத்தானை அழுத்தியதைப் பொறுத்து வாக்குகளை மீட்டமைக்கலாம்.
தொடர்புடைய நபரைக் குறிக்கும் பொத்தானை அழுத்தும்போது, கட்டுப்படுத்தி அதைத் தேர்ந்தெடுத்து, அதன் நினைவகத்திற்குள் தொடர்புடைய நபரின் எண்ணை அதிகரிப்பதன் பின்னர் அதிகரிக்கிறது, இது 16x2 எல்சிடி டிஸ்ப்ளேயில் தொடர்புடைய நபர்களின் மதிப்பெண்ணைக் காட்டுகிறது.
வாக்களிக்கும் இயந்திரத்தின் வேலை கீழே கொடுக்கப்பட்டுள்ள சி குறியீட்டின் படிப்படியாக சிறப்பாக விளக்கப்பட்டுள்ளது:
குறியீடு விளக்கம்
ஊசிகளின் மீது தரவு ஓட்டம் கட்டுப்பாட்டை இயக்க # தலைப்பு // தலைப்பு
# F_CPU 1000000 ஐ வரையறுக்கவும் // கட்டுப்படுத்தி படிக அதிர்வெண் இணைக்கப்பட்டுள்ளது
#சேர்க்கிறது
வரையறுத்து மின் 5 // பெயர் கொடுத்து "செயலாக்கி" 5 வது அது எல்சிடி இணைக்கப்பட்டுள்ளதால், PORTD இன் முள் முள் செயல்படுத்த
வரையறுத்து ஆர்எஸ் 6 // பெயர் "registerselection" கொடுத்து 6 வது எல்சிடி ஆர்எஸ் முள் இணைக்கப்பட்டுள்ளது என்பதால், PORTD இன் முள்
void send_a_command (கையொப்பமிடாத கரி கட்டளை);
void send_a_character (கையொப்பமிடாத கரி எழுத்து);
send_a_string (char * string_of_characters);
int main (வெற்றிடத்தை)
{
டி.டி.ஆர்.ஏ = 0 எக்ஸ்எஃப்; // போர்ட்டாவை வெளியீட்டு ஊசிகளாக வைப்பது
டி.டி.ஆர்.டி = 0 பி 11111110;
_delay_ms (50); // 50ms தாமதத்தைக் கொடுக்கும்
DDRB = 0b11110000; // சில போர்ட் பி ஊசிகளை உள்ளீடாக எடுத்துக்கொள்வது.
UCSRB - = (1 <
// தரவை முழுமையான குறுக்கீட்டைப் பெற உதவுகிறது, தரவைப் பெற முள் செயல்படுத்துகிறது
UCSRC - = (1 <
// முதலில் URSEL ஐ அமைப்பதன் மூலம் மற்ற பிட்களை மாற்றுவது, 8 பிட் தகவல்தொடர்புக்கான அமைப்பு
UCSRC & = ~ (1 <
UBRRH & = ~ (1 <
UBRRL = 6; // பாட் வீதத்தை அமைத்தல்
int16_t VOTEA = 0; // நபர் 1 வாக்குகள் நினைவகத்தை சேமிக்கின்றன
char A; // நபர் 1 வாக்குகள் எல்சிடியில் தன்மையைக் காண்பிக்கும்
int16_t VOTEB = 0;; // நபர் 2 வாக்குகள் நினைவகத்தை சேமிக்கின்றன
கரி பி; // நபர் 2 வாக்குகள் எல்சிடியில் தன்மையைக் காண்பிக்கும்
int16_t VOTEC = 0;; // நபர் 3 வாக்குகள் நினைவகத்தை சேமிக்கின்றன
கரி சி; // நபர் 3 வாக்குகள் எல்சிடியில் தன்மையைக் காண்பிக்கும்
int16_t VOTED = 0;; // நபர் 4 வாக்குகள் நினைவகத்தை சேமிக்கின்றன
கரி டி; / / நபர் 4 வாக்குகள் எல்சிடியில் தன்மையைக் காண்பிக்கும்
// பின்வருவனவற்றில் குறிச்சொற்களின் ஐடி உள்ளது, இவை வெவ்வேறு குறிச்சொற்களுக்கு மாற்றப்பட வேண்டும், திட்டம் செயல்பட இவை புதுப்பிக்கப்பட வேண்டும்
// நிரலை கட்டுப்படுத்தியில் கொட்டிய பின் ஒருவர் அங்கீகரிக்கப்பட வேண்டிய அட்டைகளை எடுத்து குறிச்சொற்கள் ஐடியைப் பெற வேண்டும், இவை குறிச்சொல்லை RFID தொகுதிக்கு அருகில் வைப்பதன் மூலம் பெறப்படுகின்றன, மேலும் ஐடி திரையில் காண்பிக்கப்படும். ஐடிகளைப் பெற்ற பிறகு, கீழே உள்ள ஐடி எண்களை புதிய ஐடி எண்களுடன் மாற்றுவதன் மூலம் நிரல் புதுப்பிக்கப்பட வேண்டும்.
|
char ADMIT = {0 (0x97), (0xa1), (0x90), (0x92)}, {(0x97), (0xa1), (0x90), (0x93)}, {(0x97), (0xa1), (0x90), (0x94)}, {(0x97), (0xa1), (0x90), (0x95)}, {(0x97), (0xa1), (0x90), (0x96)}}; |
இப்போது மேலே நாம் ஐந்து அட்டைகளை மட்டுமே அங்கீகரிக்கிறோம், இவை எந்த எண்ணிற்கும் மாற்றப்படலாம், எடுத்துக்காட்டாக, இயல்புநிலை நிரல் கட்டுப்படுத்தியில் கொட்டப்படுவதைக் கருத்தில் கொள்ளுங்கள், அங்கீகரிக்கப்பட்ட அட்டைகளை ஒன்றன்பின் ஒன்றாக தொகுதிக்கு அருகில் வைக்கவும், ஒவ்வொன்றிற்கும் ஐடியை xxxxxxxx (907a4F87) எனப் பெறுவீர்கள், எங்களிடம் 7 குறிச்சொற்கள் இருந்தால், எங்களிடம் 7 எட்டு பிட் ஐடி இருக்கும்.
|
// இப்போது ஏழு அட்டைகளுக்கு இது செல்கிறது // char ADMIT = {0 (0x90), (0x7a), (0x4F), (0x87);,; // தொகுதி மூலம் ஐடியை அனுப்புவதைக் காண்பிப்பதற்கான நினைவகத்தை ஒதுக்குதல் int i = 0; int வாக்கு = 0; int k = 0; send_a_command (0x01); // தெளிவான திரை 0x01 = 00000001 _ தாமத_எம்எஸ் (50); send_a_command (0x38); // lcd ஐ 8bit கட்டளை / தரவு பயன்முறையைப் பயன்படுத்துகிறோம் _ தாமத_எம்எஸ் (50); send_a_command (0b00001111); // எல்சிடி ஸ்கிரீன் ஆன் மற்றும் கோர்சர் ஒளிரும் குறிச்சொல் MEM; // குறிச்சொல்லின் முழுமையான ஐடியை சேமிக்க நினைவகத்தை ஒதுக்குதல் send_a_string ("RFID NUMBER"); // அனுப்பும் சரம் send_a_command (0x80 + 0x40 + 0); // கோர்சரை இரண்டாவது வரிக்கு நகர்த்தும் போது (1) { போது (! (UCSRA & (1 <
{ } COUNTA = UDR; // யுடிஆர் பெறப்பட்ட எட்டு பிட் தரவை சேமித்து ஒரு முழு எண்ணாக எடுத்துக்கொள்ளப்படுகிறது. MEM = COUNTA; // முதல் இரண்டு எழுத்துக்கள் நினைவகத்திற்கு புதுப்பிக்கப்படுகின்றன itoa (COUNTA, SHOWA, 16); எல்.சி.டி.யில் மாறி எண்ணை வைப்பதற்கான // கட்டளை (மாறி எண், எந்த எழுத்தை மாற்ற வேண்டும், எந்த அடிப்படை மாறக்கூடியது (பத்து இங்கே நாம் அடிப்படை 10 இல் எண்ணை எண்ணும்போது) send_a_string (SHOWA); // எல்.சி.டி.யில் கோர்சரை நிலைநிறுத்திய பிறகு இரண்டாவது நபரின் தன்மையை (மாறி எண்ணால் மாற்றப்படுகிறது) காட்ட காட்சி போது (! (UCSRA & (1 <
{ } COUNTA = யுடிஆர்; itoa (COUNTA, SHOWA, 16); send_a_string (SHOWA); MEM = COUNTA; // மூன்றாவது மற்றும் நான்காவது எழுத்துக்கள் நினைவகத்திற்கு புதுப்பிக்கப்படுகின்றன போது (! (UCSRA & (1 <
{ } COUNTA = யுடிஆர்; itoa (COUNTA, SHOWA, 16); send_a_string (SHOWA); MEM = COUNTA; // ஐந்தாவது மற்றும் ஆறாவது எழுத்துக்கள் நினைவகத்திற்கு புதுப்பிக்கப்படுகின்றன போது (! (UCSRA & (1 <
{ } COUNTA = யுடிஆர்; itoa (COUNTA, SHOWA, 16); send_a_string (SHOWA); MEM = COUNTA; // ஏழாவது மற்றும் எட்டு எழுத்துக்கள் நினைவகத்திற்கு புதுப்பிக்கப்படுகின்றன send_a_string (""); send_a_command (0x80 + 0x40 + 0); UCSRB & = ~ (1 <
(i = 0; i <5; i ++) { if ((MEM == ADMIT) & (MEM == ADMIT) & (MEM == ADMIT) & (MEM == ADMIT)) {// அங்கீகாரத்தை சரிபார்க்கிறது நினைவகத்தில் உள்ள எழுத்துக்களுடன் ஒரே நேரத்தில் இரண்டு எழுத்துக்களை ஒப்பிட்டுப் பாருங்கள் PORTB - = (1 <
வாக்களித்தால் வாக்களிக்கவும் = 1; // } } if (வாக்கு == 0) // வாக்கு அமைக்கப்படவில்லை என்றால் அங்கீகாரம் தோல்வியடைந்தது { UCSRB - = (1 <
} (வாக்களித்தல் == 1) // அங்கீகரிக்கப்பட்டால், வாக்களிக்கும் வரை இந்த சுழற்சியைச் செய்யுங்கள் { send_a_command (0x80 + 0); // வரி 1 இல் பூஜ்ஜிய நிலைக்குச் செல்லுங்கள் send_a_string ("VOTE NOW"); // சரம் காண்பிக்கும் பொத்தானை அழுத்தும் போது (bit_is_clear (PINB, 0%)) // { VOTEA ++; // முதல் நபரின் வாக்கு நினைவகத்தை ஒவ்வொன்றாக அதிகரிக்கவும் வாக்களித்தல் = 0; // வாக்களித்த பிறகு லூப் செல்ல அனுமதிக்கிறது } பொத்தானை 2 அழுத்தும் போது (bit_is_clear (PINB, 1)) // { VOTEB ++; // 2 வது நபரின் வாக்கு நினைவகத்தை ஒவ்வொன்றாக அதிகரிக்கவும் வாக்கு = 0; } பொத்தானை 3 அழுத்தும் போது (bit_is_clear (PINB, 2)) // என்றால் { VOTEC ++; // 3 வது நபரின் வாக்கு நினைவகத்தை ஒவ்வொன்றாக அதிகரிக்கவும் வாக்கு = 0; } பொத்தானை 4 அழுத்தும் போது (bit_is_clear (PINB, 3%)) // { VOTED ++; // 4 வது நபரின் வாக்கு நினைவகத்தை ஒவ்வொன்றாக அதிகரிக்கவும் வாக்கு = 0; } if (வாக்கு == 0) // வாக்களிக்கப்பட்ட பிறகு அழிக்கப்பட்டது { send_a_command (0x80 + 0); // வரி 1 இன் பூஜ்ஜியத்திற்கு நகர்த்தவும் send_a_string ("VOTE க்கு நன்றி"); // காட்சி சரம் (k = 0; k <10; k ++) { _ தாமத_எம்எஸ் (220); } PORTB & = ~ (1 <
send_a_command (0x01); send_a_command (0x80 + 0); // நான்கு நபர்களின் வாக்குகளையும் காண்பித்தல் send_a_string ("A ="); send_a_command (0x80 + 2); itoa (VOTEA, A, 10); send_a_string (A); send_a_command (0x80 + 8); send_a_string ("B ="); send_a_command (0x80 + 10); itoa (VOTEB, B, 10); send_a_string (B); send_a_command (0x80 + 0x40 + 0); send_a_string ("C ="); send_a_command (0x80 + 0x40 + 2); itoa (VOTEC, C, 10); send_a_string (C); send_a_command (0x80 + 0x40 + 8); send_a_string ("D ="); send_a_command (0x80 + 0x40 + 10); itoa (VOTED, D, 10); send_a_string (D); send_a_command (0x80 + 0x40 + 16); (k = 0; k <25; k ++) { _ தாமத_எம்எஸ் (220); } UCSRB - = (1 <
send_a_command (0x01); send_a_command (0x80 + 0); // பூஜ்ஜிய நிலைக்கு நகரும் send_a_string ("RFID NUMBER"); // ஒரு சரம் அனுப்பு send_a_command (0x80 + 0x40 + 0); } } void send_a_command (கையொப்பமிடாத கரி கட்டளை) { PORTA = கட்டளை; PORTD & = ~ (1 <
PORTD - = 1 <
_ தாமத_எம்எஸ் (50); PORTD & = ~ 1 <
போர்டா = 0; } send_a_character (கையொப்பமிடாத கரி எழுத்து) { போர்டா = எழுத்து; PORTD - = 1 <
PORTD - = 1 <
_ தாமத_எம்எஸ் (50); PORTD & = ~ 1 <
போர்டா = 0; } send_a_string (char * string_of_characters) { போது (* string_of_characters> 0) { send_a_character (* string_of_characters ++); } } |
