久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
AD tlc2543+12864電壓表單片機程序
[打印本頁]
作者:
艱難018jin
時間:
2019-5-4 19:10
標題:
AD tlc2543+12864電壓表單片機程序
tlc2543 12位AD 12864制作電壓表
單片機源程序如下:
#include "reg51.h"
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
/********IO引腳定義****************************************/
sbit LCD_RS=P2^3;
sbit LCD_RW=P2^4;
sbit LCD_E=P2^5;
sbit PSB =P2^6; //PSB腳為12864-12系列的串、并通訊功能切換,我們使用8位并行接口,PSB=1
sbit CLOCK=P1^0; /*2543時鐘*/
sbit D_IN=P1^1; /*2543輸入*/
sbit D_OUT=P1^2; /*2543輸出*/
sbit _CS=P1^3; /*2543片選*/
/********宏定義***********************************************************/
#define LCD_Data P0
#define Busy 0x80 //用于檢測LCD狀態字中的Busy標識
unsigned char code a[]={"0123456789 :.-"};
/********函數聲明*************************************************************/
void WriteDataLCD(unsigned char WDLCD);
void WriteCommandLCD(unsigned char WCLCD,BuysC);
unsigned char ReadDataLCD(void);
unsigned char ReadStatusLCD(void);
void LCDInit(void);
void LCDClear(void);
void LCDFlash(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void DisplayImage (unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
void delay(uchar n);
/********數據定義*************************************************************/
code unsigned char uctech[] = {"創新實驗室 "};
code unsigned char net[] = {"AD測試程序 "};
code unsigned char mcu[] = {"選擇通道:1 "};
code unsigned char qq[] = {"電壓: "};
uint read2543(uchar port)
{
uint ad=0,i;
CLOCK=0;
_CS=0;
port<<=4;//通道號左移4位
for(i=0;i<12;i++)//沒有設置控制字,默認輸出數據為12位,高位先送出,輸出數據的格式為2進制
{
if(D_OUT) ad|=0x01;//轉換后的值高位先送出
D_IN=(bit)(port&0x80);//通道值高位先送出
CLOCK=1;
delay(1);
CLOCK=0;
delay(1);
port<<=1;
ad<<=1;
}
_CS=1;
ad>>=1;//循環中多左移了一位
return ad;
}
/***********主函數開始********************************************************/
void main(void)
{ uint ad=0;
// Delay400Ms(); //啟動等待,等LCD講入工作狀態
LCDInit(); //LCD初始化
Delay5Ms(); //延時片刻(可不要)
while(1){
ad=read2543(1);
ad=ad*1.0/8;
DisplayListChar(0,1,uctech); //顯示字庫中的中文數字
DisplayListChar(0,2,net); //顯示字庫中的中文數字
DisplayListChar(0,3,mcu); //顯示字庫中的中文
DisplayListChar(0,4,qq); //顯示字庫中的中文數字
DisplayOneChar(7,4,a[ad%10]); //顯示字庫中的中文數字
DisplayOneChar(6,4,a[ad%100/10]); //顯示字庫中的中文數字
DisplayOneChar(5,4,a[12]); //顯示字庫中的中文數字
DisplayOneChar(4,4,a[ad/100%10]); //顯示字庫中的中文數字
DisplayOneChar(3,4,a[ad/1000]); //顯示字庫中的中文數字
}
}
/***********寫數據********************************************************/
void WriteDataLCD(unsigned char WDLCD)
{
ReadStatusLCD(); //檢測忙
LCD_RS = 1;
LCD_RW = 0;
LCD_Data = WDLCD;
LCD_E = 1;
LCD_E = 1;
LCD_E = 1;
LCD_E = 0;
}
/***********寫指令********************************************************/
void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC為0時忽略忙檢測
{
if (BuysC) ReadStatusLCD(); //根據需要檢測忙
LCD_RS = 0;
LCD_RW = 0;
LCD_Data = WCLCD;
LCD_E = 1;
LCD_E = 1;
LCD_E = 1;
LCD_E = 0;
}
/***********讀數據********************************************************/
unsigned char ReadDataLCD(void)
{
unsigned char LCDDA;
LCD_RS = 1;
LCD_RW = 1;
LCD_E = 1;
LCD_E = 1;
LCDDA=LCD_Data;
LCD_E = 0;
return(LCDDA);
}
/***********讀狀態*******************************************************/
unsigned char ReadStatusLCD(void)
{
LCD_Data = 0xFF;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 1;
LCD_E = 1;
while (LCD_Data & Busy); //檢測忙信號
LCD_E = 0;
return(1);
}
/***********初始化********************************************************/
void LCDInit(void)
{
WriteCommandLCD(0x30,1); //顯示模式設置,開始要求每次檢測忙信號
WriteCommandLCD(0x01,1); //顯示清屏
WriteCommandLCD(0x06,1); // 顯示光標移動設置
WriteCommandLCD(0x0C,1); // 顯示開及光標設置
}
/***********清屏********************************************************/
void LCDClear(void)
{
WriteCommandLCD(0x01,1); //顯示清屏
WriteCommandLCD(0x34,1); // 顯示光標移動設置
WriteCommandLCD(0x30,1); // 顯示開及光標設置
}
/***********閃爍效果********************************************************/
void LCDFlash(void)
{
WriteCommandLCD(0x08,1); //顯示清屏
Delay400Ms();
WriteCommandLCD(0x0c,1); // 顯示開及光標設置
Delay400Ms();
WriteCommandLCD(0x08,1); //顯示清屏
Delay400Ms();
WriteCommandLCD(0x0c,1); // 顯示開及光標設置
Delay400Ms();
WriteCommandLCD(0x08,1); //顯示清屏
Delay400Ms();
}
/***********按指定位置顯示一個字符*******************************************/
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
if(Y<1)
Y=1;
if(Y>4)
Y=4;
X &= 0x0F; //限制X不能大于16,Y不能大于1
switch(Y){
case 1:X|=0X80;break;
case 2:X|=0X90;break;
case 3:X|=0X88;break;
case 4:X|=0X98;break;
}
WriteCommandLCD(X, 0); //這里不檢測忙信號,發送地址碼
WriteDataLCD(DData);
}
/***********按指定位置顯示一串字符*****************************************/
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength,X2;
ListLength = 0;
X2=X;
if(Y<1)
Y=1;
if(Y>4)
Y=4;
X &= 0x0F; //限制X不能大于16,Y在1-4之內
switch(Y){
case 1:X2|=0X80;break; //根據行數來選擇相應地址
case 2:X2|=0X90;break;
case 3:X2|=0X88;break;
case 4:X2|=0X98;break;
}
WriteCommandLCD(X2, 1); //發送地址碼
while (DData[ListLength]>=0x20){ //若到達字串尾則退出
if (X <= 0x0F){ //X坐標應小于0xF
WriteDataLCD(DData[ListLength]);
ListLength++;
X++;
delay(10);
}
}
}
/***********短延時********************************************************/
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
/***********長延時********************************************************/
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--){
TempCycB=7269;
while(TempCycB--);
}
}
void delay(uchar n)
{
uchar i;
for(i=0;i<n;i++)
{
_nop_();
}
}
復制代碼
所有資料51hei提供下載:
119128631ADtlc2543P12864.zip
(33.83 KB, 下載次數: 61)
2019-5-4 19:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
歸墟小獸
時間:
2019-5-8 01:54
數據穩定嗎
作者:
583703056A
時間:
2019-6-5 12:32
這個有驗證過哦?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
夜夜精品视频
|
亚洲美女av网站
|
精品在线一区
|
成人免费网视频
|
谁有毛片
|
欧美日韩国产高清
|
欧美色综合一区二区三区
|
色姑娘综合网
|
91精品国产乱码久久蜜臀
|
99在线免费观看视频
|
亚洲国产成人精品女人久久久
|
国产精品久久久久久久久免费桃花
|
一区二区三区欧美
|
免费国产黄
|
91国产精品在线
|
91美女在线观看
|
99国产精品视频免费观看一公开
|
亚洲欧美一区二区三区国产精品
|
欧美一级片中文字幕
|
欧美日韩国产高清视频
|
亚洲永久免费
|
国产视频福利
|
久久不射电影网
|
国产日韩欧美在线一区
|
国产一区精品
|
一区二区久久
|
亚洲精品第一页
|
国产精品1区2区3区 男女啪啪高潮无遮挡免费动态
|
欧美精品乱码久久久久久按摩
|
伊人成人免费视频
|
亚洲欧洲日本国产
|
亚洲免费观看视频网站
|
91精品久久久久久久久中文字幕
|
在线免费毛片
|
日韩电影一区二区三区
|
久久久久久国产精品
|
色综合美女
|
欧美成人免费在线
|
国产成人在线观看免费
|
天天综合国产
|
国产成人av一区二区三区
|