久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
這是定義的問(wèn)題嗎,用的c語(yǔ)言,怎么都改不對(duì)
[打印本頁(yè)]
作者:
mrj_142378
時(shí)間:
2025-1-7 21:36
標(biāo)題:
這是定義的問(wèn)題嗎,用的c語(yǔ)言,怎么都改不對(duì)
#include <reg51.h>
// 定義端口
sbit SNG = P2^0; // 南北綠燈
sbit SNY = P2^1; // 南北黃燈
sbit SNR = P2^2; // 南北紅燈
sbit EWG = P2^3; // 東西綠燈
sbit EWY = P2^4; // 東西黃燈
sbit EWR = P2^5; // 東西紅燈
// 數(shù)碼管顯示相關(guān)
uchar code SEG[4] = {0x01, 0x02, 0x04, 0x08}; // 數(shù)碼管位選
uchar code distab[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 數(shù)碼管顯示0~9
uint timeG, timeY, timeR; // 各燈顯示時(shí)間
uint state; // 狀態(tài)標(biāo)志
// 延時(shí)函數(shù)
void delay_ms(uint q)
{
uint i, j;
for (i = 0; i < q; i++)
for (j = 0; j < 110; j++);
}
// 定時(shí)器0初始化
void Timer0Init(void)
{
TMOD |= 0X01; // 定時(shí)器0模式1,16位定時(shí)器
TH0 = 0XFC; // 定時(shí)1ms
TL0 = 0X18;
EA = 1; // 開(kāi)總中斷
ET0 = 1; // 開(kāi)定時(shí)器0中斷
TR0 = 1; // 啟動(dòng)定時(shí)器0
}
// 定時(shí)器0中斷服務(wù)程序
void Timer0() interrupt 1
{
static uint count = 0; // 計(jì)數(shù)器,用于控制狀態(tài)轉(zhuǎn)換
TH0 = 0XFC; // 重裝初值
TL0 = 0X18;
count++;
if (count >= 1000) // 每秒更新一次狀態(tài)
{
count = 0;
switch (state)
{
case 0: // 南北綠燈,東西紅燈
timeG--;
if (timeG == 0)
{
state = 1;
timeY = 3;
}
break;
case 1: // 南北黃燈閃爍,東西紅燈
if (timeY > 0)
timeY--;
else
{
state = 2;
timeR = 90;
}
break;
case 2: // 南北紅燈,東西綠燈
timeR--;
if (timeR == 0)
{
state = 3;
timeY = 3;
}
break;
case 3: // 南北紅燈,東西黃燈閃爍
if (timeY > 0)
timeY--;
else
{
state = 0;
timeG = 20;
}
break;
}
}
// 數(shù)碼管顯示倒計(jì)時(shí)
uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF}; // 初始化為全滅
switch (state)
{
case 0:
displayDigit[0] = distab[timeG / 10];
displayDigit[1] = distab[timeG % 10];
break;
case 1:
displayDigit[0] = distab[timeY / 10];
displayDigit[1] = distab[timeY % 10];
break;
case 2:
displayDigit[0] = distab[timeR / 10];
displayDigit[1] = distab[timeR % 10];
break;
case 3:
displayDigit[0] = distab[timeR / 10];
displayDigit[1] = distab[timeR % 10];
break;
}
for (uchar i = 0; i < 4; i++)
{
P1 = SEG[i];
P0 = displayDigit[i];
delay_ms(1);
}
}
// 主函數(shù)
void main()
{
Timer0Init(); // 定時(shí)器初始化
timeG = 20; // 初始時(shí)間設(shè)置
state = 0; // 初始狀態(tài)
while (1)
{
// 主循環(huán)可以為空,因?yàn)樗胁僮鞫荚谥袛嘀型瓿?br /> }
}
顯示4.c(9): error C129: missing ';' before 'code'。
我搜到是沒(méi)有定義就在開(kāi)頭加了
#define uchar unsigned char;
#define uint unsigned int;
結(jié)果顯示4.c(109): error C202: 'P0': undefined identifier
作者:
WL0123
時(shí)間:
2025-1-8 06:48
改這樣就可以通過(guò)編譯
#include <reg51.h>
#define uchar unsigned char//;
#define uint unsigned int//;
// 定義端口
sbit SNG = P2^0; // 南北綠燈
sbit SNY = P2^1; // 南北黃燈
sbit SNR = P2^2; // 南北紅燈
sbit EWG = P2^3; // 東西綠燈
sbit EWY = P2^4; // 東西黃燈
sbit EWR = P2^5; // 東西紅燈
// 數(shù)碼管顯示相關(guān)
uchar code SEG[4] = {0x01, 0x02, 0x04, 0x08}; // 數(shù)碼管位選
uchar code distab[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 數(shù)碼管顯示0~9
uint timeG, timeY, timeR; // 各燈顯示時(shí)間
uint state; // 狀態(tài)標(biāo)志
// 延時(shí)函數(shù)
void delay_ms(uint q)
{
uint i, j;
for (i = 0; i < q; i++)
for (j = 0; j < 110; j++);
}
// 定時(shí)器0初始化
void Timer0Init(void)
{
TMOD |= 0X01; // 定時(shí)器0模式1,16位定時(shí)器
TH0 = 0XFC; // 定時(shí)1ms
TL0 = 0X18;
EA = 1; // 開(kāi)總中斷
ET0 = 1; // 開(kāi)定時(shí)器0中斷
TR0 = 1; // 啟動(dòng)定時(shí)器0
}
// 定時(shí)器0中斷服務(wù)程序
void Timer0() interrupt 1
{
static uint count = 0; // 計(jì)數(shù)器,用于控制狀態(tài)轉(zhuǎn)換
uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF};
uchar i ;
TH0 = 0XFC; // 重裝初值
TL0 = 0X18;
count++;
if (count >= 1000) // 每秒更新一次狀態(tài)
{
count = 0;
switch (state)
{
case 0: // 南北綠燈,東西紅燈
timeG--;
if (timeG == 0)
{
state = 1;
timeY = 3;
}
break;
case 1: // 南北黃燈閃爍,東西紅燈
if (timeY > 0)
timeY--;
else
{
state = 2;
timeR = 90;
}
break;
case 2: // 南北紅燈,東西綠燈
timeR--;
if (timeR == 0)
{
state = 3;
timeY = 3;
}
break;
case 3: // 南北紅燈,東西黃燈閃爍
if (timeY > 0)
timeY--;
else
{
state = 0;
timeG = 20;
}
break;
}
}
// 數(shù)碼管顯示倒計(jì)時(shí)
// uchar displayDigit[4] = {0xFF, 0xFF, 0xFF, 0xFF}; // 初始化為全滅
switch (state)
{
case 0:
displayDigit[0] = distab[timeG / 10];
displayDigit[1] = distab[timeG % 10];
break;
case 1:
displayDigit[0] = distab[timeY / 10];
displayDigit[1] = distab[timeY % 10];
break;
case 2:
displayDigit[0] = distab[timeR / 10];
displayDigit[1] = distab[timeR % 10];
break;
case 3:
displayDigit[0] = distab[timeR / 10];
displayDigit[1] = distab[timeR % 10];
break;
}
// for (uchar i = 0; i < 4; i++)
for (i = 0; i < 4; i++)
{
P1 = SEG[i];
P0 = displayDigit[i];
delay_ms(1);
}
}
// 主函數(shù)
void main()
{
Timer0Init(); // 定時(shí)器初始化
timeG = 20; // 初始時(shí)間設(shè)置
state = 0; // 初始狀態(tài)
while (1)
{
// 主循環(huán)可以為空,因?yàn)樗胁僮鞫荚谥袛嘀型瓿?br />
}
}
復(fù)制代碼
作者:
xiaobendan001
時(shí)間:
2025-1-8 08:20
#define uchar unsigned char;后面不能加分號(hào)
作者:
declansang
時(shí)間:
2025-1-8 10:55
宏定義有問(wèn)題
作者:
明日之星8
時(shí)間:
2025-1-8 12:04
define不是C語(yǔ)言關(guān)鍵字,它是編譯器里面的,也不是一個(gè)語(yǔ)句,所以不能加分號(hào)。
類(lèi)似的還有好幾個(gè),都要注意。
作者:
sadv
時(shí)間:
2025-1-9 15:49
#define uchar unsigned char//;
#define uint unsigned int//;
應(yīng)該寫(xiě)成
typedef unsigned char uchar;
typedef unsigned uint uint;
這里是因?yàn)槟愫竺娴拇a用了uchar,你是想把unsigned char類(lèi)型重新命名為uchar,所以要用typedef
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品少妇3p
|
在线日韩欧美
|
夜夜草视频
|
天天操网站
|
国模一区二区三区
|
国产成人aⅴ
|
国产精品99久久久久久久久
|
免费看黄色aaaaaa 片
|
亚洲综合在线视频
|
国产成人精品av在线观
|
国产三级视频在线播放
|
91综合在线
|
国产在线小视频
|
欧美三级免费
|
中文字幕在线免费观看
|
深夜福利网
|
在线日韩一区
|
色婷婷免费视频
|
精品三级在线观看
|
91精品久久久久久久久
|
中文字幕在线一区二区三区
|
国产精品久久一区二区三区
|
久久av在线
|
丁香六月综合
|
欧美黑人一区二区三区
|
亚洲手机在线
|
天天爽夜夜爽夜夜爽精品视频
|
日产毛片
|
成人在线免费视频观看
|
天天躁日日躁狠狠躁伊人
|
国产精品天堂
|
亚洲天堂免费视频
|
黄色小说视频网站
|
少妇视频网站
|
国产一区二区不卡
|
国产日产av
|
一本色道久久加勒比精品
|
国产福利91
|
日韩色在线
|
一区二区三区免费
|
日韩精品在线观看视频
|