日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于AT89C52单片机的1602液晶显示程序

發布時間:2023/12/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于AT89C52单片机的1602液晶显示程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于AT89C52單片機的1602液晶顯示程序

1602液晶顯示

1.keyscan.c

2.boardinit.c

3.delay.c

4.clock.c

5.74hc595.c

6.1602led.c

#include<reg52.h> #include "boardinit.h" #include "keyscan.h" #include "1602led.h" #include "delay.h" #include "74hc595.h" #include "clock.h"#define uchar unsigned char #define uint unsigned intuchar time=0; uchar shi,fen,miao; void write_data_160238(uchar data_1602); void main() {TMOD=0x10;TH1=(65536-5000)/256;TL1=(65536-5000)%256;ET1=1;TR1=1;EA=1; boardinit(); //板卡初始化 lcdinit_1602(); //1602初始化Disp_1602(1,1," 2019-05-20 ",16);Disp_1602(1,2," 00:00:00 ",16);while(1){ keyscan(); clock();}} void zd() interrupt 3 {TH1=(65536-50000)/256;TL1=(65536-50000)%256;time++;} ##### keyscan.c#include <reg52.h> #include "keyscan.h" #include "74hc595.h" #include "1602led.h" #include "delay.h"sbit s1 = P3^7; //設置按鍵 sbit s2 = P3^4; //時間- 按鍵 sbit s3 = P3^5; //時間+ 按鍵 sbit s4 = P3^0;uchar num,moshi;void keyscan() { s4=0;if(s1==0){delay(1);if(s1==0){while(!s1);moshi++;if(moshi==1){write_order_1602(0x80+0x40+0x0b);write_order_1602(0x0f);TR1=0;}if(moshi==2){write_order_1602(0x0f);write_order_1602(0x80+0x40+0x08); TR1=0;}if(moshi==3){write_order_1602(0x0f);write_order_1602(0x80+0x40+0x05); TR1=0;} if(moshi==4){write_order_1602(0x0c);TR1=1;if(moshi==4){moshi=0;}} }} if (moshi==1){ if(s2==0){delay(1);if(s2==0){while(!s2);miao++;if(miao==60){miao=0;}write_twoline_1602(11,miao);write_order_1602(0x80+0x40+0x0b);} }if(s3==0){delay(1);if(s3==0){while(!s3);miao--;if(miao==(-1)){miao=59;}write_twoline_1602(11,miao);write_order_1602(0x80+0x40+0x0b); } }} if (moshi==2){ if(s2==0){delay(1);if(s2==0){while(!s2);fen++;if(fen==60){fen=0;}write_twoline_1602(8,fen);write_order_1602(0x80+0x40+0x08); } }if(s3==0){delay(1);if(s3==0){while(!s3);fen--;if(fen==(-1)){fen=59;}write_twoline_1602(8,fen);write_order_1602(0x80+0x40+0x08); } }} if (moshi==3){ if(s2==0){delay(5);if(s2==0){while(!s2);shi++;if(shi==24){shi=0;}write_twoline_1602(5,shi);write_order_1602(0x80+0x40+0x05); } }if(s3==0){delay(1);if(s3==0){while(!s3);shi--;if(shi==(-1)){shi=24;}write_twoline_1602(5,shi);write_order_1602(0x80+0x40+0x05); } }} }##### boardinit.c /*晶振11.0592MHz */#include <reg52.h> #include "74hc595.h" #include "boardinit.h"sbit duanxuan=P2^5; // 數碼管,的段選使能,1 通 0關 sbit weixuan=P2^6; // 數碼管,的位選使能,1 通 0關void boardinit() {duanxuan=1; // 數碼管,的段選使能,1 通 0關weixuan=1; //數碼管,的位選使能,1 通 0關P0=0x00; //P0口送清零,關LED數碼管的必要數據準備。duanxuan=0; // 數碼管,的段選使能,1 通 0關weixuan=0; //數碼管,的位選使能,1 通 0關write_byte_74hc595(0x40); //選通8位發光二極管控制芯片u6(74HC573)鎖存器的使能端 P1=0xff; //P1口送全1,關8位發光二極管的必要數據準備。//寫完此句理論上8個發光二級管都會熄滅,因74HC595數據口復用了P1.0故P1.0的二極管可能不能被熄滅。write_byte_74hc595(0x00); //關閉8位發光二極管控制芯片u6(74HC573)鎖存器的使能端,把P1口數據保存(既關發光二極管)。 }##### delay.c #include "delay.h"void delay(uint z) {uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--); } /* void delay_ds18b20(uint time) {uint i,j;for(i=0;i<time;i++)for(j=0;j<1;j++); }*/##### clock.c#include "1602led.h" #include "clock.h" void clock() { if(time==19){time=0; miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}write_twoline_1602(5,shi);}write_twoline_1602(8,fen);}write_twoline_1602(11,miao);}}##### 74hc595.c #include <reg52.h> #include "74hc595.h" #include "delay.h"sbit data_595si =P1^0; //595數據輸入口 sbit clk_595srck =P1^4; //595數據寫進移位寄存器時鐘輸入口 sbit e_595rck =P2^3; //595移位寄存器,數據送輸出的時鐘void write_byte_74hc595(uchar dat) //74hc164芯片寫一字節數據函數 {uchar i;e_595rck=0; //給595RCK低電平 for(i=0;i<8;i++){clk_595srck=0; //給595SRCK低電平 data_595si=(dat<<i)&0x80; //把我們要使用的數據進行左移處理,保證最終輸出的數據與 我們 uchar dat 對應clk_595srck=1; //給595SRCK高電平 }e_595rck=1; //給595SRCK高電平,既把 DAT數據數據送到輸出data_595si=1;//因該數據口和別的電路共用,因此當74hc595使用完后,置“1”解除沖突 } ##### 1602led.c #include <reg52.h> #include "1602led.h" #include "delay.h" #include "74hc595.h"sbit rs_1602=P2^5; //1602rs信號 sbit rw_1602=P2^6; //1602rw信號 sbit e=P2^4; /* void write_zl(uchar zl) {rs=0;P0=zl;delay(5);e=1;delay(5);e=0; }void write_sj(uchar sj) {rs=1;P0=sj;delay(5); e=1;delay(5);e=0; } */ void write_order_1602(uchar order_data) {e=0;rs_1602=0;P0=order_data;e=1;delay(1);e=0; }void write_data_1602(uchar data_1602) { e=0;rs_1602=1;P0=data_1602;e=1;delay(1);e=0; }//功能:按指定位置顯示一串字符 //輸入:列顯示地址x_1602(取值范圍1-16) 行顯示地址y_1602(取值范圍1-2), 指定字符串指針*p_1602,要顯示的字符個數count_1602 (取值范圍1-16) // 子函數使用例子: Disp_1602(1,1," TEMP: . ",16); //在1602第一行第一列寫16個字符,既字符串數據 void Disp_1602(unsigned char x_1602,unsigned char y_1602,unsigned char *p_1602,unsigned char count_1602) { unsigned char i; for(i=0;i<count_1602;i++){if (1 == y_1602) x_1602 |= 0x80; //當要顯示第一行時地址碼+0x80;else x_1602 |= 0xC0; //在第二行顯示是地址碼+0xC0;write_order_1602(x_1602-1);write_data_1602(*p_1602);x_1602++; p_1602++;} } void write_oneline_1602(uchar add_1602,uint date_1602) {uchar ge,shi;shi=date_1602/10;ge=date_1602%10;write_order_1602(0x80+add_1602-1);write_data_1602(0x30+shi);write_order_1602(0x80+add_1602);write_data_1602(0x30+ge); //在1602上寫時間函數 即在1602第二行指定位置上寫顯示}void write_twoline_1602(uchar add_1602,uint date_1602) {uchar shi,ge;shi=date_1602/10;ge=date_1602%10;write_order_1602(0x80+0x40+add_1602-1);write_data_1602(0x30+shi);write_order_1602(0x80+0x40+add_1602);write_data_1602(0x30+ge); //在1602上寫時間函數 即在1602第二行指定位}void lcdinit_1602() {rw_1602=0;e=0;write_byte_74hc595(0X02);//關流水燈使能 關蜂鳴器 光繼電器 打開1602背光打開 write_order_1602(0x38); //液晶設置不判忙模式write_order_1602(0x0c); //開顯示 不顯示光標write_order_1602(0x06); //當寫一個字符是,地址指針加 1write_order_1602(0x01); //顯示清屏 }

