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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【单片机学习】共阳数码管的动态显示

發布時間:2024/3/24 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【单片机学习】共阳数码管的动态显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

在8位數碼管中,前面4位顯示年份“2018”,接著2位是分割符“—”,最后兩位是月份,從1月份開始,每隔一段時間加1個月,到12月之后又從1月份開始遞增,如此往復。

#include "reg52.h"unsigned char month=1; //定義月份//共陽極數碼管 unsigned char code duan_code[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};//選擇鎖存器 void Select_HC573(unsigned char n) {switch(n){case 4:P2=(P2&0x1f)|0x80;break;case 5:P2=(P2&0x1f)|0xa0;break;case 6:P2=(P2&0x1f)|0xc0;break;case 7:P2=(P2&0x1f)|0xe0;break;} }void SEG_Bit(unsigned char pos,unsigned char value) {Select_HC573(6); //位選P0=0x01<<pos;Select_HC573(7); //段選P0=value; }//數碼管延時函數 void Delay_SEG(unsigned int t) {while(t--); }//數碼管靜態顯示 void SEG_Dynamic() {SEG_Bit(0,duan_code[2]); //2Delay_SEG(500);SEG_Bit(1,duan_code[0]); //0Delay_SEG(500);SEG_Bit(2,duan_code[1]); //1Delay_SEG(500);SEG_Bit(3,duan_code[8]); //8Delay_SEG(500);SEG_Bit(4,duan_code[16]); //-Delay_SEG(500);SEG_Bit(5,duan_code[16]); //-Delay_SEG(500);SEG_Bit(6,duan_code[month/10]); //月份的十位Delay_SEG(500);SEG_Bit(7,duan_code[month%10]); //月份的個位Delay_SEG(500); }void delay(unsigned char t) {while(t--){SEG_Dynamic();}}void main() {while(1){SEG_Dynamic();month++;if(month>12){month=1;}delay(100);} }

總結

以上是生活随笔為你收集整理的【单片机学习】共阳数码管的动态显示的全部內容,希望文章能夠幫你解決所遇到的問題。

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