码迷,mamicode.com
首页 > 其他好文 > 详细

准备用C51做个学生管理系统(2)

时间:2014-08-05 21:50:00      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   文件   数据   for   2014   

能够控制矩阵键盘以后,我就直接改代码控制8X8的键盘,用P1和P3口

  1 void keyscan()
  2 {
  3     uchar tmp;
  4     P1 = 0xff;
  5     P3 = 0x00;
  6     delay(5);
  7     tmp = P1^0xff;
  8 
  9     //blink();
 10     //delay(500);
 11 
 12     switch(tmp){
 13         case 1:
 14             now_num = 0;
 15             break;
 16         case 2:
 17             now_num = 1;
 18             break;
 19         case 4:
 20             now_num = 2;
 21             break;
 22         case 8:
 23             now_num = 3;
 24             break;
 25         case 16:
 26             now_num = 4;
 27             break;
 28         case 32:
 29             now_num = 5;
 30             break;
 31         case 64:
 32             now_num = 6;
 33             break;
 34         case 128:
 35             now_num = 7;
 36             break;
 37         default:
 38             now_num = 44;
 39     }
 40 
 41     P1 = 0x00;
 42     P3 = 0xff;
 43     delay(5);
 44     tmp = P3^0xff;
 45     switch(tmp){
 46         case 1:
 47             now_num += 56;
 48             break;
 49         case 2:
 50             now_num += 48;
 51             break;
 52         case 4:
 53             now_num += 40;
 54             break;
 55         case 8:
 56             now_num += 32;
 57             break;
 58         case 16:
 59             now_num += 24;
 60             break;
 61         case 32:
 62             now_num += 16;
 63             break;
 64         case 64:
 65             now_num += 8;
 66             break;
 67         case 128:
 68             now_num += 0;
 69             break;
 70     }
 71 }
 72 
 73 void show()
 74 {
 75     if(pre_num != now_num)    
 76     {
 77         display_seg(now_num);
 78         pre_num = now_num;
 79     }
 80     display_seg(now_num);
 81     //delay(100);
 82 }
 83 
 84 //主函数
 85 void main()
 86 {
 87     int i = 0;
 88     int j = 0;
 89 
 90     P0 = 0xff;
 91     P2 = 0;
 92     init();
 93     TR1 = 1;
 94 
 95     cnt = 00;
 96     while(1)
 97     {
 98         P1 = 0x00;
 99         P3 = 0xff;
100 
101         if(P3 != 0xff)keyscan();
102         show();
103     }    
104 }

 

差不多就开始做LCD1062显示字符串的功能了。首先画protues电路图

bubuko.com,布布扣

 

然后在工程里面添加一个LCD1062.c的文件,代码如下:

 1 /***************   LCD1062.c   ******************/
 2 #include "common.h"
 3 
 4 sbit RS = P2^0;
 5 sbit RW = P2^1;
 6 sbit EN = P2^2;
 7 
 8 void Delayms(uint ms)
 9 {
10      uchar i;
11     while(ms--)
12     {
13          for(i=0;i<120;i++);
14     }
15 }
16 
17 uchar Busy_Check()
18 {
19      uchar LCD_Status;
20     RS = 0;
21     RW = 1;
22     EN = 1;
23     Delayms(1);
24        LCD_Status = P0;
25     EN = 0;
26     return LCD_Status;
27 }
28 
29 void Write_LCD_Command(uchar cmd)
30 {
31      while((Busy_Check()&0x80)==0x80);
32     RS = 0;
33     RW = 0;
34     EN = 0;
35     P0 = cmd;
36     EN = 1;
37     Delayms(1);
38     EN = 0;
39 }
40 
41 void Write_LCD_Data(uchar dat)
42 {
43      while((Busy_Check()&0x80)==0x80);
44     RS = 1;
45     RW = 0;
46     EN = 0;
47     P0 = dat;
48     EN = 1;
49     Delayms(1);
50     EN = 0;
51 }
52 
53 void Initialize_LCD()
54 {
55      Write_LCD_Command(0x38);
56     Delayms(1);    
57     Write_LCD_Command(0x01);
58     Delayms(1);    
59     Write_LCD_Command(0x06);
60     Delayms(1);    
61     Write_LCD_Command(0x0c);
62     Delayms(1);    
63 }
64 
65 void ShowString(uchar x,uchar y,uchar *str)
66 {
67      uchar i = 0;
68     if(y == 0)
69         Write_LCD_Command(0x80 | x);
70     if(y == 1)
71         Write_LCD_Command(0xc0 | x);
72     for(i=0;i<16;i++)
73     {
74          Write_LCD_Data(str[i]);    
75     }
76 }

 

代码的意思我也没细看,是直接从单片机100个例子里面摘抄的,要看明白可能还得了解LCD1062的一些指令,总之调用函数

ShowString(uchar x,uchar y,uchar *str) 
大概的意思:第一个参数是***(过些日子再看看)第二个参数是行号,第三个参数是显示的字符串,基本上就能够调用函数让LCD屏显示数据了。

准备用C51做个学生管理系统(2),布布扣,bubuko.com

准备用C51做个学生管理系统(2)

标签:style   blog   http   color   文件   数据   for   2014   

原文地址:http://www.cnblogs.com/songsongman/p/3892921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!