這些項目的實現都通過本人親自測試運行,也是自己學習中知識的一點一點積累,整理不易,希望能幫到大家,不足之處大家多多交流。

QQ:1678957377

郵箱:1678957377@qq.com

總結

以上是生活随笔為你收集整理的基于AT89C52单片机的1602液晶显示程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一av在线 | h视频在线免费观看 | 日韩av一卡二卡 | 潘金莲三级80分钟 | 久久精品亚洲一区 | 国产精品2区| 日韩福利在线播放 | 山外人精品影院 | www.一起操 | 色综合久久88色综合天天6 | 黄色香港三级三级三级 | 中文字幕超清在线免费观看 | 色综合久久综合 | 欧美日韩一区二区区 | 午夜精品av | 欧美性激情| 久久免费看少妇高潮 | 欧美日韩一区二区三区在线播放 | 亚洲狠狠婷婷综合久久久久图片 | 亚洲av无码久久精品狠狠爱浪潮 | 星空无限mv国产剧入选 | 偷拍亚洲| 国产伦精品一区二区三区免费视频 | 在线视频导航 | 动漫av在线播放 | 亚洲男人天堂久久 | 国产113页 | 精品国产乱码一区二区 | 91手机在线观看 | 国产同性人妖ts口直男 | 国产成人无码a区在线观看视频 | 狠狠五月婷婷 | 黄色一级视频免费 | 99在线观看 | 青青青在线免费 | 97久草 | 69国产精品视频 | 亚洲精品精品 | 四虎精品 | av拍拍拍| 欧美一区二区三区四区在线 | 中文字幕一区二区三区免费看 | 午夜成人免费视频 | 欧美福利视频导航 | 交专区videossex非洲 | 东方伊甸园av在线 | 男生插女生视频在线观看 | 日韩视频在线免费 | 影音先锋成人资源网站 | 久久久久久网址 | 亚洲成人国产精品 | 国产精品第一区 | 一级黄色大毛片 | 日韩精品极品 | 亚洲欧美第一页 | 外国黄色网 | a级一a一级在线观看 | 人人看超碰 | 精品人妻一区二区三区日产乱码卜 | 久久久久久av无码免费看大片 | 免费视频一二三区 | 一区二区精品久久 | 国产精品自拍99 | 91 高清 在线 制服 偷拍 | 免费成人在线看 | 成人性生交大片免费看vrv66 | 国产毛片毛片毛片 | 国产精品久久久久久久久久久久久久 | 精品亚洲一区二区三区四区五区高 | 国产真实乱人偷精品视频 | 欧美三级午夜理伦三级小说 | 日本一区二区在线不卡 | 无遮挡毛片 | 午夜免费成人 | 黑人乱码一区二区三区av | 欧美一级黄色片子 | 亚洲精品三级 | 免费看的黄色小视频 | 日韩人妻精品一区二区 | 玖玖在线免费视频 | 国产精品一区二区三区久久久 | 国产精品视频123 | 99黄色片| 91国内| 国产高清久久 | 国产麻豆一精品一av一免费 | 国产精品一区电影 | 日韩av在线播放不卡 | 小日子的在线观看免费第8集 | 偷拍亚洲色图 | 欧美黄色短片 | 三上悠亚亚洲一区 | 狠狠操导航 | 亚洲国产影院 | 校园春色亚洲 | 丰满少妇中文字幕 | 深夜福利免费在线观看 | 婷婷成人综合网 | 日本色偷偷|