赞
踩
以单片机为核心,设计一个单词记忆测试器,实现单词的录入 (为使程序具有可演示性,单词不少于10个),单词用按键控制依次在屏幕上显示,按键选择认识与否,也可以直接进入下一个或者上一个,单词背完后给出正确率。
Y,N按键分别代表当前单词会和不会,通过判断该按键来算出最后的正确率,UP和DOWN按键则代表切换单词,下一个和上一个,如果在不按Y,N按键而直接按下下一个按键则默认代表不会,且每当Y,N按键按下时,LED将会闪烁来代表按键确认按下。此次设计总共测试了10个单词 当LCD显示最后一个单词时,此时再按下下一个按键则单词将从第一个开始显示。
-
- #include <REG52.H>
- #include <INTRINS.H>
- #include "lcd.h"
- #include "public.h"
-
- sbit LED = P2^3 ; //LEDÒý½Å
-
- sbit k3=P3^0; //ÉÏÒ»¸ö
- sbit k4=P3^1; //ÏÂÒ»¸ö
-
- unsigned char word_buf [][10] ={"plastic","steal","phase","year","trim","daily","render","typist","dump","ripe","accuracy:"};
- unsigned char YES = 0;
- unsigned char NO = 0;
- unsigned char word_num=0; //µ¥´ÊÁбíÐòÁÐ
-
- unsigned char acc[1];
- /*************************************************************************************************/
- void delayms(unsigned int xms);
- void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
- void count_detection();
- /*************************************************************************************************/
-
-
- void EX0Init(void) //ÍⲿÖжÏ0³õʼ»¯ »á
- {
- IT0 = 1; //ÉèÖÃÍⲿÖжÏ0´¥·¢·½Ê½ÎªÌø±äÑØ´¥·¢
- EX0 = 1; //¿ªÆôÍⲿÖжÏ0
-
- }
-
- void EX1Init(void)//ÍⲿÖжÏ1³õʼ»¯ ²»»á
- {
-
- IT1 = 1; //ÉèÖÃÍⲿÖжÏ1´¥·¢·½Ê½ÎªÌø±äÑØ´¥·¢
- EX1 = 1; //¿ªÆôÍⲿÖжÏ1
- }
-
- void int0() interrupt 0 //ÍⲿÖжϺ¯Êý0
- {
- LED=0;
- YES++;
- if(YES>10)
- YES=10;
- delayms(400);
- }
-
- void int1() interrupt 2 //ÍⲿÖжϺ¯Êý1
- {
- LED=0;
- YES--;
- if(YES<=0)
- YES=0;
- delayms(400);
- }
-
- void origin_show()
- {
- LCD_Dispstring(2,0,"H.I.T. CHINA");
- show_word_buf(3,word_num);
- }
-
-
- void count_detection()
- {
- if(word_num==10)
- {
- DisplayOneChar(12, 1, acc[0]);
- LCD_Dispstring(13,1,"0%");
- YES=0;
-
- }
- else
- {
- LCD_Dispstring(13,1," ");
- }
-
- }
-
-
- void main()
- {
- EA=1; //¿ªÆô×ÜÖжÏ
- EX0Init(); //ÍⲿÖжÏ0³õʼ»¯
- EX1Init(); //ÍⲿÖжÏ1³õʼ»¯
-
- LCD_Init();
- while(1)
- {
- LED=1;
- origin_show();
- key_scan();
- count_detection();
-
-
- }
- }
按键按下UP后,LCD1602显示屏切换上一个单词,按键按下down后,LCD1602显示屏切换下一个单词。
当LCD1602显示屏显示当前单词时,可以按下Y或者N按键来选择是否认识该单词,且每当Y或N按键按下时,LED会闪烁提示代表按键确定按下。 根据Y和N按键的次数来判断正确率,如果不按下Y,N按键而直接按下DOWN按键切换下一个单词时,则单片机默认该单词不认识。
该单词记忆检测系统一共录入了10个单词,当10个单词全部演示结束后,屏幕上将会统计正确率,正确率的统计和Y,N按键有关。
该文档包括了程序流程图,系统总体框图,模块AD图和设计思路等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。