uint i,j; //定义变量i,j,用于循环语句 for(i=0;i
wcode(uchar t) {
rs=0; // 写的是命令 rw=0; // 写状态 e=1; //使能
P1=t; //写入命令
delay(20); //等待写入,如果时间太短,会导致液晶无法显示 e=0; //数据的锁定 }
wdata(uchar t) {
rs=1; // 写的是数据 rw=0; // 写状态 e=1; //使能
P1=t; //写入数据
delay(20); //等待写入,如果时间太短,会导致液晶无法显示 e=0; //数据的锁定 }
xian1() {
uchar i;
wcode(0x80); //设置第一行显示地址 for(i=0;i<16;i++) //循环16次,写完1行 {
wdata(dis1[i]); //写入该行数据 } }
//******************************************************************
//LCD显示第二行
//******************************************************************
xian2() {
uchar i;
wcode(0xc0); //设置第二行显示地址
for(i=0;i<16;i++) //循环16次,写完1行 {
wdata(dis2[i]); //写入该行数据 } }
//******************************************************************
//LCD 初始化
//******************************************************************
InitLCD() {
wcode(0x01); //清屏
wcode(0x06); //输入方式控制,增量光标不移位 wcode(0x0e); //显示开关控制
wcode(0x38); //功能设定:设置16x2显示,5x7显示,8位数据接口 }
unsigned char TLC549_ADC(void) {
unsigned char i, tmp; CS = 1; CLK = 0; CS = 0; _nop_(); _nop_();
for(i = 0; i < 8; i++) {
tmp <<= 1; tmp |= DO; CLK = 1; _nop_(); CLK = 0; }
CS = 1;
for(i = 17; i != 0; i--) _nop_(); return (tmp); }
void Volt_To_LCD(void) {
uchar AD_Data;
AD_Data = TLC549_ADC();
Volt = 5.0 / 256 * AD_Data * 1000;
LCD[0] = ' ';LCD[1] = ' ';LCD[2] = ' ';LCD[3] = ' ';LCD[4] = ' '; LCD[5] = Volt / 1000 + '0'; //千位
LCD[6] = Volt / 100 % 10 + '0'; //百位 LCD[7] = '.'; //小数点
LCD[8] = Volt / 10 % 10 + '0'; //十位 LCD[9] = Volt % 10 + '0'; //个位 LCD[10] = 'c';
LCD[11] = '\0'; //字符串结束标志符 }
void xianshi() {
int i;
wcode(0x80);
for(i=0;i<16;i++) { wdata(kaishi[i]); delay(20); }
wcode(0x80+0x40); for(i=0;i<16;i++) { wdata(LCD[i]); delay(20); } }
main() {
uchar i;
InitLCD(); //初始化1602 xian1(); //显示第一行 xian2(); //显示第二行
while(1) //进入死循环,防止看门狗复位 {
for(i=0;i<16;i++) {
xianshi; //每输入一次码,向左移位一次 delay(3000); //滚动速度设置 } } }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库自动化专业微机接口课程设计1(3)在线全文阅读。
相关推荐: