久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機Proteus仿真4位數碼管顯示
[打印本頁]
作者:
chenbingjy
時間:
2024-5-25 21:18
標題:
單片機Proteus仿真4位數碼管顯示
7.jpg
(246.42 KB, 下載次數: 18)
下載附件
2024-5-25 21:17 上傳
proteus仿真圖
代碼:
#include<reg51.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define Hidden 11
#define CmdDat 0
sbit Clock=P3^3;
sbit Data=P3^2;
const uint TimeOver=800;
uchar code DispCode[]={
//0x28,0xee,0x32,0xa2,0xe4,
// 0xa1,0x21,0xea,0x20,0xa0,
// 0xff
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xF8,0x80,0x90,0xff
};
uchar code DispBit[]={0x7f,0xfe,0xef,0xdf};
uint DispData=0;
uchar DispBuf[4]={0,0,0,0};
uchar RecDatCount;
uchar bdata RecDat;
sbit RecDat0=RecDat^0;
bit renovate;
bit ReciveMark=1;
uchar DotCnt=1;
uchar MaskSing=0;
bit StartOverCount;
bit RecEnd;
uint OverCount;
/**********************************************
uS延時函數
**********************************************/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/**********************************************
mS延時函數
***********************************************/
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延時1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
void ReciveDate() interrupt 2
{
ReciveMark=0;
if(!StartOverCount)
StartOverCount=1;
RecDatCount++;
RecDat=RecDat<<1;
if(Data)
RecDat0=1;
else
RecDat0=0;
if(RecDatCount==8)
{
MaskSing=RecDat;
}
else if(RecDatCount==16)
{
if(MaskSing==CmdDat)
DispData=RecDat*256;
}
else if(RecDatCount==24)
{
if(MaskSing==CmdDat)
DispData+=RecDat;
}
else if(RecDatCount==32)
{
if(MaskSing==CmdDat)
DispData=RecDat;
renovate=1;
RecDatCount=0;
StartOverCount=0;
OverCount=0;
RecEnd=1;
RecDat=0;
}
}
void Timer0() interrupt 1
{
uchar temp;
static uchar Count;
if(StartOverCount)
OverCount++;
Count++;
if(Count==4)
Count=0;
P3|=0XB1;
temp=DispBit[Count];
P3&=temp;
temp=DispBuf[Count];
P1=DispCode[temp];
if(DotCnt==(4-Count))
P1&=0XDF;
TH0=-(600/256);
TL0=-(600%256);
}
void main()
{
uchar temp0,temp1,temp2,temp3;
uint temp;
TH0=-(600/256);
TL0=-(600%256);
TR0=1;
IT1=1;
EA=1;
ET0=1;
EX1=1;
PT0=0;
PX1=1;
renovate=1;
P1=0;
Clock=1;
Data=1;
//////////////////////
DispData=9999;
//DispData=8888;
//DispData=654;
for(;;)
{
if(renovate)
{
temp=DispData;
temp%=10000;
temp3=temp%10;
temp/=10;
temp2=temp%10;
temp/=10;
temp1=temp%10;
temp/=10;
temp0=temp%10;
if((temp0==0)&&(DotCnt<3))
DispBuf[0]=Hidden;
else
DispBuf[0]=temp0;
if((temp0==0)&&(temp1==0)&&(DotCnt<2))
DispBuf[1]=Hidden;
else
DispBuf[1]=temp1;
if(((temp0==0)&&(temp1==0)&&(temp2==0)
&&(DotCnt<1))||((temp3==0)&&(temp2==0)
&&(DotCnt>2)))
DispBuf[2]=Hidden;
else
DispBuf[2]=temp2;
if((temp3==0)&&(DotCnt>1))
DispBuf[3]=Hidden;
else
DispBuf[3]=temp3;
renovate=0;
}
if(OverCount>=TimeOver)
{
RecDatCount=0;
StartOverCount=0;
OverCount=0;
RecEnd=1;
}
}
}
復制代碼
proteus仿真文件及C工程
通用顯示器.rar
(199.44 KB, 下載次數: 7)
2024-5-25 21:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
fqs_lda
時間:
2024-12-14 23:55
如果是實際直接接引腳的話電流會不會不夠?
作者:
bigcat1980
時間:
2025-5-27 16:55
顯示1234不行,
作者:
cy009
時間:
2025-5-30 18:18
一個簡單的4位數碼管顯示,程序搞得這么復雜:
1.既然使用了定時器中斷掃描,程序中就不要再出現延時函數。
2.定義了很多無效的變量,干擾了對程序的理解,也不利用提煉成模塊化。
總之,程序并不是針對4位數碼管開發出來的模塊化程序,像是從某個項目中硬搬出來的。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品久久久久久久免费大片
|
国产高清一区二区三区
|
国产 日韩 欧美 中文 在线播放
|
a毛片视频网站
|
欧美成人猛片aaaaaaa
|
午夜电影福利
|
日本高清不卡视频
|
欧美一级二级在线观看
|
日本爱爱
|
成人久久18免费网站
|
91精品国产一区二区在线观看
|
国产在线精品一区二区三区
|
国产a爽一区二区久久久
|
欧美二区三区
|
国精产品一区二区三区
|
狠狠爱综合网
|
久久精品亚洲欧美日韩精品中文字幕
|
日韩国产精品一区二区三区
|
91网站在线播放
|
亚洲精品乱码久久久久久蜜桃91
|
天堂久久一区
|
五月天婷婷狠狠
|
国产中文字幕在线
|
国产 欧美 日韩 一区
|
一级毛片视频在线观看
|
久热久热
|
一区二区三区国产好的精
|
99精品视频免费观看
|
国产在线中文字幕
|
国产综合区
|
欧美影院
|
www.887色视频免费
|
亚洲一区免费
|
欧美在线视频一区二区
|
亚洲欧美在线视频
|
不卡一二区
|
久久久久久国产精品免费免费
|
国产视频久久久
|
国产精品免费小视频
|
久久国产高清
|
一级a性色生活片久久毛片波多野
|