当前位置:   article > 正文

基于C51单片机的单词记忆测试器_单词记忆测试器程序设计

单词记忆测试器程序设计

单词记忆测试器

  • 设计要求
  • 仿真图
  • 程序
  • 小论文(包括软件,硬件,系统流程图和程序流程图)

1、设计要求

 以单片机为核心,设计一个单词记忆测试器,实现单词的录入 (为使程序具有可演示性,单词不少于10个),单词用按键控制依次在屏幕上显示,按键选择认识与否,也可以直接进入下一个或者上一个,单词背完后给出正确率。

2、仿真图

3、功能介绍

Y,N按键分别代表当前单词会和不会,通过判断该按键来算出最后的正确率,UP和DOWN按键则代表切换单词,下一个和上一个,如果在不按Y,N按键而直接按下下一个按键则默认代表不会,且每当Y,N按键按下时,LED将会闪烁来代表按键确认按下。此次设计总共测试了10个单词 当LCD显示最后一个单词时,此时再按下下一个按键则单词将从第一个开始显示。

4、代码程序

  1. #include <REG52.H>
  2. #include <INTRINS.H>
  3. #include "lcd.h"
  4. #include "public.h"
  5. sbit LED = P2^3 ; //LEDÒý½Å
  6. sbit k3=P3^0; //ÉÏÒ»¸ö
  7. sbit k4=P3^1; //ÏÂÒ»¸ö
  8. unsigned char word_buf [][10] ={"plastic","steal","phase","year","trim","daily","render","typist","dump","ripe","accuracy:"};
  9. unsigned char YES = 0;
  10. unsigned char NO = 0;
  11. unsigned char word_num=0; //µ¥´ÊÁбíÐòÁÐ
  12. unsigned char acc[1];
  13. /*************************************************************************************************/
  14. void delayms(unsigned int xms);
  15. void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
  16. void count_detection();
  17. /*************************************************************************************************/
  18. void EX0Init(void) //ÍⲿÖжÏ0³õʼ»¯ »á
  19. {
  20. IT0 = 1; //ÉèÖÃÍⲿÖжÏ0´¥·¢·½Ê½ÎªÌø±äÑØ´¥·¢
  21. EX0 = 1; //¿ªÆôÍⲿÖжÏ0
  22. }
  23. void EX1Init(void)//ÍⲿÖжÏ1³õʼ»¯ ²»»á
  24. {
  25. IT1 = 1; //ÉèÖÃÍⲿÖжÏ1´¥·¢·½Ê½ÎªÌø±äÑØ´¥·¢
  26. EX1 = 1; //¿ªÆôÍⲿÖжÏ1
  27. }
  28. void int0() interrupt 0 //ÍⲿÖжϺ¯Êý0
  29. {
  30. LED=0;
  31. YES++;
  32. if(YES>10)
  33. YES=10;
  34. delayms(400);
  35. }
  36. void int1() interrupt 2 //ÍⲿÖжϺ¯Êý1
  37. {
  38. LED=0;
  39. YES--;
  40. if(YES<=0)
  41. YES=0;
  42. delayms(400);
  43. }
  44. void origin_show()
  45. {
  46. LCD_Dispstring(2,0,"H.I.T. CHINA");
  47. show_word_buf(3,word_num);
  48. }
  49. void count_detection()
  50. {
  51. if(word_num==10)
  52. {
  53. DisplayOneChar(12, 1, acc[0]);
  54. LCD_Dispstring(13,1,"0%");
  55. YES=0;
  56. }
  57. else
  58. {
  59. LCD_Dispstring(13,1," ");
  60. }
  61. }
  62. void main()
  63. {
  64. EA=1; //¿ªÆô×ÜÖжÏ
  65. EX0Init(); //ÍⲿÖжÏ0³õʼ»¯
  66. EX1Init(); //ÍⲿÖжÏ1³õʼ»¯
  67. LCD_Init();
  68. while(1)
  69. {
  70. LED=1;
  71. origin_show();
  72. key_scan();
  73. count_detection();
  74. }
  75. }

5、仿真效果演示

按键按下UP后,LCD1602显示屏切换上一个单词,按键按下down后,LCD1602显示屏切换下一个单词。

当LCD1602显示屏显示当前单词时,可以按下Y或者N按键来选择是否认识该单词,且每当Y或N按键按下时,LED会闪烁提示代表按键确定按下。 根据Y和N按键的次数来判断正确率,如果不按下Y,N按键而直接按下DOWN按键切换下一个单词时,则单片机默认该单词不认识。

该单词记忆检测系统一共录入了10个单词,当10个单词全部演示结束后,屏幕上将会统计正确率,正确率的统计和Y,N按键有关。

6、文档介绍 

 该文档包括了程序流程图,系统总体框图,模块AD图和设计思路等

7、下载地址

基于C51单片机的单词记忆测试器资源-CSDN文库

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/784473
推荐阅读
相关标签
  

闽ICP备14008679号