各位帮请大神帮我p图系列请看看是怎么回事

各位大神帮我看看这是怎么回事 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
各位大神帮我看看这是怎么回事
12:55:00  
刚学单片机不就,写了一个时钟程序,在proteus仿真中运行良好,但是将程序下载到实际的硬件上时,数码管会闪烁,实在是不知道怎么回事了,特来求助
#include&reg52.h&
/*------功能位设置-----------*/
sbit dula = P2^0;/*段锁存位*/
sbit wela = P2^1;/*位锁存位*/
sbit keyHour = P2^2;
sbit keyMinute = P2^3;
sbit keySecond = P2^4;
sbit watchStop = P2^5;
/*---------------------------*/
/*------------------函数初始化-----------------------------*/
void display(unsigned char,unsigned char);/*数码管显示程序*/
void delay(unsigned int);/*延时子程序*/
void timeLogic();/*时钟运行逻辑*/
void giveTimeTableSetValue();/*给时间码表设置值*/
void initTime0();/*定时器0初始化*/
void keyCheck();
/*---------------------------------------------------------*/
/*----------相关码表-----------------*/
/*段码表*/
unsigned char code SEGCCTable [] ={
& & 0x3f,0x06,0x5b,0x4f,
& & 0x66,0x6d,0x7d,0x07,
& & 0x7f,0x6f,0x77,0x7c,
& & 0x39,0x5e,0x79,0x71
/*位码表*/
unsigned char code WELATable [] = {
& & 0xFE,0xFD,0xFB,0xF7,
& & 0xEF,0xDF,0xBF,0x7F
unsigned char time[8];
/*-----------------------------------*/
/*--------变量的定义-----------------*/
/*用于循环计数*/
unsigned char timeC/*定时器计数*/
unsigned char hour=23; /*小时*/
unsigned char minute=59; /*分钟*/
unsigned char second=0; /*秒*/
/*-----------------------------------*/
/*主函数*/
& & initTime0();/*定时器初始化*/
& & while(1){
& && &&&keyCheck();
/*显示子函数*/
void display(unsigned char duCode,unsigned char weCode){
& && &&&P0 = duC
& && &&&dula = 1;
& && &&&dula = 0;& && &&&
& && &&&P0 = weC
& && &&&wela = 1;
& && &&&wela = 0;
/*延时子函数*/
void delay(unsigned int xms){
& & unsigned int i,j;
& & for(i=0;i&i++)
& && &&&for(j=0;j&110;j++);
/*时钟逻辑程序*/
void timeLogic(){
& && && && &if(timeCount == 20){
& && && && && && &&&timeCount = 0;
& && && && && && &&&second++;
& && && && && && &&&if(second==60){
& && && && && && && && &minute++;
& && && && && && && && &second = 0;
& && && && && && &&&}
& && && && && && &&&if(minute==60){
& && && && && && && && &hour++;
& && && && && && && && &minute=0;
& && && && && && &&&}
& && && && && && &&&if(hour==24)
& && && && && && && && &hour = 0;
& && && && && & }
/*给时间表赋值子程序*/
void giveTimeTableSetValue(){
& && && && &time[0] = SEGCCTable[hour/10];
& && && && &time[1] = SEGCCTable[hour%10];
& && && && &
& && && && &time[2] = 0x40;
& && && && &
& && && && &time[3] = SEGCCTable[minute/10];
& && && && &time[4] = SEGCCTable[minute%10];
& && && && &time[5] = 0x40;
& && && && &time[6] = SEGCCTable[second/10];
& && && && &time[7] = SEGCCTable[second%10];
/*定时器0初始化*/
void initTime0(){
& & TMOD |= 0x01;
& & //TH0 = 0x00;
& & //TL0 = 0x00;
& & EA = 1;&&/*总中断*/
& & ET0 = 1;& & /*定时器0中断打开*/
& & TR0 = 1;& & /*定时器0开关打开*/
void time0Inturp()interrupt 1 {
& & TH0=()/256;
& & TL0=()%256;
& & timeCount++;
& & timeLogic();& &
& && &&&giveTimeTableSetValue();
& && &&&/*数码管显示逻缉(紧限时钟)*/
& && &&&for(temp=0;temp&8;temp++){
& && && && &display(time[temp],WELATable[temp]);
& && && && &delay(1);
& && && && &P0 = 0xFF;
& && && && &wela = 1;
& && && && &wela = 0;
/*按键检测程序*/
void keyCheck(){
& && &&&if(keyHour==0){
& && && && &delay(10);
& && && && &if(keyHour==0){
& && && && && & while(keyHour==0);
& && && && && & hour++;//小时
& && && && && & if(hour==24)
& && && && && && && && &hour=0;
& && && && &}
& && &&&if(keyMinute==0){
& && && && &delay(10);
& && && && &if(keyMinute==0){
& && && && && & while(keyMinute==0);
& && && && && & minute++;//分钟
& && && && && & if(minute==60)
& && && && && && && && &minute=0;
& && && && &}
& && &&&if(keySecond==0){
& && && && &delay(10);
& && && && &if(keySecond==0){
& && && && && & while(keySecond==0);
& && && && && & second++;//秒
& && && && && & if(second==60)
& && && && && && && && &second=0;
& && && && &}
& && &&&/*这段程序可要可不要,就是让数码管不显示,对应的P2.5口的按键*/
& && &&&if(watchStop==0){
& && && && &delay(10);
& && && && &if(watchStop==0){
& && && && && & while(watchStop==0);
& && && && && & TR0 = ~TR0;
& && && && &}
附上仿真图片一张。。。
(240.92 KB, 下载次数: 0)
12:49 上传
13:47:11  
/*显示子函数*/,里面数码管扫描要短暂的延时
15:09:02  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
应该是延时函数的时间设定值太小!
18:04:40  
/*显示子函数*/,里面数码管扫描要短暂的延时
这个延时我在调用这个函数的时候已经加了,就在中断程序里的那个for循环里面有个delay(1);
18:06:13  
应该是延时函数的时间设定值太小!
试过了,调的越高越闪烁
延时时间短的话,扫描一次的时间就会短,如果太高的话,你就看不到闪烁了,如果时间长的话,每个数码管来回闪烁。&
18:08:24  
求解惑啊,都疑惑了两天了
18:15:11  
试一下把显示函数写在主函数里面!键盘放在中断里!
09:40:47  
像这种数码管显示&&一般按键之类的尽量少用中断& &主函数里面处理就可以了&&中断时用在很重要的地方的& &中断里面还延时&&程序结构太混乱了
11:10:13  
试一下把显示函数写在主函数里面!键盘放在中断里!
我试过了,按按键的时候会影响现实。。。
11:14:39  
像这种数码管显示&&一般按键之类的尽量少用中断& &主函数里面处理就可以了&&中断时用在很重要的地方的& &中 ...
弱弱的说一句,我是写java的,这个程序中带有我写java的一些习惯,所以看起来会比较混乱,我想知道我写的这个程序在仿真里面行而放到真实硬件上就不行,我刚刚学不久,练习一下中断的使用,你说的很有价值,我以后会注意
13:22:35  
看了一下你的按键延时用了大概30个毫秒延时 的确不适合放在中断里使用!
15:12:13  
弱弱的说一句,我是写java的,这个程序中带有我写java的一些习惯,所以看起来会比较混乱,我想知道我写的 ...
仿真软件是根据硬件来模拟的,不可能做到跟硬件完全一样,只能作为参考,但如果与硬件效果不一样,只能说明你的程序有问题了。
19:39:57  
试试在/*显示子函数*/送段选和位选值的中间加上短暂的延时,再加上“P0=0xFF”
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
版权所有 (C) 深圳华强聚丰电子科技有限公司人次在我爱卡申请信用卡
人次申请贷款 255家 银行和金融机构授权合作
后使用快捷导航没有帐号?
查看: 624|回复: 15
请各位大神进来帮我看看是怎么回事?????????????????
阅读权限40
普卡IV级, 经验值 957, 距离下一级还需 242 经验值
之前有几期账单都是还进去两万多,然后过了二十几分钟分几笔刷出来,不是封顶机,然后昨天还这期25号的账单还了8300进去,然后刷的时候提示交易金额超限,刷8000刷不出,3000多也是,今天刷198也刷不出,1.25的,打电话问银行,意思是什么风险用卡。。。但是额度没降,可用还是有8000多,有遇到过类似情况的吗?什么时候可以用呢,唉。。。。。很急
阅读权限80
进去出不来,还完封卡的节奏
阅读权限40
进去出不来,还完封卡的节奏
但是没有逾期,一点余地都没有了么???
阅读权限80
但是没有逾期,一点余地都没有了么???
打电话问客服& && && && && && && && &&&
阅读权限40
打电话问客服
客服说没权限操作
阅读权限40
??????????????????????????
阅读权限80
海没遇到过这种情况
招行50k,工行10k,广发24k其他已销完。
阅读权限40
??????????????
阅读权限150
楼主被风控了。。
工银百夫长黑金卡
招行百夫长黑金卡
民生百夫长黑金卡
阅读权限40
????????????????
阅读权限80
正常用卡,就狠狠教训
阅读权限40
?????????????????
阅读权限40
????????????????????
阅读权限40
??????????
阅读权限40
唉,可怎么办啊。。。。
阅读权限40
有遇到这种情况的吗?
热门信用卡中心
热门信用卡申请
信用卡问答
Powered by Discuz! X3&
我爱卡客服

我要回帖

更多关于 撩上大神 菇凉请负责 的文章

 

随机推荐