问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机的课程设计

发布网友 发布时间:2022-05-21 18:43

我来回答

1个回答

热心网友 时间:2023-08-18 21:37

一年前写的,看看吧,好像是6位数码管,三个按键的
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/****************************************/
uchar code temp[]={0xbd,0x84,0xd9,0xcd,0xe4,0x6d,0x7d,0x85,0xfd,0xed,0x0};
uchar code tempwe[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
/***************************************/
/****************位定义***************/
sbit la=P2^6; //数码管段选
sbit wela=P2^7;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
uint ms;
uchar s,min,id;
void timer0_init();
void display();
void delay(uint xms);
void keyscan();
void main()
{
timer0_init();
while(1)
{
keyscan();
display();
if(id==1)
{
TR0=1;
}
else
{
TR0=0;
}
}
}
void timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ms++;
if(ms==1000)
{
ms=0;
s++;
if(s==60)
{
s=0;
min++;
if(min==10)
{
min=0;
s=0;
ms=0;
}
}
}
}

void keyscan()
{
if(key1==0)
{
if(key1==0)
{
while(key1==0)
{
TR0=1;
display();
}
TR0=0;
}
}
if(key2==0)
{
if(key2==0)
{
while(key2==0)
{
display();
}
id++;
if(id==2)
{
id=0;
}
}
}
if(key3==0)
{
if(key3==0)
{
while(key3==0)
{
display();
}
if(TR0!=1)
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
ms=0;
s=0;
min=0;
}
}
}

}
void timer0_init()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=0;
}

void delay(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void display()
{
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[1]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[min];//要显示的数
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[1]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=0x02; //要显示的数//小数点显示
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[2]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[s/10];//要显示的数
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[3]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[s%10];//要显示的数
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[3]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=0x02; //要显示的数//小数点显示
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[4]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[ms/100];//要显示的数
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[5]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[ms%100/10];//要显示的数
la=0;
delay(1);
P0=0x0;
la=0;
P0=0xff;
wela=1;
P0=tempwe[6]; //要显示的数码管
wela=0;
P0=0x0;
la=1;
P0=temp[ms%100%10];//要显示的数
la=0;
delay(1);
}
求采纳为满意回答。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蒲公英根能过夜喝吗 ...会突然醒来,很难受,全身不能动,连嘴巴也张不开,眼睛... 适合N刷的原耽作品有哪些? bl原耽超好看的推荐记录本值得n刷 铝窗有哪些牌子好 在枣树,山楂树上吃树叶的那种虫子叫什么名字? 光纤面板特点 光纤桌面盒简介 哪些品牌的水光针物美价廉? ...被人领到了聊城铁路医院门诊说有专家坐诊,是被骗了吗? 单片机课程设计-学生信息显示与查询系统设计 单片机课程设计 单片机温度的检测与显示的设计 51单片机课程设计 格力冰箱晶弘213价格多钱 在哪些时间段存钱银行的利息是最高的呢? 才知道银行存钱也有讲究,选对时间,存款利率会高,你知道吗? 华硕笔记本中毒了,无法开机,怎么办?(内详) win7旗舰版系统正版系统中毒怎么办 Win7 系统中毒崩溃如何解决? 求高手!!我的电脑是win7系统~中了病毒后开机就显示windows未能启动 原因可能是最近更改了硬件或软件。。 如何屏蔽公众文章的广告 王者怎么删除微信好友 怎么把王者好友删掉? 微信好友已经删除了,王者荣耀里面还是显示要怎么办才能把它去掉? 微信已删除好友,但王者里的微信好友还有他,关注粉丝没有他,怎么让他消失游戏的微信好友里? 关于sql附加数据库文件 在SQL中附加数据库有哪几种方法? sql数据库附加 大数据与个人信息保护 人的心态有哪些? “简约不简单”是哪位设计大师讲的 求简约不简单 下一句 利郎商务男装广告词是:大千世界多则惑,简则明,利郎商务男装,简约而不简单。其代言人是陈道明。广告中运 利郎现在的年轻化路线真的不错,我弟弟最近还买了一件他们的《一人之下》联名T恤? 是简单而不简约还是简约而不简单 利郎男装的轻商务系列好好看啊,有没有人跟我一样是死忠粉的? 利郎衣服的设计如何? 有物理加密环的DVD光盘如何复制到电脑上? 怎么样把加密DVD复制到电脑,然后可以在手机上播放的。 怎么 绑鞋带 求马云创业时期这张照片的高清版本? 马云和执勤交警合影被看成被捕了吗? 这种变颜色的照片 淘宝退货问题咨询 有关于淘宝退货问题? 关于退货的问题 关于退货问题 植物叶子会变色图片及名称大全集 如果突然就登不上去了 用密码和验证码都没用怎么办? 我的登不上、叫好友发了验证码怎么还不行