久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機編譯錯誤問題求解
[打印本頁]
作者:
a're阿熱特hat
時間:
2019-6-23 22:06
標題:
51單片機編譯錯誤問題求解
QQ圖片20190623220520.png
(2.84 KB, 下載次數: 19)
下載附件
問題求解
2019-6-23 22:05 上傳
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define PIN0 P0 //數碼管段選端
#define PIN1 P2 //數碼管位選端
#define PIN3 P2 //十分位數碼管的段碼端
sbit start=P3^0; //啟動/暫停按鈕
sbit reset=P3^1; //復位按鈕
uint cnt=0; //1s的次數的計數值
uint num=0; //進入中斷次數的計數值(一次50ms)
uint num1=0; //0.1s的次數的計數值
uchar code table[]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};
//不帶小數點的共陰極數碼管段碼0-9
uchar code table1[]={0xbf,0x86,
0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
//帶小數點的共陰極數碼管段碼0-9
<span style="font-size:14px;">
char code table2[]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//不帶小數點的共陽極數碼管段碼0-9
void Display(uint w,uint a,uint b,uint c,uint d); //聲明顯示函數
void InitTimer0(); //聲明定時器初始化函數
void Delayms(uint x); //聲明延時函數
void main()
{
uint ms100=0; //秒的十分位
uint s,s1,min,min1,minu=0;
//依次是秒的個位,秒的十位,分的個位,分的十位
InitTimer0(); //初始化定時器
while(1) //進入死循環(huán)
{
if(start==0) //檢測啟動/暫停鍵是否按下
Delayms(20); //延時消抖
{
if(start==0) //消抖之后再次檢測
{
TR0=!TR0; //定時器的控制位取反
while(!start); //等待按鍵釋放
}
}
if(reset==0) //檢測復位鍵是否按下
{
Delayms(20); //延時消抖
if(reset==0) //消抖之后再次檢測
{
num=0;
num1=0; //進入中斷次數值清0
ms100=0; //十分位的計數值清0
cnt=0; //秒的計數值清0
minu=0; //分的計數值清0
while(!reset); //等待按鍵釋放
}
}
if(num1>=2) //檢測是否達到0.1s,(兩個50ms)
{
num1=0; //進入中斷次數值清零
ms100++; //秒的十分位的計數值加1
if(ms100>=10) //若秒的十分位計數值達到10
{
ms100=0; //清零秒的十分位的計數值
num1=0;//進入中斷次數值置0
}
}
if(num>=20) //判斷計時時間是否達到1s(20個50ms)
{
num=0; //進入中斷次數值置0
cnt++; //秒的計數值加1
if(cnt>=60) //判斷是否達到60s
{
cnt=0; //若達到60s,將秒的計數值置零
minu++; //分的計數值加1
if(minu>=60) //判斷是否達到60分鐘,</span><span style="font-family:Arial, Helvetica, sans-serif;"><span style="font-size:10px;">一般秒表是用不到60分的,這是為了程序的嚴謹性</span></span><span style="font-size:14px;">
{
TR0=!TR0; //達到60分鐘則關閉定時器并清零所有的計數值
num1=0;</span><span style="font-size:14px;"> </span><span style="font-size:14px;">
num=0;
ms100=0;
cnt=0;
minu=0;
}
}
}
s=cnt%10; //從秒的計數值里面分離秒的個位
s1=cnt/10; //從秒的計數值里面分離秒的十位
min=minu%10; //從分的計數值里面分離分的個位
min1=minu/10; //從分的計數值里面分離分的十位
Display(ms100,s,s1,min,min1); //顯示這5個數
}
}
void InitTimer0() //定時器初始化函數
{
TMOD=0x01; //選擇定時器0的工作方式1
TH0=(65536-45872)/256; //裝初值(定時50ms),晶振11.0592MHz
TL0=(65536-45872)%256;
EA=1; //打開總中斷
ET0=1; //打開定時器中斷
TR0=0; //先不要啟動定時器
}
void TIMER0() interrupt 1 //定時器中斷服務函數
{
TH0=(65536-45872)/256; //重裝初值
TL0=(65536-45872)%256;
num++; //讓進入中斷次數值加1,用于判斷是否達到1s
num1++; //讓進入中斷次數值加1,用于判斷是否達到0.1s
}
void Delayms(uint x) //延時xms
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void Display(uint w,uint a,uint b,uint c,uint d) //定義顯示函數
{
PIN3=table2[w]; //秒的十分位的段選
Delayms(5);
PIN0=table[a]; //秒的個位的段選
PIN1=0x7f; //秒的個位的位選
Delayms(5);
PIN0=table[b]; //秒的十位的段選
PIN1=0xbf; //秒的十位的位選
Delayms(5);
PIN0=table1[c]; //分的個位的段選(帶小數點)
PIN1=0xdf; //分的個位的位選
Delayms(5);
PIN0=table[d]; //分的十位的段選
PIN1=0xef; //分的十位的位選
Delayms(5);
}
復制代碼
作者:
47okey
時間:
2019-6-24 15:26
程序沒細看。
23行、86行前面加上//,另外45行的中文!改為英文 !
作者:
阿怪狗HDD
時間:
2019-6-25 11:04
仔細看23行<span style="font-size:14px;"> 86行 </span><span style="font-size:14px;">
這是網頁設計的css代碼,以前經常用這玩意,是用來定義行里面的字體大小的~還有其他地方也有,有些被注釋掉了,復制代碼的時候還是謹慎點...
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩美女在线看免费观看
|
91精品麻豆日日躁夜夜躁
|
日韩欧美在线播放
|
91精品国产91久久久久久不卞
|
日韩毛片网
|
欧美精品第一页
|
色嗨嗨
|
久久精品免费观看
|
国产一区二区三区在线看
|
亚州成人
|
精品福利一区二区三区
|
久久久久国产精品
|
亚洲一区视频在线
|
人人看人人草
|
欧美日韩国产精品一区
|
久久精品亚洲精品国产欧美
|
99久久精品免费看国产高清
|
国产分类视频
|
在线观看你懂的网站
|
欧美区日韩区
|
成人福利在线
|
一区二区三区视频
|
成人精品国产免费网站
|
一区二区三区四区在线视频
|
激情黄色在线观看
|
成人福利视频
|
国产激情视频网址
|
亚洲aⅴ一区二区
|
一区二区精品
|
亚洲区一区二
|
日韩中文在线视频
|
国产成人精品在线
|
国产成人99久久亚洲综合精品
|
国产黄色免费网站
|
亚洲va欧美va天堂v国产综合
|
日本精品一区二区
|
91久操视频
|
国产精品性做久久久久久
|
九九导航
|
国产中的精品av涩差av
|
视频一区二区中文字幕
|