欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC15單片機ADC采集顯示在LCD12864的源程序
[打印本頁]
作者:
huanghu
時間:
2018-4-27 10:45
標題:
STC15單片機ADC采集顯示在LCD12864的源程序
顯示在LCD12864思路。把ADC采集到的值傳遞給LCD12864顯示那部分程序,如果你直接把ADC采集到的值直接傳遞給LCD12864顯示那塊,會出現亂碼,所以需要你把ADC采集的三位數,分別把這三位數的每一位數取出來在加上ASCLL中的0(48),傳遞給LCD12864顯示那塊,而且你要顯示在哪一行那個位置,還有我用的STC15F2K60S2每次的端口初始化,才可以 還請大神多多指教。謝謝
12864簡單顯示+ADC采集單片機源程序如下:
#include <aj.h>
#include "ad.h"
//unsigned char code dis1[]={"0x31,0x32,0x33,0x34,0x35"}; //顯示四行
unsigned char code dis2[]={"哈哈一熱"}; //每一行只能倆中,這倆種用中文空格隔開
unsigned char code dis3[]={"我我的偉大的"};
unsigned char code dis4[]={"1231315"};
void xianshi(int j);
sbit lcd_rs=P2^0;
sbit lcd_rw=P2^1;
sbit lcd_en=P2^2;
sbit lcd_psb=P2^3;
void port_mode() // 端口模式
{
P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00;
P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;
}
void delayxms(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
bit lcd_busy() //LCD判斷忙
{
bit result;
lcd_rs=0;
lcd_rw=1;
lcd_en=1;
_nop_();//4us
_nop_();
_nop_();
result=(bit)(P0&0x80);
lcd_en=0;
return(result);
}
void lcd_wcmd(unsigned char cmd) //LCD讀狀態
{
while(lcd_busy()); //忙狀態檢測
lcd_rs=0;
lcd_rw=0;
lcd_en=0;
_nop_(); //1us
_nop_();
P0=cmd;
_nop_();//4us
_nop_();
_nop_();
lcd_en=1;
_nop_();//4us
_nop_();
_nop_();
lcd_en=0;
}
void lcd_wdat(unsigned char dat) //LCD寫數據
{
while(lcd_busy());
lcd_rs=1;
lcd_rw=0;
lcd_en=0;
P0=dat;
_nop_();//4us
_nop_();
_nop_();
lcd_en=1;
_nop_();//4us
_nop_();
_nop_();
lcd_en=0;
}
void lcd_init() //LCD初始化
{
lcd_psb=1; //并行
lcd_wcmd(0x34);
delay(5);
lcd_wcmd(0x30);
delay(5);
lcd_wcmd(0x0c);
delay(5);
lcd_wcmd(0x01);
delay(5);
}
void lcd_pos(unsigned char x,unsigned char y) //確定LCD顯示位置
{
unsigned char pos;
if(x==0) {x=0x80;}
if(x==1) {x=0x90;}
if(x==2) {x=0x88;}
if(x==3) {x=0x98;}
pos=x+y;
lcd_wcmd(pos);
}
void xianshi()
{
unsigned char i,w1,w2,w3,j;
j=GetADCResult(0); //采集到ADC賦值給變量
delay(10);
i=0;
w1=j/100+48; //三位數取余 取第一位數
w2=j%100/10+48; //取第二位數
w3=j%100%10+48; //取第三位數
lcd_pos(0,0); //表示第一行,第零位
lcd_wdat(w1); //把ADC采集到值取出第一位,傳遞給12864顯示
delayxms(1);
lcd_pos(0,1); //表示第一行,第一零位
lcd_wdat(w2);
delayxms(1);
lcd_pos(0,2); //表示第一行,第二零位
lcd_wdat(w3);
delayxms(1);
delay(20);
lcd_pos(1,0);
i=0;
while(dis2[i]!='\0') //判斷數組dis2[i]是否等于0
{
lcd_wdat(dis2[i]); //讓數組dis2[i]里的每一位數一次顯示
i++;
}
delay(5);//15在此加延時解決顯示不清楚
lcd_pos(2,0); //LCD顯示第二行第0位
i=0;
while(dis3[i]!='\0')
{
lcd_wdat(dis3[i]);
i++;
}
delay(5);
lcd_pos(3,0); //LCD顯示第三行第0位
i=0;
while(dis4[i]!='\0')
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
12864簡單顯示 ADC采集.zip
(42.5 KB, 下載次數: 177)
2018-4-27 10:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
xxdz12345
時間:
2018-11-5 11:51
我要看看
作者:
fankechang
時間:
2019-9-23 20:30
正需要,準備下學習一下
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1