case 2: P26=0;break; case 3: P27=0;break; } count++; if(count>=250) {
count=0; flag=1; } }
//半S时间到
六、思考题
通过按键设定待转换通道,并将该通道的采样值在数码管上显示出来。
七、实验成绩评定方法
实验成绩包括实验完成质量、实验报告质量2部分组成,各部分所占比例分别为50%、50%。
八、实验报告要求
1)实验名称 2)实验目的 3)实验要求 4)实验步骤 5)调试 6)结果
21/32
实验二键盘及LCD显示
一、实验目的
1.掌握独立式键盘的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、实验要求
1.利用实验板上提供的键盘电路,LCD显示电路,将实验二中采集的电压信号在LCD上显示出来,并显示通道号。
2.可以通过按键设定的待显示的通道号,并显示在LCD上。 三、预习与参考
1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。
2. 参考资料 1)实验板说明书
2)ST7920 控制器系列中文图形液晶模块资料手册 四、实验仪器设备和材料清单
单片机实验板、ST7920图形液晶模块、PC机; Keil c51软件、STC-ISP下载软件。 五、实验设计及实施的指导
1.以单片机为核心,设计键盘及LCD的硬件电路,画出电路原理图。 2.设计键盘及LCD的控制软件,画出流程图,编写控制程序。 3.在指导教师指导下调试LCD显示程序。 4.在指导教师指导下调试按键程序。 5.综合调试直到满足设计要求。 注:1、2项须在课外完成。 六、参考资料 LCD显示参考程序
#include \#include \
sbit CS =P1^0; sbit SID=P1^1; sbit SCLK=P1^2;
sbitB_light=P2^7; //背光控制
void delay(unsigned int j)
22/32
{
unsigned char i; do{
for(i=0;i<100;i++); }while(j--); } {
unsigned char i;
unsigned char i_data,temp_data1,temp_data2;
i_data=0xf8; //操作命令,可以查看资料 delay(10); CS=1; SCLK=0;
for(i=0;i<8;i++) { }
i_data=command_data; i_data&=0xf0; for(i=0;i<8;i++) { }
i_data=command_data; temp_data1=i_data&0xf0; temp_data2=i_data&0x0f;
23/32
void send_command(unsigned char command_data) //发送命令
SID=(bit)(i_data&0x80); SCLK=0; SCLK=1;
i_data=i_data<<1;
SID=(bit)(i_data&0x80); SCLK=0; SCLK=1;
i_data=i_data<<1;
temp_data1>>=4; temp_data2<<=4;
i_data=temp_data1|temp_data2; i_data&=0xf0; for(i=0;i<8;i++) { } CS=0; }
void send_data(unsigned char command_data) //发送数据 {
unsigned char i;
unsigned char i_data,temp_data1,temp_data2; i_data=0xfa; //操作命令,可以查看资料 delay(10); CS=1;
for(i=0;i<8;i++) { }
i_data=command_data; i_data&=0xf0; for(i=0;i<8;i++) {
SID=(bit)(i_data&0x80); SCLK=0; SCLK=1;
i_data=i_data<<1;
SID=(bit)(i_data&0x80); SCLK=0; SCLK=1;
i_data=i_data<<1;
SID=(bit)(i_data&0x80); SCLK=0; SCLK=1;
24/32