久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4022|回復: 1
收起左側

51單片機驅動 LCD1602液晶顯示系統 PROTEUS仿真及源代碼 設計

[復制鏈接]
ID:786505 發表于 2020-6-23 11:14 | 顯示全部樓層 |閱讀模式
第一步:仿真

繪制好原理圖,仿真時單片機最小系統只放一個單片機就可以了,但實際電路中需要加上電源模塊、復位模塊。如下圖:

03-5.PNG

原理圖文件請在附件中找。

原理圖繪制好后,編寫代碼并生成hex文件。參考代碼如下:

/*功能/
/使用外部中斷INTO改變LED狀態,并且用1602顯示出其狀態/
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]=" HELLO 1602 ";
uchar code table0[]="1602 TEST ";
uchar code table1[]="RESULT: "; //空格是寫到LCD了,即空格也是內容
uchar code table2[]=“OK!”;
uchar code table3[]=“liang”;
uchar code table4[]=“mie”;
uchar num;
sbit led=P1^7;
sbit lcden=P2^0; //液晶使能端
sbit lcdrs=P2^2; //液晶數據命令選擇端選擇寫數據還是寫命令
void delay(uint z) // 延時函數
{
uint i,j;
for(i=z;i>0;i–)
for(j=110;j>0;j–);
}
void write_com(uchar com) //寫入
{
lcdrs=0; //LCD 選擇輸入命令
P0=com; //向P0 口輸入命令 39-32端口
delay(5); //延時
lcden=1; //打開LCD 使能
delay(5); //一個高脈沖
lcden=0; //關閉LCD 使能
}
void write_data(uchar date)
{
lcdrs=1; //設置為輸入數據
P0=date; //將數據賦給P0 口
delay(5); //延時
lcden=1; //置高
delay(5); //高脈沖
lcden=0; //置低完成高脈沖
}
void init() //LED 初始化
{
lcden=0;
write_com(0x38);//設置16x2 顯示5x7 點陣,8 位數據接口
write_com(0x0c); //設置開始顯示不顯示光標 (指令4)
write_com(0x06); //寫一個字符后地址指針加1 (指令3)
write_com(0x01); //顯示清零數據指針清零 (指令1)
}

void display(unsigned char *p)//按指針 地址寫入數據
{
while(*p!=’\0’)
{
write_data(*p); //寫數據
p++;
delay(1);
}
}

void main()
{
TCON=0x01; //設置中斷為INTO
IE=0x81;
led=0;
init();
write_com(0x80); //將數據指針第一行第一個字處,
display(table); //調用函數的方式寫入數據
delay(800);
write_com(0x80); //將數據指針第一行第一個字處,
display(table0); //調用函數的方式寫入數據
write_com(0x80+0x40); //定義指針位置 將數據指針第二行第一個字處
for(num=0;num<7;num++)
{
write_data(table1[num]);
delay(5);
}
write_com(0x80+0x4c); //按1602的地址單個寫入數據
write_data(table2[0]);
write_com(0x80+0x4d); //按1602的地址單個寫入數據
write_data(table2[1]);
write_com(0x80+0x4e); //按1602的地址單個寫入數據
write_data(table2[2]);
while(1);
}
void key_can() interrupt 0
{
delay(20); // 消除按鍵抖動
if(P3^30)
{
if(P3^30)
{
led=!led;

}
if(led1)
{
write_com(0x80+0x4b);
display(table3);
}
else if(led0)
{
write_com(0x80+0x4b); //按1602的地址單個寫入數據
display(table4);
write_com(0x80+0x4f);
write_data(table1[8]); //按1602的地址單個寫入數據
write_com(0x80+0x4e);
write_data(table1[8]);
}
}
}

原理圖和代碼都有了,仿真的準備工作就完了,現在正式進入仿真。

將代碼加載進單片機中,仿真結果如下圖:
03-2.PNG


03-3.PNG






評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:836924 發表于 2020-12-3 21:42 | 顯示全部樓層
程序貌似有很多問題呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲午夜视频在线观看 | 天天综合精品 | 午夜精品国产精品大乳美女 | 91看片在线观看 | 黄色在线免费观看视频 | 天天躁日日躁狠狠很躁 | 久久精品 | www.黄色网 | 亚洲精品一区二区三区在线观看 | 日韩成人精品 | 一级特黄视频 | 毛片av在线| 嫩草视频在线观看 | 国产精品免费在线 | 成人免费黄色大片 | 免费看黄色av| 国产99精品 | 久久视频一区 | 午夜黄色大片 | 四虎黄色网址 | 国产成人在线观看免费网站 | 日韩精品在线一区 | 99re在线 | 久热中文字幕 | 日本黄色免费视频 | 一区二区三区在线免费观看 | 手机看片在线 | 免费亚洲视频 | 亚洲第一色 | 国产精品久久久久久久久 | 秋霞一区二区 | 激情做爰呻吟视频舌吻 | 在线黄色av| 欧美手机在线 | 国产尤物视频 | 国产成人午夜高潮毛片 | 成人爽a毛片一区二区免费 亚洲午夜在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 国产一区中文字幕 | 精品免费在线观看 | 亚洲一区免费 |